管理長時間執行的作業

本頁面說明如何管理 Financial Services API 長時間執行作業 (LRO) 的生命週期。

如果方法呼叫可能需要很長的時間才能完成,系統會傳回長時間執行的作業。舉例來說,每次呼叫 projects.locations.instances.create 時,Financial Services API 都會建立 LRO。LRO 會追蹤處理工作的狀態。

您可以使用 Financial Services API 提供的 projects.locations.operations 方法,查看 LROs 的狀態。您也可以列出取消刪除 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 在 IAM 設定中列出的專案 ID
  • LOCATION:執行個體的位置;請使用支援的區域之一
    顯示地區
    • us-central1
    • us-east1
    • asia-south1
    • europe-west1
    • europe-west2
    • europe-west4
    • northamerica-northeast1
    • southamerica-east1
    • australia-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 設定中列出的專案 ID
  • LOCATION:作業的位置;請使用其中一個支援的區域
    顯示地區
    • us-central1
    • us-east1
    • asia-south1
    • europe-west1
    • europe-west2
    • europe-west4
    • northamerica-northeast1
    • southamerica-east1
    • australia-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 設定中列出的專案 ID
  • LOCATION:作業的位置,請使用支援的區域之一
    顯示地區
    • us-central1
    • us-east1
    • asia-south1
    • europe-west1
    • europe-west2
    • europe-west4
    • northamerica-northeast1
    • southamerica-east1
    • australia-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 設定中列出的專案 ID
  • LOCATION:作業的位置;請使用支援的區域之一
    顯示地區
    • us-central1
    • us-east1
    • asia-south1
    • europe-west1
    • europe-west2
    • europe-west4
    • northamerica-northeast1
    • southamerica-east1
    • australia-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 回應:

{}