このページでは、Financial Services API の長時間実行オペレーション(LRO)のライフサイクルを管理する方法を説明します。
長時間実行オペレーションは、メソッド呼び出しが完了するまでに時間がかかる場合に返されます。たとえば、Financial Services API は、projects.locations.instances.create
を呼び出すたびに LRO を作成します。LRO は処理ジョブのステータスを追跡します。
Financial Services API で提供される projects.locations.operations
メソッドを使用して、LRO のステータスを確認できます。また、LRO の一覧表示、キャンセル、削除も行えます。
LRO は Google Cloud のプロジェクト レベルとロケーション レベルで管理されます。 API に対してリクエストを行う場合は、Google Cloud プロジェクトと LRO を実行しているロケーションを含めます。
LRO のレコードは、終了後約 30 日間保持されます。それ以降は LRO を表示したり、一覧表示したりできません。
長時間実行オペレーションの詳細の取得
インスタンスを作成したとします。
このレスポンスの name
値は、Financial Services API が projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
という名前の LRO を作成したことを示しています。
インスタンスが作成されたかどうかを確認するには、projects.locations.operations.get
メソッドを使用します。レスポンスに "done": false
が含まれている場合は、レスポンスに "done": true
が含まれるまでコマンドを繰り返します。
このオペレーションには数分かかることがあります。
長時間実行オペレーションの一覧表示によって LRO 名を取得することもできます。
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID
: IAM 設定に載っている Google Cloud プロジェクト IDLOCATION
: インスタンスのロケーション。サポートされているリージョンのいずれかを使用します。3~7 つの店舗を表示us-central1
us-east1
asia-south1
europe-west1
europe-west2
europe-west4
northamerica-northeast1
southamerica-east1
OPERATION_ID
: オペレーションの ID。
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID"
PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.financialservices.v1.OperationMetadata", "createTime": CREATE_TIME, "endTime": END_TIME, "target": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.financialservices.v1.Instance", "name": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID", "createTime": CREATE_TIME, "updateTime": UPDATE_TIME, "state": "ACTIVE", "kmsKey": "projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID/cryptoKeys/KEY_ID" } }
長時間実行オペレーションを一覧表示する
projects.locations.operations.list
メソッドを使用して、特定のロケーションにあるすべてのオペレーションを一覧表示します。
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID
: IAM 設定に載っている Google Cloud プロジェクト ID。LOCATION
: オペレーションのロケーション。 サポートされているリージョンのいずれかを使用します。3~7 つの店舗を表示us-central1
us-east1
asia-south1
europe-west1
europe-west2
europe-west4
northamerica-northeast1
southamerica-east1
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations"
PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "operations": [ { "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.financialservices.v1.OperationMetadata", "createTime": CREATE_TIME, "endTime": END_TIME, "target": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/engineConfigs/ENGINE_CONFIG_ID", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }, { "name": "projects/PROJECT_ID/locations/LOCATION/operations/my-other-operation", "metadata": { "@type": "type.googleapis.com/google.cloud.financialservices.v1.OperationMetadata", "createTime": CREATE_TIME, "endTime": END_TIME, "target": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.financialservices.v1.Instance", "name": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID", "createTime": CREATE_TIME, "updateTime": UPDATE_TIME, "state": "ACTIVE", "kmsKey": "projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID/cryptoKeys/KEY_ID" } } ] }
長時間実行オペレーションをキャンセルする
長時間実行オペレーションの非同期キャンセルを開始するには、projects.locations.operations.cancel
メソッドを使用します。サーバーは操作のキャンセルに全力を尽くしますが、成功は保証されません。
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID
: IAM 設定に載っている Google Cloud プロジェクト ID。LOCATION
: オペレーションのロケーション。 サポートされているリージョンのいずれかを使用します。3~7 つの店舗を表示us-central1
us-east1
asia-south1
europe-west1
europe-west2
europe-west4
northamerica-northeast1
southamerica-east1
OPERATION_ID
: オペレーションの ID。
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel"
PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{}
長時間実行オペレーションを削除する
projects.locations.operations.delete
メソッドを使用して、完了した長時間実行オペレーションを削除します。このメソッドは、クライアントがオペレーション結果に関心がなくなったことを表しています。このメソッドではオペレーションはキャンセルされません。
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID
: IAM 設定に載っている Google Cloud プロジェクト ID。LOCATION
: オペレーションのロケーション。 サポートされているリージョンのいずれかを使用します。3~7 つの店舗を表示us-central1
us-east1
asia-south1
europe-west1
europe-west2
europe-west4
northamerica-northeast1
southamerica-east1
OPERATION_ID
: オペレーションの ID。
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID"
PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{}