本页面介绍了如何在 Certificate Manager 中检查和管理长时间运行的操作。
当 Certificate Manager 中的 mutate 请求(例如创建、更新或删除资源)未立即失败时,API 会返回长时间运行的操作 (LRO)。这些操作会跟踪需要较长时间才能完成的处理任务的状态。默认情况下,gcloud 变更命令会等待操作完成,除非您指定 --async 标志。
您可以使用 projects.locations.operations 集合来检查操作的状态。
所需权限
如需在目标项目中管理长时间运行的操作,您必须拥有与要执行的任务对应的权限:
certificatemanager.operations.get:检索特定操作的详细信息。certificatemanager.operations.list:列出给定位置中的所有操作。certificatemanager.operations.delete:删除已完成的操作资源(仅限 API)。
如需详细了解角色和权限,请参阅角色和权限。
获取长时间运行的操作的详细信息
当您发出启动操作(例如创建证书)的调用时,响应中会包含一个操作名称,格式为:projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID。
如需检查操作是否已完成,请请求目标操作的相关详细信息。如果响应包含 "done": false 或不包含 "done" 字段,则表示操作仍在进行中。再次检查状态,直到响应显示 "done": true。
gcloud
如需描述长时间运行的操作,请使用 certificate-manager
operations describe 命令:
gcloud certificate-manager operations describe OPERATION_ID \
--location="LOCATION"
替换以下内容:
OPERATION_ID:操作的 ID。LOCATION:目标 Google Cloud 位置。默认位置是global。
API
如需获取长时间运行的操作的详细信息,请向 projects.locations.operations.get 方法发送 GET 请求:
GET https://certificatemanager.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
替换以下内容:
PROJECT_ID:您的 Google Cloud 项目的 ID。LOCATION:目标 Google Cloud 位置。默认位置是global。OPERATION_ID:操作的 ID。
列出长时间运行的操作
您可以列出操作,以查找操作 ID 并监控项目中的活跃修改。
gcloud
如需列出给定位置中的操作,请使用 certificate-manager
operations list 命令:
gcloud certificate-manager operations list \
--location="LOCATION"
替换以下内容:
LOCATION:目标 Google Cloud 位置。默认位置是global。
API
如需列出某个位置中的操作,请向 projects.locations.operations.list 方法发出 GET 请求:
GET https://certificatemanager.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations
替换以下内容:
PROJECT_ID:您的 Google Cloud 项目的 ID。LOCATION:目标 Google Cloud 位置。默认位置是global。
删除已完成的长时间运行的操作
如果您不再需要结果,可以删除已完成的操作资源。删除已完成的操作只会移除操作记录,而不会取消或撤消该操作所做的更改。
您无法使用 gcloud 命令删除操作。请改用 REST API。
API
如需删除已完成的操作,请向 projects.locations.operations.delete 方法发送 DELETE 请求:
DELETE https://certificatemanager.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
替换以下内容:
PROJECT_ID:您的 Google Cloud 项目的 ID。LOCATION:目标 Google Cloud 位置。默认位置是global。OPERATION_ID:操作的 ID。
保留政策
Certificate Manager 会根据以下规则(按优先级顺序)自动保留和删除已完成的 LRO:
- 不到 1 小时前:如果操作在不到 1 小时前完成,Certificate Manager 会保留该操作。
- 超过 1 周:如果某项操作在 1 周前完成,Certificate Manager 会删除该操作。
- 上限:如果操作在 1 小时到 1 周前完成,Certificate Manager 会在每个项目中最多保留 5,000 个最近完成的操作,并删除所有较早完成的操作。
以下示例展示了这些规则的应用方式:
- 如果您的项目有 10,000 个已完成的操作,且这些操作的时间均不到 1 小时,则 Certificate Manager 会保留所有 10,000 个操作。
- 如果您的项目有 1,000 个已完成的操作,且这些操作都已超过 1 周,则 Certificate Manager 会删除所有 1,000 个操作。
- 如果您的项目有 10,000 个已完成的操作,且这些操作的时间都在 1 小时到 1 周之间,则 Certificate Manager 仅保留最近的 5,000 个操作。