長時間実行オペレーションによる作業

このページでは、Cloud AutoML を使用して AutoML Tables の長時間実行オペレーションを処理する方法を説明します。

はじめに

AutoML Tables のオペレーションの中には、完了までにある程度の時間を要するものがあります。

  • datasets.importData
  • datasets.exportData
  • datasets.delete
  • models.batchPredict
  • models.create
  • models.delete
  • models.deploy
  • models.exportEvaluatedExamples
  • models.undeploy

Google Cloud Console を使用している場合は、ブラウザ ウィンドウを閉じてもオペレーションに影響しません。オペレーションが完了するとパネルが更新されます。

完了までに長時間かかる API 呼び出しを行う場合、最初の呼び出しは、オペレーションがまだ実行中であってもすぐに返されます。長時間実行オペレーションのステータスの確認に使用できるヘルパー メソッドが用意されています。

長時間実行オペレーションが完了すると、AutoML Tables からプロジェクト オーナーにメールが送信されます。

オペレーション ステータスのポーリング

長時間実行オペレーションのステータスをポーリングできます。この方法は実行中のプログラムの妨げにはなりませんが、オペレーションが完了するまでポーリングを続ける必要があります。

オペレーションのステータスを取得するには、オペレーションの開始時のレスポンスに記載されているオペレーション ID を使用します。オペレーション ID は Google Cloud Console に表示されません。

次のコマンドの operation-name は、オペレーションの完全な名前に置き換えます。完全な名前の形式は projects/{project-id}/locations/us-central1/operations/{operation-id} です。

curl -X GET \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "Content-Type: application/json" \
  https://automl.googleapis.com/v1beta1/operation-name

インポート オペレーションでは、次のような出力が表示されます。出力には、リクエストの種類に固有の情報を含む metadata オブジェクトがあります。done フィールドは、オペレーションが完了したかどうかを示します。オペレーションが完了している場合、レスポンスにはリクエストの結果に関する情報が含まれます。

{
  "name": "projects/1234/locations/us-central1/operations/TBL2126",
  "metadata": {
...
  },
  "done": true,
  "response": {
...
  }
}

オペレーション完了の待機

当該オペレーションに対する実行をブロックする場合、オペレーションが完了するまで(または指定したタイムアウトに達するまで)待機できます。

次のコマンドで、それぞれの項目を置き換えます。

  • operation-name は、オペレーションの完全な名前です。完全な名前の形式は projects/{project-id}/locations/us-central1/operations/{operation-id} です。オペレーション ID は Google Cloud Console に表示されません。

  • timeout は、待機する最長時間です。秒単位(小数あり)で、末尾に「s」をつけます。たとえば、「4.5s」と指定すると、オペレーションがまだ実行中の場合、待機コマンドは 4 秒半で戻ります。

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "Content-Type: application/json" \
   -d '{"timeout":"timeout"}' \
  https://automl.googleapis.com/v1beta1/operation-name:wait

オペレーションのキャンセル

インポート タスクやトレーニング タスクのキャンセルは、オペレーション ID を使用して実施できます。ただし、キャンセルは必ず成功するとは限りません。トレーニング タスクをキャンセルしても、使用したトレーニング時間は課金対象になります。

オペレーションの削除はできません。

次のコマンドの operation-name は、オペレーションの完全な名前に置き換えます。完全な名前の形式は projects/{project-id}/locations/us-central1/operations/{operation-id} です。オペレーション ID は Google Cloud Console に表示されません。

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  https://automl.googleapis.com/v1beta1/operation-name:cancel