本页面适用于 Apigee 和 Apigee Hybrid。
查看 Apigee Edge 文档。
API 代理在部署之前无法调用。创建新的 API 代理或对现有代理进行更改后,您可以将其部署到集群。
如果您在未更改基本路径的情况下创建了 API 代理的新修订版本,然后将其部署到已部署它的环境,则先前的修订版本会被取消部署,并部署新的修订版本。
部署 API 代理
按照以下各部分中的说明部署 API 代理修订版本。
新版代理编辑器
如需在 Apigee 界面中部署 API 代理,请执行以下操作:
如果您使用的是 Cloud 控制台中的 Apigee 界面:选择代理开发 > API 代理。
如果您使用的是经典版 Apigee 界面:请选择开发 > API 代理,然后在代理窗格中,选择代理的环境。
点击您要部署的 API 代理。 界面随即会显示概览页面:
- 如需部署更改,请先点击部署以显示部署对话框:
- 输入以下内容:
- 修订版本:您要部署的代理的修订版本号。
- 环境:要在其中部署代理的环境。
- 服务账号(可选):代理的服务账号。
- 点击部署。
界面即会开始部署所选修订版本。
部署代理后,部署部分中的状态列会显示一个绿色图标,表明已部署代理的修订版本 1。
经典版代理编辑器
如需在 Apigee 界面中部署 API 代理,请执行以下操作:
- 登录 Apigee 界面。
- 依次选择开发 > API 代理。
界面会显示 API 代理及其部署状态的列表:
- 从环境下拉列表中,选择要将 API 代理部署到的环境。
点击您要部署的 API 代理。
界面显示 API 代理概览标签页。此视图包括部署、代理端点和目标端点部分:
如果这是您之前未部署的新 API 代理(或您已取消部署的 API 代理),修订版本列将显示未部署。
- 在修订版本列中,展开下拉选择器。
如果这是之前从未部署过的新 API 代理,则下拉列表仅显示 1 和取消部署:
对于具有多个修订版本的 API 代理,下拉列表会列出您可以选择的所有修订版本以及取消部署。
- 从下拉列表中选择要部署的修订版本。
界面会提示您确认部署:
- 点击部署。
界面即会开始部署所选修订版本。
将光标放到“状态”列中的详细信息链接上,以查看部署的状态。如果有一个或多个修订版本已部署,则可以监控其取消部署的状态,如下图所示。如需了解详情,请参阅零停机时间部署。
部署完成后,状态详细信息表明修订版本已完全部署:
请注意,部署不是即时过程。Apigee 的“最终一致性”部署模型意味着在短时间内将新部署发布到集群,而不会立即生效。如需了解详情,请参阅关于部署。
如需了解状态指标的含义以及如何检查状态,请参阅查看部署状态。
或者,您也可以在开发标签页中部署您正在修改的当前修订版本。执行此操作后,Apigee 会为您创建一个新修订版本。
- 点击部署到: env_name 下拉列表
界面会显示环境列表。在修订版本列中,界面会列出当前部署的修订版本(如果未部署修订版本,则显示“‑‑”)。
- 点击部署 revision 以部署您最近修改的修订版本。
界面会提示您确认部署。
- 点击部署。
界面即会开始部署所选修订版本。
Apigee API
以下部分提供了使用 Apigee API 部署 API 代理修订版本并列出为您的组织的部署的示例。
另请参阅查看部署状态。
在部署之前创建部署更改报告
在同一环境组的多个环境中部署代理可能会导致未定义的行为。如需确定是否发生这种情况,您可以使用 generateDeployChangeReport
方法生成报告,如下所示:
curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/apis/$API/deployments:generateDeployChangeReport" \ -X POST \ -H "Authorization: Bearer $TOKEN"
这会返回一份部署更改报告;如果要部署的代理中的基本路径由于现有部署已在使用该基本路径而不会接收流量,则该报告会向您发出警告。
使用 API 部署 API 代理修订版本
如需部署 API 代理修订版本,请使用以下 API 调用:
curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/apis/$API/revisions/$REV/deployments" \ -X POST \ -H "Authorization: Bearer $TOKEN"
按照获取 OAuth 2.0 访问令牌中的说明,将 $TOKEN
设置为您的 OAuth 2.0 访问令牌。如需了解此示例中使用的 curl
选项,请参阅使用 curl。如需了解所使用的环境变量,请参阅为 Apigee API 请求设置环境变量。
下面显示了响应输出的示例。在此示例中,将 helloworld
API 代理的修订版本 1
成功部署到 test
环境:
{ "environment": "test", "apiProxy": "helloworld", "revision": "1", "deployStartTime": "1559149080457" }
如需了解详情,请参阅部署 API 代理修订版本 API。
使用 API 列出部署
如需列出您的组织的所有 API 代理和共享流,请输入以下 API 调用:
curl "https://apigee.googleapis.com/v1/organizations/$ORG/deployments" \ -X GET \ -H "Authorization: Bearer $TOKEN"
按照获取 OAuth 2.0 访问令牌中的说明,将 $TOKEN
设置为您的 OAuth 2.0 访问令牌。如需了解此示例中使用的 curl
选项,请参阅使用 curl。如需了解所使用的环境变量,请参阅为 Apigee API 请求设置环境变量。
以下提供了一个响应示例。本示例部署了三个 API 代理,包括上一部分中部署的 helloworld
。
{ "deployments": [ { "environment": "test", "apiProxy": "helloworld", "revision": "1", "deployStartTime": "1559149080457" }, { "environment": "test", "apiProxy": "weather", "revision": "1", "deployStartTime": "1558620435217" }, { "environment": "test", "apiProxy": "testproxy", "revision": "2", "deployStartTime": "1558635113086" } ] }
gcloud
以下部分提供了使用 gcloud apigee
CLI 命令部署 API 代理修订版本并列出组织的部署的示例。
另请参阅查看部署状态。
如需详细了解示例中使用的环境变量,请参阅搭配使用 gcloud 与 Apigee 入门。
使用 gcloud CLI 部署 API 代理修订版本
如需部署 API 代理修订版本,请使用以下 gcloud
命令:
gcloud apigee apis deploy $REV --api=$API --environment=$ENV
下面显示了响应输出的示例。在此示例中,将 helloworld
API 代理的修订版本 1
成功部署到 test
环境:
Using Apigee organization 'my-org' apiProxy: helloworld deployStartTime: '1598032332802' environment: test revision: '1'
如需了解详情,请参阅部署 API 代理修订版本 CLI。
使用 gcloud CLI 列出部署
如需列出您的组织的 API 代理和共享流的所有部署,请使用以下 gcloud
命令:
gcloud apigee deployments list
以下提供了一个响应示例。本示例部署了三个 API 代理,包括上一部分中部署的 helloworld
。
Using Apigee organization `my-org` - apiProxy: helloworld deployStartTime: 1598032332802 environment: test revision: 1 - apiProxy: weather deployStartTime: 1558620435217 environment: test revision: 1 - apiProxy: testproxy deployStartTime: 1558635113086 environment: test revision: 2
如需了解详情,请参阅列出部署 CLI。
问题排查
如果您无法部署 API 代理,请检查是否存在以下常见场景之一。
环境组的命名限制
如果环境组的名称不符合命名限制的要求,则系统不会部署代理。在某些情况下,您可以创建环境组并向其添加环境,并且可以不满足这些限制的要求;但是,这会导致系统无法部署代理。
如需了解命名准则和限制,请参阅创建环境组。
利用之前使用的环境名称创建的环境
如果您创建的环境与先前删除的环境同名,则系统不会部署代理。例如,如果您在先前创建并删除 prod-1
环境后又创建了名为 prod-1
的环境,则需要移除该环境。您可以使用以下步骤来解决此问题: