本页面适用于 Apigee 和 Apigee Hybrid。
查看 Apigee Edge 文档。
对 API 代理进行更改后,您可以将其保存为新修订版本并将其部署到您的集群。
关于部署
下图展示了 Apigee 上的 API 代理修订版本的部署生命周期。
API 代理修订版本限制
API 代理修订版本存在以下限制:
- 如果您对 API 代理进行任何更改,则必须将其作为新修订版本进行部署。
- 部署 API 代理后,修订版本将处于只读状态。您无法更改 API 代理修订版本(例如进行增量更改);“更改”修订版本的唯一方法是创建新的修订版本并进行部署。
- MPS 可以完整地部署代理软件包。如果您更改了单个片段或政策,则 MPS 仍会部署整个代理软件包。
- 在部署将 API 代理从标准代理更改为可扩展代理的修订版本时,如果您的 Apigee 使用量可区分标准代理和可扩展代理:
- 可能会产生费用。如果您是随用随付客户,请参阅随用随付使用权。如果您是订阅客户,请参阅方案的详细信息。
- 部署需要额外的时间。在部署期间,API 调用流程不会中断,但您无法部署、取消部署或删除代理。此外,在部署期间无法删除当前或新的修订版本。允许更改 API 代理和创建新的修订版本。
零停机时间部署
所有成功部署到 Apigee 的 API 代理部署都是零停机时间部署。API 代理部署按以下顺序执行:
- API 代理
/hello
的修订版本 1 已部署且正在处理流量。 /hello
的修订版本 2 已部署。- 修订版本 2 已部署到运行时平面中的消息处理器。
- 已取消部署修订版本 1。
API 代理修订版本部署现已完成,而未出现任何停机时间。
查看部署状态
在 Apigee 上部署 API 代理并不能立即使用。因此,API 代理需要一段时间才能在运行时平面中的所有 MP 之间同步。但是,Apigee 提供的工具可为您提供 API 代理修订版本的状态信息。
Apigee 界面
在 Apigee 界面中,有多个视图可提供 API 代理的部署状态。
Apigee 界面视图 | 步骤和说明 |
---|---|
代理 |
Apigee 界面使用以下图标快速提供每个 API 代理的状态: 表示 API 代理尚未部署到选定的环境。 如需查看状态图标,请点击开发标签页。 或者,您也可以选择开发 > API 代理,然后点击相应的 API 代理 |
Apigee API
如需查看环境中 API 代理修订版本的部署状态,请使用以下 API 调用:
curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/apis/$API/revisions/$REV/deployments" \ -X GET \ -H "Authorization: Bearer $TOKEN"
按照获取 OAuth 2.0 访问令牌中的说明,将 $TOKEN
设置为您的 OAuth 2.0 访问令牌。如需了解此示例中使用的 curl
选项,请参阅使用 curl。如需了解所使用的环境变量,请参阅为 Apigee API 请求设置环境变量。
以下提供了一个响应示例。以下示例展示了在 test
环境中部署的 helloworld
API 代理的修订版本 1
的部署状态:
{ "environment": "test", "apiProxy": "helloworld", "revision": "1", "deployStartTime": "1559149080457", "pods": [ { "podName": "apigee-runtime-myorg-test-f8bdf9d-2s72w", "deploymentStatus": "deployed", "statusCodeDetails": "Deployment Success", "podStatus": "active", "podStatusTime": "1595357668001" } ], "state": "READY" }
如需了解详情,请参阅 API Proxy Revision Environment Deployments API。
gcloud
如需在环境中查看 API 代理修订版本的部署状态,请使用以下 gcloud 命令:
gcloud alpha apigee deployments describe --api=$API --environment=$ENV
如需详细了解示例中使用的环境变量,请参阅搭配使用 gcloud 与 Apigee 入门。
以下提供了一个响应示例。以下示例展示了在 test
环境中部署的 helloworld
API 代理的修订版本 1
的部署状态:
Using Apigee organization `my-org` Using deployed revision `1` apiProxy: helloworld deployStartTime: '1598032332802' environment: test pods: - deploymentStatus: deployed podName: apigee-runtime-myorg-test-f8bdf9d-2s72w podStatus: active podStatusTime: '1598302128087' statusCodeDetails: Deployment Success revision: '1' state: READY
如需了解详情,请参阅介绍部署 CLI。
后续步骤
了解如何部署:
|
了解如何取消部署:
|