本页面适用于 Apigee 和 Apigee Hybrid。
查看 Apigee Edge 文档。
使用 Apigee in VS Code 开发和测试可编程 API 代理。然后,将 API 代理配置环境的归档部署到 Apigee Integration 测试和生产环境,如以下部分所述。
在 Apigee 环境中启用归档部署
您必须先在 Apigee 环境中启用归档部署,然后才能部署归档。
按照以下部分所述启用归档部署。
Cloud 控制台中的 Apigee
-
在 Google Cloud 控制台中,前往环境页面。
- 点击 + 创建环境。
在部署类型下,选择归档。
- 点击创建。
经典版 Apigee 界面
要在 Apigee 环境中启用归档部署,在创建 Apigee 环境时(不使用预配向导),请在“部署类型”下选择归档。
Apigee API
要在使用 API 创建环境时启用归档部署,请在请求正文中将 deploymentType 设置为 ARCHIVE。
例如:
curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments" \
-X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-type: application/json" \
-d
'{
"name": "integration-test",
"description": "Integration test environment",
"displayName" : "Integration test",
"deploymentType" : "ARCHIVE"
}'
按照获取 OAuth 2.0 访问令牌中的说明,将 $TOKEN 设置为您的 OAuth 2.0 访问令牌。如需了解此示例中使用的 curl 选项,请参阅使用 curl。如需了解您可以使用的环境变量,请参阅为 Apigee API 请求设置环境变量。
以下提供了一个响应示例:
{
"name": "organizations/$ORG/operations/11b1ad1c-2371-473d-bcd4-f621f8d98ef7",
"metadata": {
"@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
"operationType": "INSERT",
"targetResourceName": "organizations/$ORG/environments/integration-test",
"state": "IN_PROGRESS"
}
}您可以查看操作的状态。例如:
curl https://apigee.googleapis.com/v1/organizations/$ORG/operations/11b1ad1c-2371-473d-bcd4-f621f8d98ef7 / -H "Authorization: Bearer $TOKEN"
以下提供了一个响应示例。请注意,操作的状态为 FINISHED,环境状态设置为 ACTIVE。
{
"name": "organizations/$ORG/operations/11b1ad1c-2371-473d-bcd4-f621f8d98ef7",
"metadata": {
"@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
"operationType": "INSERT",
"targetResourceName": "organizations/$ORG/environments/integration-test",
"state": "FINISHED"
},
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.apigee.v1.Environment",
"name": "integration-test",
"description": "Integration test environment",
"createdAt": "1615553880084",
"lastModifiedAt": "1615553881911",
"displayName": "Integration test",
"state": "ACTIVE",
"deploymentType": "ARCHIVE"
}
}如需详细了解 API,请参阅 Create Environments API。
将归档部署到 Apigee 环境
要将归档部署到 Apigee 环境,请使用以下 gcloud 命令:
gcloud beta apigee archives deploy \
--environment=$ENV \
[--organization=$ORG] \
[--source=$SOURCE] \
[--labels $KEY=$VALUE[,$KEY2=$VALUE2,$KEY3=$VALUE3,...]]
您必须使用 --environment 标志指定要在其中部署归档的 Apigee 环境。该 Apigee 环境必须启用归档部署。
如需了解详情,请参阅 gcloud beta apigee 归档部署。
默认情况下,归档的部署路径如下:
- 部署到为
gcloud配置的当前活动项目关联的组织。如需查看当前的 gcloud 配置,请运行
gcloud config list。 如需指定组织,请使用--organization标志。 - 从当前工作目录部署。
如果归档的src/main/apigee根目录不在当前工作目录,请使用--source标志指定归档的根目录。另请参阅了解 Apigee 工作区的结构。
(可选)您可以使用 --labels 标志为一个归档部署添加最多 64 个自定义标签键值对。例如,您可能需要为归档添加版本号标签。当您列出归档部署时,这些标签会显示。键值对必须遵循以下准则:
- 长度不超过 63 个字符
- 大小不超过 128 个字节。
- UTF-8 编码
- 符合以下与 Perl 兼容的正则表达式 (PCRE):
[\p{Ll}\p{Lo}][\p{Ll}\p{Lo}\p{N}_-]{0,62}
部署到 Apigee on Google Cloud, 时,gcloud 命令在后台执行以下步骤:
- 创建
src/main/apigeeApigee 工作区目录的 ZIP 文件。如需了解详情,请参阅了解 Apigee 工作区的结构。 - 按如下所示将归档部署到 Apigee on Google Cloud:
- 使用 generateUploadUrl API 在与当前 Apigee 组织关联的项目中为 Google Cloud Storage 存储桶生成签名网址。
- 使用该签名网址将归档 ZIP 文件上传到 Cloud Storage 存储桶。
- 将 Cloud Storage 存储桶中当前暂存的归档文件部署到 Apigee on Google Cloud。使用 Archive Deployments API。
示例请求
以下示例在当前目录中创建 src/main/apigee 的 ZIP 归档文件,并将其部署到指定的 Apigee 环境:
gcloud beta apigee archives deploy --environment=$ENV
以下示例展示了如何指定不与为 gcloud 配置的当前活动项目关联的组织:
gcloud beta apigee archives deploy --environment=$ENV --organization=$ORG
以下示例在 myarchive 下创建 src/main/apigee 目录的 ZIP 归档文件,并将其部署到指定的 Apigee 环境:
gcloud beta apigee archives deploy --environment=$ENV --source=/myarchive
以下示例向归档部署添加 status 和 build_id 标签:
gcloud beta apigee archives deploy --environment=$ENV --labels=status=released,build=210315
示例响应
以下提供了一个响应示例:
Using Apigee organization 'myorg' Waiting for operation [b64c2665-b5ac-43cc-9e2d-232e8895c2ed] to complete...done.
检查归档部署状态
要检查归档部署状态,请使用 gcloud alpha apigee operations 命令。
以下示例展示了修订版本 ID 为 439fa3f7-6aa4-42ad-8b12-3ca912c75d5c 的操作的归档部署状态是 IN_PROGRESS。
gcloud alpha apigee operations describe b64c2665-b5ac-43cc-9e2d-232e8895c2ed
以下提供了一个响应示例。请注意,state 设置为 IN_PROGRESS。
Using Apigee organization 'myorg'
done: true
metadata:
'@type': type.googleapis.com/google.cloud.apigee.v1.OperationMetadata
operationType: INSERT
state: IN_PROGRESS
targetResourceName: uri
name: organizations/myorg/operations/b64c2665-b5ac-43cc-9e2d-232e8895c2ed
organization: myorg
response:
'@type': type.googleapis.com/google.cloud.apigee.v1.CanaryEvaluation
control: 1-5-0-20210319-071117-ghq74
endTime: '2021-03-20T06:15:44.329363950Z'
metricLabels:
env: test
location: us-central1
name: uri
startTime: '2021-03-20T06:14:44.306534584Z'
treatment: 1-5-0-20210319-190954-if0wk
verdict: NONE
uuid: b64c2665-b5ac-43cc-9e2d-232e8895c2ed操作完成后,state 会设置为 FINISHED。
列出环境中的所有归档部署
按以下部分所述列出环境中的所有归档部署。
gcloud
要列出 Apigee on Google Cloud 中的所有归档部署,请使用以下 gcloud 命令:
gcloud beta apigee archives list --environment=$ENV
您必须使用 --environment 标志指定要查看其归档部署的 Apigee 环境。该 Apigee 环境必须正在查看归档部署的详细信息。
如需了解详情,请参阅 gcloud beta apigee 归档列表。
以下提供了一个响应示例:
Using Apigee organization 'myorg' ARCHIVE ID ENVIRONMENT DEPLOYED AT LABELS OPERATION STATUS pzfbs8uidbdv224joz myorg 2021-03-10 11:21:29 status=released,build=210315 Deployed fb4r8log2gm63r3gtu myorg 2021-03-05 13:40:30 vrytwbhso558oil53m myorg 2021-03-03 21:20:53
Apigee API
要列出环境中的归档部署,请向以下 API 发出 GET 请求:https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments。
例如:
curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments" \ -H "Authorization: Bearer $TOKEN"
按照获取 OAuth 2.0 访问令牌中的说明,将 $TOKEN 设置为您的 OAuth 2.0 访问令牌。如需了解此示例中使用的 curl 选项,请参阅使用 curl。如需了解您可以使用的环境变量,请参阅为 Apigee API 请求设置环境变量。
以下提供了一个响应示例:
{
"archiveDeployments": [
{
"name": "organizations/myorg/environments/integration-test/archiveDeployments/pzfbs8uidbdv224joz",
"labels": {
"status": "released",
"build": "210315"
},
"createdAt": "1615821232451727",
"updatedAt": "1615821232451727",
"operation": "organizations/apigee-docs-c/operations/b64c2665-b5ac-43cc-9e2d-232e8895c2ed"
},
{
"name": "organizations/myorg/environments/integration-test/archiveDeployments/fb4r8log2gm63r3gtu",
"createdAt": "1615819281858447",
"updatedAt": "1615819281858447",
"operation": "organizations/apigee-docs-c/operations/71549b9c-4493-41b6-9838-c0ad5b1b3181"
},
{
"name": "organizations/myorg/environments/integration-test/archiveDeployments/vrytwbhso558oil53m",
"createdAt": "1615578337832207",
"updatedAt": "1615578337832207",
"operation": "organizations/apigee-docs-c/operations/a2eb50b5-f276-4de4-96a3-72fac3d4c05e"
}
]
}
查看归档部署的详细信息
按照以下部分中的说明查看归档部署的详细信息。
gcloud
要查看 Apigee on Google Cloud 中的归档部署的详细信息,请使用以下 gcloud 命令:
gcloud beta apigee archives describe $ID --environment=$ENV
您必须指定以下各项:
- 归档部署修订版本的 ID。
- 使用
--environment标志指定要查看其归档部署的 Apigee 环境。该 Apigee 环境必须启用归档部署。
如需了解详情,请参阅 gcloud beta apigee 归档说明。
例如:
gcloud apigee archives describe pzfbs8uidbdv224joz --environment=$ENV
以下提供了一个响应示例:
Using Apigee organization 'myorg' createdAt: '1615578337832207' labels: status: 'released' build: '210315' name: organizations/myorg/environments/$ENV/archiveDeployments/pzfbs8uidbdv224joz operation: organizations/myorg/operations/b64c2665-b5ac-43cc-9e2d-232e8895c2ed operationStatus: Deployed updatedAt: '1615821232451727'
Apigee API
要查看归档部署的详细信息,请向以下 API 发出 GET 请求:https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID。
您必须传递归档部署修订版本的 ID。如需查看某个 Apigee 环境的归档部署修订版本 ID 的列表,请参阅列出环境中的所有归档部署。
例如:
curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/pzfbs8uidbdv224joz" \ -X GET \ -H "Authorization: Bearer $TOKEN"
按照获取 OAuth 2.0 访问令牌中的说明,将 $TOKEN 设置为您的 OAuth 2.0 访问令牌。如需了解此示例中使用的 curl 选项,请参阅使用 curl。如需了解您可以使用的环境变量,请参阅为 Apigee API 请求设置环境变量。
以下提供了一个响应示例:
{
"name": "organizations/myorg/environments/integration-test/archiveDeployments/pzfbs8uidbdv224joz",
"labels": {
"status": "released",
"build": "210315"
},
"createdAt": "1615578337832207",
"updatedAt": "1615821232451727",
"operation": "organizations/apigee-docs-c/operations/b64c2665-b5ac-43cc-9e2d-232e8895c2ed"
}
更新归档部署的标签
按照以下部分中的说明更新归档部署的标签。
gcloud
要更新 Apigee on Google Cloud 中的归档部署的标签,请使用以下 gcloud 命令:
gcloud beta apigee archives update [$ID] --environment=$ENV [--update-labels=$KEY=$VALUE[,$KEY2=$VALUE2...$KEYn=$VALUEn]], [--clear-labels | --remove-labels=$KEY[,$KEY2...$KEYn]]
您必须指定以下各项:
- 归档部署修订版本的 ID
- 使用
--environment标志指定要查看其归档部署的 Apigee 环境。该 Apigee 环境必须启用归档部署。 - 以下一个或多个标志:
标志 说明 --clear-labels移除所有标签。 如果还指定了 --update-labels,则首先应用--clear-labels。如果指定了
--remove-labels,则无法指定此标签。--remove-labels移除指定的标签。如果还指定了 --update-labels,则首先应用它。如果指定了
--clear-labels,则无法指定此标签。--update-labels更新标签。如果标签存在,则修改其值,否则创建新标签。如果与 --remove-labels或--clear-labels标志结合使用,则先移除一部分或所有标签,然后更新标签。
如需了解详情,请参阅 gcloud beta apigee 归档更新。
例如:
gcloud apigee archives update pzfbs8uidbdv224joz --environment=$ENV \ --clear-labels --update-labels=status=released,build=210315,tier=1
以下提供了一个响应示例:
Using Apigee organization `myorg` createdAt: 2020-04-04T04:04:04.004Z labels: status: released, build: 210315, tier: 1 name: organizations/apigee-docs-c/environments/dev/archiveDeployments/pzfbs8uidbdv224joz operation: organizations/apigee-docs-c/operations/bf587121-8b5c-4897-9d8f-9b1ef0cb06ca updatedAt: '1633450432067431'
Apigee API
要更新 Apigee on Google Cloud 中的归档部署的标签,请向以下 API 发出 PATCH 请求:https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID。
您必须传递归档部署修订版本的 ID。如需查看某个 Apigee 环境的归档部署修订版本 ID 的列表,请参阅列出环境中的所有归档部署。
在请求正文中传递要添加到归档的所有标签。传递的标签会覆盖当前标签,因此您可以通过在请求正文中省略某些标签来移除这些标签,也可以通过传递空列表来移除所有标签。
例如:
curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID" \
-X PATCH \
-H "Authorization: Bearer $TOKEN" \
-d '{
"labels": {
"status" : "released",
"build" : "210315"
}
}'
按照获取 OAuth 2.0 访问令牌中的说明,将 $TOKEN 设置为您的 OAuth 2.0 访问令牌。如需了解此示例中使用的 curl 选项,请参阅使用 curl。如需了解您可以使用的环境变量,请参阅为 Apigee API 请求设置环境变量。
以下提供了一个响应示例:
{
"name": "organizations/myorg/environments/integration-test/archiveDeployments/pzfbs8uidbdv224joz",
"labels": {
"status": "released",
"build": "210315"
},
"createdAt": "1615578337832207",
"updatedAt": "1615821232451727",
"operation": "organizations/apigee-docs-c/operations/b64c2665-b5ac-43cc-9e2d-232e8895c2ed"
}
删除包含归档部署的 Apigee 环境
要删除包含归档部署 Apigee 环境,请执行以下操作:
- 在临时文件夹中创建以下目录结构,其中 $ENV 与要删除的环境名称匹配。例如:
mkdir -p /$TEMP/archive/src/main/apigee/environments/$ENV
- 将
deployments.json文件添加到该目录。例如:touch /$TEMP/archive/src/main/apigee/environments/$ENV/deployments.json
- 更新
deployments.json以添加一个空的proxies数组,如下所示。{ "proxies" : [] } - 切换目录 (cd) 至
$TEMP/archive文件夹。cd $TEMP/archive
- 将归档部署到要删除的 Apigee 环境。
gcloud beta apigee archives deploy --environment=$ENV
- 删除 Apigee 环境。
删除归档部署修订版本
删除归档部署修订版本,如以下部分所述。
gcloud
如需删除 Apigee on Google Cloud 中的归档部署修订版本,请使用以下 gcloud 命令:
gcloud beta apigee archives delete $ID --environment=$ENV
您必须指定以下各项:
- 您要删除的修订版本的 ID。
- 使用
--environment标志指定要查看其归档部署的 Apigee 环境。该 Apigee 环境必须启用归档部署。
例如:
gcloud apigee archives delete fb4r8log2gm63r3gtu --environment=dev
以下提供了一个响应示例:
Archive deployment revision "fb4r8log2gm63r3gtu" deleted
Apigee API
如需删除 Apigee on Google Cloud 中的归档部署修订版本,请向以下 API 发出 DELETE 请求:https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID。
您必须传递要删除的归档部署修订版本的 ID。如需查看某个环境的归档部署修订版本 ID 的列表,请参阅列出环境中的所有归档部署。
例如:
curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID" \ -X DELETE \ -H "Authorization: Bearer $TOKEN" \
按照获取 OAuth 2.0 访问令牌中的说明,将 $TOKEN 设置为您的 OAuth 2.0 访问令牌。如需了解此示例中使用的 curl 选项,请参阅使用 curl。如需了解您可以使用的环境变量,请参阅为 Apigee API 请求设置环境变量。
以下提供了一个响应示例:
{}