本页面适用于 Apigee 和 Apigee Hybrid。
查看 Apigee Edge 文档。
使用 Apigee in VS Code 开发和测试可编程 API 代理。然后,将 API 代理配置环境的归档部署到 Apigee Integration 测试和生产环境,如以下部分所述。
在 Apigee 环境中启用归档部署
您必须先在 Apigee 环境中启用归档部署,然后才能部署归档。
按照以下部分所述启用归档部署。
经典版 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/apigee
Apigee 工作区目录的 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 请求设置环境变量。
以下提供了一个响应示例:
{}