本主题介绍如何删除 Apigee Hybrid 中的环境。请参阅环境和环境组简介。
关于环境删除
环境删除是环境创建的逆过程,包括以下任务:
如何删除环境
假设您有两个环境,即 test 和 prod。在您的替换文件中,定义可能如下所示:
... envs: - name: test serviceAccountPaths: synchronizer: "your_keypath/PROJECT_ID-apigee-synchronizer.json" runtime: "your_keypath/PROJECT_ID-apigee-runtime.json" - name: prod serviceAccountPaths: synchronizer: "your_keypath/PROJECT_ID-apigee-synchronizer.json" runtime: "your_keypath/PROJECT_ID-apigee-runtime.json" ...
要删除 prod 环境,请执行以下步骤:
- 获取 gcloud 身份验证凭证:
TOKEN=$(gcloud auth print-access-token)
- 为安全起见,请将环境与其关联的每个环境组分离。这样可以防止在移除环境的运行时组件之前将流量路由到该环境。
- 列出环境组的连接,并记下
environment为prod的连接的name(连接 ID):无数据驻留
curl -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/ORG_NAME/envgroups/ENV_GROUP/attachments"
数据驻留
curl -H "Authorization: Bearer $TOKEN" \ "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/ORG_NAME/envgroups/ENV_GROUP/attachments"
输出类似于以下内容:
{ "environmentGroupAttachments": [ { "name": "f6f2958f-a0a1-4260-b9e9-80eead82ff1d", "environment": "prod", "createdAt": "1789700385118", "environmentGroupId": "ENV_GROUP" } ] } - 删除连接:
无数据驻留
curl -X DELETE -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/ORG_NAME/envgroups/ENV_GROUP/attachments/ATTACHMENT_ID"
数据驻留
curl -X DELETE -H "Authorization: Bearer $TOKEN" \ "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/ORG_NAME/envgroups/ENV_GROUP/attachments/ATTACHMENT_ID"
其中:
- ORG_NAME 是您的 Apigee 组织的名称。
- ENV_GROUP 是环境组的名称。
- ATTACHMENT_ID 是上一步中返回的附件
name。这是生成的 ID,而不是环境名称。 - 如果您使用数据驻留,CONTROL_PLANE_LOCATION 是您组织的控制平面位置。
对该环境关联到的每个环境组重复执行这些步骤。
- 列出环境组的连接,并记下
- 执行试运行以测试移除运行时组件的操作:
helm delete ENV_RELEASE_NAME -n APIGEE_NAMESPACE --dry-run
- ENV_RELEASE_NAME 是您之前为此环境安装
apigee-env图表时使用的名称。这通常与环境名称相同。如需列出命名空间中的版本名称,请运行helm list -n APIGEE_NAMESPACE。 - APIGEE_NAMESPACE 是您安装 Apigee Hybrid 的命名空间,默认为
apigee。
--dry-run选项会模拟卸载,而不移除任何内容,其输出与实际卸载的输出相同。与helm upgrade不同,helm delete不接受--dry-run的值,例如--dry-run=server。例如:helm delete prod -n apigee --dry-runrelease "prod" uninstalled - ENV_RELEASE_NAME 是您之前为此环境安装
- 如果试运行无错误,请移除运行时组件:
helm delete ENV_RELEASE_NAME -n APIGEE_NAMESPACE
- 打开替换文件并从
envs中移除prod环境定义,从而只保留 test 定义。例如:... envs: - name: test serviceAccountPaths: synchronizer: "your_keypath/PROJECT_ID-apigee-synchronizer.json" runtime: "your_keypath/PROJECT_ID-apigee-runtime.json" ... - 保存文件。
- 从管理平面删除环境。您可以使用 Apigee 界面或删除环境 API。
Apigee 界面
在 Google Cloud 控制台中,前往 Apigee > 管理 > 环境页面。
- 选择 Apigee 组织的项目。
- 在
prod环境所在的行中,依次点击 操作 > 删除。
API
无数据驻留:
curl -X DELETE -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/ORG_NAME/environments/prod"
数据驻留:
curl -X DELETE -H "Authorization: Bearer $TOKEN" \ "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/ORG_NAME/environments/prod"
该调用会返回一个长时间运行的操作。删除操作可能需要几分钟才能完成。