Cloud Storage で長時間実行オペレーションを使用する

このページでは、Cloud Storage のメソッド呼び出しで開始する長時間実行オペレーションの使用方法について説明します。長時間実行オペレーションで実行できるリクエストなど、長時間実行オペレーションのセマンティクスの詳細については、機能固有のドキュメントをご覧ください。

長時間実行オペレーションの管理方法の一般的な情報については、gcloud storage operations のドキュメントをご覧ください。

長時間実行オペレーションの詳細を取得する

長時間実行オペレーションの詳細を取得するか、ステータスを確認するには、gcloud storage operations describe コマンドを使用します。

gcloud storage operations describe projects/_/buckets/BUCKET_NAME/operations/OPERATION_ID

次のように置き換えます。

  • BUCKET_NAME: 長時間実行オペレーションを含むバケットの名前。例: my-bucket

  • OPERATION_ID: 長時間実行オペレーションの ID。この ID は、呼び出したメソッドのレスポンスとして返されます。たとえば、gcloud storage restore の呼び出しから次のレスポンスが返された場合、長時間実行オペレーション ID は BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP です。

    Created: projects/_/buckets/my-bucket/operations/BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP

バケット内の長時間実行オペレーションを一覧表示する

バケット内の長時間実行オペレーションを一覧表示するには、gcloud storage operations list コマンドを使用します。

gcloud storage operations list gs://BUCKET_NAME

次のように置き換えます。

  • BUCKET_NAME: 長時間実行オペレーションを含むバケットの名前。例: my-bucket

長時間実行オペレーションをキャンセルする

長時間実行オペレーションをキャンセルするには、gcloud storage operations cancel コマンドを使用します。

gcloud storage operations cancel projects/_/buckets/BUCKET_NAME/operations/OPERATION_ID

次のように置き換えます。

  • BUCKET_NAME: 長時間実行オペレーションを含むバケットの名前。例: my-bucket

  • OPERATION_ID: 長時間実行オペレーションの ID。この ID は、呼び出したメソッドのレスポンスとして返されます。たとえば、gcloud storage restore の呼び出しから次のレスポンスが返された場合、長時間実行オペレーション ID は BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP です。

    Created: projects/_/buckets/my-bucket/operations/BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP

エラー処理

長時間実行オペレーションは非同期 API から開始されます。非同期 API では、同期 API とは異なるエラー処理が必要です。同期 API とは異なり、非同期 API 呼び出しに対するレスポンスは、長時間実行オペレーションが最終的に失敗した場合でも成功を示すことがあります。レスポンス ヘッダーで返されるステータス コードに依存するのではなく、レスポンスの本文にある長時間実行オペレーション メタデータを解析して、API 呼び出しが成功したかどうかを判断する必要があります。

たとえば、削除(復元可能)の一括復元リクエストを行うと、オペレーション中にエラーが発生しても、成功した HTTP ステータス コード(200 OK)が返されます。一括復元オペレーションが成功したかどうかを確認するには、長時間実行オペレーションのステータスを取得します

長時間実行オペレーション API(Get、List、Cancel)は同期であり、通常のエラーを返します。