本頁說明如何管理 Financial Services API 長時間執行的作業 (LRO) 的生命週期。
如果方法呼叫可能需要很長時間才能完成,系統會傳回「長時間執行的作業」。舉例來說,每次呼叫 projects.locations.instances.create 時,Financial Services API 都會建立 LRO。LRO 會追蹤處理工作的狀態。
您可以使用 Financial Services API 提供的 projects.locations.operations 方法,檢查 LRO 的狀態。您也可以列出、取消或刪除 LRO。
LRO 是在 Google Cloud 專案和位置層級管理。 向 API 提出要求時,請一併提供 Google Cloud 專案和 LRO 執行的位置。
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:執行個體的位置;請使用其中一個支援的區域顯示地區us-central1us-east1europe-west2europe-west6
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": "2023-03-14T15:52:55.358979323Z",
"endTime": "2023-03-14T16:52:55.358979323Z",
"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: Google Cloud 列於「IAM 設定」的專案 IDLOCATION:作業位置;使用其中一個支援的區域。顯示地區us-central1us-east1europe-west2europe-west6
如要傳送要求,請選擇以下其中一個選項:
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": "2023-03-14T15:52:55.358979323Z",
"endTime": "2023-03-14T16:52:55.358979323Z",
"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: Google Cloud 列於「IAM 設定」的專案 IDLOCATION:作業位置;請使用支援的區域之一。顯示地區us-central1us-east1europe-west2europe-west6
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: Google Cloud 列於「IAM 設定」的專案 IDLOCATION:作業位置;請使用支援的區域之一。顯示地區us-central1us-east1europe-west2europe-west6
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 回覆:
{}