長時間実行オペレーションを管理する

このページでは、Certificate Manager で長時間実行オペレーションを確認して管理する方法について説明します。

Certificate Manager でリソースの作成、更新、削除などの変更リクエストがすぐに失敗しない場合、API は長時間実行オペレーション(LRO)を返します。これらのオペレーションは、完了までに時間がかかる処理タスクのステータスを追跡します。デフォルトでは、--async フラグを指定しない限り、gcloud ミューテーション コマンドはオペレーションが完了するまで待機します。

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 時間未満: オペレーションが 1 時間未満前に完了した場合、Certificate Manager はオペレーションを保持します。
  2. 1 週間以上経過している: オペレーションが 1 週間以上前に完了している場合、Certificate Manager はオペレーションを削除します。
  3. 上限: 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 件のオペレーションのみを保持します。