本頁面說明如何管理 Cloud Life Sciences API 長時間執行作業 (LRO) 的生命週期。
當方法呼叫可能需要很長的時間才能完成時,系統會傳回長時間執行的作業。每次呼叫 projects.locations.pipelines.run
或 gcloud beta lifesciences pipelines run
時,Cloud Life Sciences API 都會建立 LRO。LRO 會追蹤管道的狀態。
您可以使用 Cloud Life Sciences API 提供的作業 API,查看 LRO 的狀態。您也可以列出、輪詢或取消 LRO。
直接呼叫 Cloud Life Sciences API 時,系統會在 Google Cloud 專案和位置層級管理 LRO。直接向 LRO 提出要求時,請一併提供 Google Cloud 專案和 LRO 執行的位置。
如果您已設定 gcloud CLI,那麼在使用 gcloud CLI 呼叫 Cloud Life Sciences API 時,您對 LRO 的要求只需包含作業 ID 即可。系統會根據作業 ID 推斷 Google Cloud 專案 ID 和 LRO 執行的位置。
您可以使用 Google Cloud 控制台、Google Cloud CLI 或直接呼叫 API 來管理 Cloud Life Sciences LRO。 Google Cloud 控制台不包含 LRO 的所有詳細資料,這些資料可在使用 gcloud CLI 並直接呼叫 Cloud Life Sciences API 時取得。
LRO 的記錄會在 LRO 結束後約 30 天保留,也就是說,您無法在該時間點之後查看或列出 LRO。
取得長時間執行作業的詳細資料
下列範例說明如何取得 LRO 的詳細資料。
控制台
- 在 Google Cloud 控制台中,前往「生命科學管道」頁面。
- 系統會顯示 LRO 清單和狀態。找出所需的 LRO,並查看其狀態。「狀態」欄的可能值為「執行中」、「已完成」和「失敗」。
gcloud
假設您在呼叫 gcloud beta lifesciences pipelines run
後收到以下回應:
Running [projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID].
回應顯示 Cloud Life Sciences API 已建立含有作業 ID 的 LRO。
如要取得 LRO 的詳細資料,請執行 gcloud beta lifesciences operations describe
指令,並指定作業 ID。
gcloud beta lifesciences operations describe OPERATION_ID
您也可以列出長時間執行的資料庫作業,以擷取作業 ID。
如果要求成功,命令提示字元就會顯示作業詳細資料。這裡顯示的輸出內容是取自快速入門中的管道作業。
API
如要取得 LRO 的狀態並查看詳細資料,請呼叫 projects.locations.operations.get
方法。
REST
假設您在呼叫 projects.locations.pipelines.run
後收到以下回應:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID" }
回應中的 name
值顯示 Cloud Life Sciences API 建立了名為 projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID
的 LRO。
您也可以列出長時間執行的作業,以擷取 LRO 名稱。
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:您的 Google Cloud 專案 ID
- LOCATION:LRO 執行的位置
- OPERATION_ID:LRO 的 ID
HTTP 方法和網址:
GET https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
如要傳送要求,請選擇以下其中一個選項:
curl
執行下列指令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://lifesciences.googleapis.com/v2beta/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://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID" | Select-Object -Expand Content
APIs Explorer
開啟方法參考頁面。系統會在頁面右側開啟 API Explorer 面板。 您可以使用這項工具來傳送要求。完成所有必填欄位,然後按一下「執行」。
列出長時間執行的作業
以下範例說明如何在 Google Cloud 專案和位置中列出 LRO。
控制台
- 在 Google Cloud 控制台中,前往「生命科學管道」頁面。
- 系統會顯示 LRO 清單和狀態。「狀態」欄的可能值為「執行中」、「已完成」和「失敗」。
gcloud
如要列出 Google Cloud 專案和位置中的 LRO,請執行 gcloud beta lifesciences operations list
指令。
gcloud beta lifesciences operations list
如果要求成功,命令提示字元就會列出 LRO:
ID LOCATION DONE OPERATION_ID LOCATION {TRUE|FALSE} ...
API
如要列出 Google Cloud 專案和位置中的 LRO,請呼叫 projects.locations.operations.list
方法。
REST
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:您的 Google Cloud 專案 ID
- LOCATION:一或多個 LRO 執行的位置
HTTP 方法和網址:
GET https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations
如要傳送要求,請選擇以下其中一個選項:
curl
執行下列指令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://lifesciences.googleapis.com/v2beta/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://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations" | Select-Object -Expand Content
APIs Explorer
開啟方法參考頁面。系統會在頁面右側開啟 API Explorer 面板。您可以使用這項工具來傳送要求。完成所有必填欄位,然後按一下「執行」。
您應該會收到如下的 JSON 回應:
{ "operations": [ { "name": "PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.lifesciences.v2beta.Metadata", "pipeline": { ... } "createTime": "CREATE_TIME", "startTime": "START_TIME", "endTime": "END_TIME" }, "done": true, "response": { "@type": "type.googleapis.com/cloud.lifesciences.pipelines.RunPipelineResponse" } }, ... ] }
輪詢長時間執行的作業
以下範例說明如何輪詢 LRO 的狀態。
控制台
- 在 Google Cloud 控制台中,前往「生命科學管道」頁面。
- 系統會顯示 LRO 清單和狀態。按一下「Refresh」圖示,即可查看 LRO 的更新狀態。
gcloud
啟動管道後,您可以執行 gcloud beta lifesciences operations wait
指令來輪詢 LRO。
gcloud beta lifesciences operations wait OPERATION_ID
如果要求成功,命令提示字元就會顯示下列內容:
Waiting for [projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID] to complete...
作業完成後,命令提示字元會顯示下列內容:
Waiting for [projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID] to complete...done.
API
如要輪詢 LRO,請重複呼叫 projects.locations.operations.get
方法,直到作業完成為止。請在每次輪詢要求之間使用輪詢,例如每 10 秒就進行輪詢。
使用下列任何要求資料之前,請先替換以下項目:
- PROJECT_ID:您的 Google Cloud 專案 ID
- LOCATION:LRO 執行的位置
- OPERATION_ID:LRO 的 ID
HTTP 方法和網址:
GET https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
如要傳送要求,請選擇以下其中一個選項:
curl
執行下列指令,每 10 秒輪詢一次 LRO 的狀態:
while true; \ do curl -X GET \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ "https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID"; \ sleep 10; \ done
您應該會收到類似以下的 JSON 回應。這裡顯示的輸出內容取自快速入門中的管道作業。作業完成後,回應中會包含 "done": true
和 endTime
欄位中的值。
PowerShell
執行下列指令,每隔 10 秒輪詢一次 LRO 的狀態:
$cred = gcloud auth print-access-token $headers = @{ Authorization = "Bearer $cred" } Do { Invoke-WebRequest ` -Method Get ` -Headers $headers ` -Uri "https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID" | Select-Object -Expand Content sleep 10 } while ($true)
您應該會收到類似以下的 JSON 回應。這裡顯示的輸出內容取自快速入門中的管道作業。作業完成後,回應中會包含 "done": true
和 endTime
欄位中的值。
取消長時間執行的作業
下列範例說明如何在 LRO 執行期間取消 LRO。
控制台
- 在 Google Cloud 控制台中,前往「生命科學管道」頁面。
- 按一下要取消的 LRO ID。
- 按一下「取消」圖示。
gcloud
如要取消 LRO,請執行 gcloud beta lifesciences operations cancel
指令。
gcloud beta lifesciences operations cancel OPERATION_ID
如果要求成功,系統會顯示取消提示:
Operation [OPERATION_ID] will be canceled. Do you want to continue (Y/n)? Y
如要確認,請輸入 Y。確認取消後,回應會傳回空白主體。
Operation [OPERATION_ID] will be canceled. Do you want to continue (Y/n)? Y {}
API
如要取消 LRO,請呼叫 projects.locations.operations.cancel
方法。
REST
使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:您的 Google Cloud 專案 ID
- LOCATION:LRO 執行的位置
- OPERATION_ID:LRO 的 ID
HTTP 方法和網址:
POST https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel
如要傳送要求,請選擇以下其中一個選項:
curl
執行下列指令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://lifesciences.googleapis.com/v2beta/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://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel" | Select-Object -Expand Content
APIs Explorer
開啟方法參考頁面。系統會在頁面右側開啟 API Explorer 面板。 您可以使用這項工具來傳送要求。完成所有必填欄位,然後按一下「執行」。
您應該會收到如下的 JSON 回應:
{}