本頁說明如何管理 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:列於身分與存取權管理設定的 Google Cloud 專案 IDLOCATION:執行個體的位置;請使用其中一個支援的區域顯示地區us-central1us-east1asia-south1europe-west1europe-west2europe-west4europe-west6me-central2northamerica-northeast1southamerica-east1australia-southeast1
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-east1asia-south1europe-west1europe-west2europe-west4europe-west6me-central2northamerica-northeast1southamerica-east1australia-southeast1
如要傳送要求,請選擇以下其中一個選項:
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-east1asia-south1europe-west1europe-west2europe-west4europe-west6me-central2northamerica-northeast1southamerica-east1australia-southeast1
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-east1asia-south1europe-west1europe-west2europe-west4europe-west6me-central2northamerica-northeast1southamerica-east1australia-southeast1
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 回覆:
{}