このページでは、Cloud Life Sciences API の長時間実行オペレーション(LRO)のライフサイクルを管理する方法を説明します。
長時間実行オペレーションは、メソッド呼び出しが完了するまでに時間がかかる場合に返されます。Cloud Life Sciences API は、projects.locations.pipelines.run
または gcloud beta lifesciences pipelines run
を呼び出すたびに LRO を作成します。LRO はパイプラインのステータスを追跡します。
Cloud Life Sciences API で提供されるオペレーション API を使用して、LRO のステータスを確認できます。また、LRO の一覧表示、ポーリング、キャンセルも行えます。
Cloud Life Sciences API を直接呼び出すと、LRO は Google Cloud のプロジェクト レベルとロケーション レベルで管理されます。LRO に対して直接リクエストを行う場合は、Google Cloud プロジェクトと LRO を実行しているロケーションを含めます。
gcloud CLI を設定している場合、gcloud CLI を使用して Cloud Life Sciences API を呼び出すときに、LRO に対するリクエストにオペレーション ID のみを含める必要があります。Google Cloud プロジェクト ID と LRO が実行されているロケーションは、オペレーション ID から推測されます。
Cloud Life Sciences の LRO は、Google Cloud コンソールや Google Cloud CLI を使用するか、API を直接呼び出して管理できます。gcloud CLI を使用して Cloud Life Sciences API を直接呼び出す場合に使用できる LRO の詳細すべてがGoogle Cloud コンソールに含まれているわけではありません。
LRO のレコードは LRO が終了した後、約 30 日間保存されます。それ以降は LRO を表示したり、一覧表示したりできません。
長時間実行オペレーションの詳細の取得
次のサンプルでは、LRO の詳細を取得する方法を示しています。
Console
- Google Cloud コンソールで、Life Sciences Pipelines ページに移動します。
- LRO とそのステータスの一覧が表示されます。探している LRO を見つけて、そのステータスを表示します。ステータス列に使用できる値は、Running、Completed、Failed です。
gcloud
gcloud beta lifesciences pipelines run
を呼び出した後に次のレスポンスを受け取ったとします。
Running [projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID].
このレスポンスは、Cloud Life Sciences API が、オペレーション ID がある LRO を作成したことを示しています。
LRO の詳細を確認するには、オペレーション ID を指定して gcloud beta lifesciences operations describe
コマンドを実行します。
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 の識別子
HTTP メソッドと URL:
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
API Explorer
メソッド リファレンス ページを開きます。ページの右側に [API Explorer] パネルが開きます。このツールを操作してリクエストを送信できます。必須フィールドを入力して、[Execute] をクリックします。
長時間実行オペレーションの一覧表示
次のサンプルでは、Google Cloud のプロジェクトとロケーションで LRO を一覧表示する方法を示しています。
Console
- Google Cloud コンソールで、Life Sciences Pipelines ページに移動します。
- LRO とそのステータスの一覧が表示されます。ステータス列に使用できる値は、Running、Completed、Failed です。
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:1 つ以上の LRO を実行しているロケーション
HTTP メソッドと URL:
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
API Explorer
メソッド リファレンス ページを開きます。ページの右側に [API Explorer] パネルが開きます。このツールを操作してリクエストを送信できます。必須フィールドを入力して、[Execute] をクリックします。
次のような 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 のステータスをポーリングする方法を示しています。
Console
- Google Cloud コンソールで、Life Sciences Pipelines ページに移動します。
- LRO とそのステータスの一覧が表示されます。更新アイコンをクリックすると、LRO の更新されたステータスが表示されます。
gcloud
パイプラインを開始した後、LRO をポーリングするには、gcloud beta lifesciences operations wait
コマンドを実行します。
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 の識別子
HTTP メソッドと URL:
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 をキャンセルする方法を示しています。
Console
- Google Cloud コンソールで、Life Sciences Pipelines ページに移動します。
- キャンセルする 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 の識別子
HTTP メソッドと URL:
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
API Explorer
メソッド リファレンス ページを開きます。ページの右側に [API Explorer] パネルが開きます。このツールを操作してリクエストを送信できます。必須フィールドを入力して、[Execute] をクリックします。
次のような JSON レスポンスが返されます。
{}