使用API Manager CLI部署API:能否在QA及生产环境复用同一版本?
不用创建新版本就能把API部署到QA/生产环境的方法
核心逻辑
要解决每次部署都生成新版本的问题,核心是复用已经在开发环境搞定的API版本,只做部署操作,不重新导入API定义(导入默认会触发版本创建)。
具体操作步骤
1. 先在开发环境固化API版本
先在开发网关把API开发、测试完,确定好一个稳定版本(比如v1.0.0),并且这个版本已经发布到开发环境了。
2. 直接用deploy命令部署已有版本
别用import命令(这玩意儿默认会生成新版本),用deploy命令指定已存在的API名称、版本和目标环境就行:
apictl deploy api --name 你的API名称 --version v1.0.0 --environment QA
如果用环境配置文件的话:
apictl deploy api --name 你的API名称 --version v1.0.0 --file ./deployment_environments.yaml
3. 配置部署环境文件的注意点
写deployment_environments.yaml的时候,只改部署相关的参数(比如后端地址、网关地址),别碰API的核心定义(比如接口路径、请求参数),示例:
environments: - name: QA displayName: QA网关 serverUrl: https://qa-gateway.example.com:9443 username: admin password: admin deploymentSpecificParameters: endpoints: production: url: https://qa-backend.example.com/service
只改这些部署级的配置,不会触发新版本创建。
4. 要同步API定义到其他环境?用--preserve-version参数
如果要把开发环境的API定义同步到QA/生产,但不想搞新版本,先从开发环境导出已有的版本,再导入的时候加--preserve-version参数:
# 从开发环境导出指定版本的API apictl export api --name 你的API名称 --version v1.0.0 --environment dev --output ./exported-api # 导入到QA环境,强制保留原版本 apictl import api --file ./exported-api/你的API名称-v1.0.0.zip --environment QA --preserve-version
这个参数会让CLI复用目标环境里已有的版本(如果有的话),只更新部署配置,不生成新版本。
重要提醒
- 目标环境里得先有这个API版本,或者用
--preserve-version强制保留版本。 - 别在导入的时候改API的核心定义(比如加接口、改路径),不然哪怕指定了版本,系统也会生成新版本——因为API本身变了。
- 部署操作只改API的部署配置,不会动API的元数据定义。
内容的提问来源于stack exchange,提问作者Nithin
相关产品推荐
相关产品推荐

