ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Prisma CLI `prisma info` 命令详解:查看服务端点、Stage 与集群部署信息

Prisma CLI `prisma info` 命令详解:查看服务端点、Stage 与集群部署信息 后端数据库GraphQL【免费下载链接】prisma1 Database Tools incl. ORM, Migrations and Admin UI (Postgres, MySQL MongoDB) [deprecated]项目地址https://gitcode.com/gh_mirrors/pr/prisma1点击查看免费下载prisma info是 Prisma CLI 中用于查看当前 Prisma 服务Service运行信息的核心命令它能一次性列出服务当前部署到的全部集群、所处的 Stage开发/生产等环境以及对应的 HTTP 与 WebSocket API 端点并支持以 JSON 形式输出以便脚本消费。本文以 prisma1 仓库中 1.12 版本的官方命令参考文档为主体结合prisma-cli-core与prisma-yml的源码实现为你完整讲解该命令的用法、全部 flags、输出格式以及底层实现原理。命令作用与适用场景prisma info面向 Prisma 服务开发者与运维人员用于快速确认以下三类信息服务当前已部署到的全部集群cluster当前服务所处的 Stage如dev、staging、prod服务的 API 端点包括 HTTP 端点与 WebSocket订阅端点典型应用场景包括部署后核对服务地址是否正确暴露、排查订阅功能所需的 WebSocket 端口、在 CI/CD 脚本中以--json模式抓取端点信息用于后续的 API 测试或数据导入导出。基本用法在包含prisma.yml的 Prisma 服务目录下直接执行prisma info命令会读取当前目录或通过--project指定的路径下的prisma.yml解析出服务名service、Stagestage与集群信息然后输出服务信息。在源码中该命令由InfoCommand实现其topic为info描述为Display service information (endpoints, cluster, ...)。执行时命令会通过definition.load()加载 Prisma 定义文件随后依次取出serviceName、stage与 workspace再调用getCluster()获取集群——如果prisma.yml中没有设置cluster属性命令会直接抛出错误提示No cluster set. Please set the cluster property in your prisma.ymlFlags 参数详解官方参考文档定义了三个核心 flags源码实现中还额外提供了两个实用选项完整清单如下Flag简写类型说明--env-file-estring指定.env文件路径用于注入环境变量如PRISMA_ENDPOINT、PRISMA_MANAGEMENT_API_SECRET--json-jboolean以 JSON 格式输出服务信息便于脚本解析--secret-sboolean在 JSON 输出中包含服务 secret必须与--json配合使用--current-cboolean已废弃Deprecated仅保留兼容--project-pstring指定 Prisma 定义文件prisma.yml的路径默认使用当前目录下的定义文件其中--env-file的说明为 Path to .env file to inject env vars--project的说明为 Path to Prisma definition file。这两个 flags 由 CLI 引擎的 flags 机制统一解析对应源码 info/index.ts 中的flags定义。关于--secret的注意事项源码 info/index.ts 中的逻辑明确显示只有printJson即--json为真时--secret才会把secrets写入输出对象如果只传--secret而不传--jsonsecret 不会出现在普通文本输出中。官方文档也对此做了特别说明Note: The secret will not be printed if the--jsonflag is not provided.输出格式与字段说明文本模式默认不带任何参数执行prisma info时命令会先输出一行Service Name: 服务名服务名以粗体显示随后输出各 Stage 的信息块。根据 printStage 的实现每个 Stage 的输出结构为stage (cluster: cluster名称) HTTP: HTTP API 端点 Websocket: WebSocket 端点HTTP即 GraphQL API 端点由cluster.getApiEndpoint(name, stage, workspace)计算得出。Websocket订阅端点由cluster.getWSEndpoint(name, stage, workspace)计算得出其实现就是把 HTTP 端点 URL 的http前缀替换为ws见 Cluster.ts。如果当前集群版本不低于1.29.0输出末尾还会额外附带一段 Prisma Admin 入口链接You can view edit your data here: Prisma Admin: HTTP端点/_admin这一判断由satisfiesVersion(version, 1.29.0)完成Prisma Admin 链接由 printAdminLink 拼装格式为{API端点}/_admin。JSON 模式--json执行prisma info --json时输出变为格式化的 JSON 对象包含以下字段字段说明name服务名servicestage当前 Stagecluster集群名称workspace所属 workspace共享集群场景下存在否则为nullhttpEndpointHTTP API 端点wsEndpointWebSocket 端点secret服务 secret 数组仅当同时传入--secret时出现JSON 由JSON.stringify(result, null, 2)生成缩进 2 个空格便于阅读与脚本解析对应 info/index.ts。官方文档示例打印当前服务信息prisma info输出示例文本模式Service Name: my-service dev (cluster: local) HTTP: http://localhost:4466/my-service/dev Websocket: ws://localhost:4466/my-service/dev以 JSON 格式打印当前服务信息prisma info --json输出示例{ name: my-service, stage: dev, cluster: local, workspace: null, httpEndpoint: http://localhost:4466/my-service/dev, wsEndpoint: ws://localhost:4466/my-service/dev }以 JSON 格式打印服务信息并包含 secretprisma info --json --secret输出示例JSON 对象中会额外出现secret字段{ name: my-service, stage: dev, cluster: local, workspace: null, httpEndpoint: http://localhost:4466/my-service/dev, wsEndpoint: ws://localhost:4466/my-service/dev, secret: [your-service-secret] }注意务必同时传入--json否则 secret 不会被打印。端点生成规则与底层实现prisma info展示的 HTTP/WebSocket 端点并非硬编码而是由 Cluster.getApiEndpoint 依据服务名、Stage 与 workspace 动态拼接规则如下非共享集群且service default、stage default时直接返回集群baseUrl非共享集群且stage default时返回${baseUrl}/${service}私有集群或本地local集群时返回${baseUrl}/${service}/${stage}其余情况共享集群返回${baseUrl}/${workspace}/${service}/${stage}workspace 存在时。而服务名与 Stage 本身则是从prisma.yml的endpoint字段中解析出来的PrismaDefinition的service与stagegetter 会通过parseEndpoint从 endpoint 中拆解出服务名与 Stage见 PrismaDefinition.tsgetWorkspace()则用于提取共享集群场景下的 workspace。以本地部署的典型 endpoint 配置为例endpoint: http://localhost:4466/my-service/dev执行prisma info时service解析为my-service、stage解析为dev最终输出http://localhost:4466/my-service/dev与ws://localhost:4466/my-service/dev。相关命令与后续操作prisma info输出的 HTTP 端点可以直接用于 GraphQL 查询与订阅也可与数据导入导出功能衔接prisma import向服务导入数据内部使用getImportEndpoint拼装${endpoint}/importprisma export从服务导出数据内部使用getExportEndpoint拼装${endpoint}/exportprisma deploy在部署后可通过prisma info核对新 Stage 的端点。此外--json输出适合在脚本中通过jq等工具提取httpEndpoint字段用于自动化测试、健康检查或 CI/CD 流程中的动态配置注入。小结prisma info是一个轻量但实用的诊断命令通过一行命令即可掌握服务的集群部署情况、Stage 环境以及 HTTP/WebSocket 双端点。掌握--json与--secret的组合用法可以让你在自动化运维与脚本集成中更高效地消费这些信息理解其背后的端点拼接规则则有助于在遇到端点不符合预期时快速定位是prisma.yml配置还是集群类型所致。赞分享后端数据库GraphQL【免费下载链接】prisma1 Database Tools incl. ORM, Migrations and Admin UI (Postgres, MySQL MongoDB) [deprecated]项目地址https://gitcode.com/gh_mirrors/pr/prisma1点击查看免费下载相关推荐Prisma CLI 实战prisma info 命令详解——查看服务集群、Stage 与 API 端点信息Prisma CLI 实战 prisma info 命令详解——查看服务集群、Stage 与 API 端点信息 prisma info 是 Prisma CL后端数据库GraphQLPrisma CLI prisma info 命令详解查看服务部署信息、集群与 API 端点Prisma CLI prisma info 命令详解查看服务部署信息、集群与 API 端点 prisma info 是 Prisma CLI本仓库 cli后端数据库GraphQLPrisma CLI 的 prisma info 命令查看服务部署信息、Stage 与 API EndpointsPrisma CLI 的 prisma info 命令查看服务部署信息、Stage 与 API Endpoints 本指南详细介绍 Prisma CLI 中用后端数据库GraphQL创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表