ジョブステータスのポーリング (Lambda、AWS Batch) - AWS Step Functions

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ジョブステータスのポーリング (Lambda、AWS Batch)

このサンプルプロジェクトは、AWS Batch ジョブポーリングを作成します。このプロジェクトが実装する AWS Step Functions ステートマシンは、AWS Lambda を使用して、AWS Batch ジョブを確認する Wait 状態ループを作成します。

このサンプルプロジェクトは、Step Functions ワークフローが AWS Batch ジョブを送信し、そのジョブが正常に完了するのを待つように、すべてのリソースを作成して設定します。

注記

また、Lambda 関数を使用せずに、このパターンを実装することもできます。AWS Batch の直接制御については、他のサービスで AWS Step Functions を使用する を参照してください。

このサンプルプロジェクトは、ステートマシン、2 つの Lambda 関数、AWS Batch キューを作成し、関連する IAM 許可を設定します。

‭AWS Step Functions‬ で他の ‭AWS のサービスを制御する方法の詳細については、‭他のサービスで AWS Step Functions を使用する を参照してください。

ステートマシンを作成してリソースをプロビジョンする

  1. Step Functions コンソールを開き、[Create a state machine] (ステートマシンの作成)] を選択します。

  2. 選択サンプルプロジェクトの実行[] を選択してから、Job ポーラー

    ステートマシン定義そしてビジュアルワークフローが表示される。

    
          ジョブポーリングのビジュアルワークフロー
    注記

    -定義このステートマシンのセクションでは、AWSこのサンプルプロジェクト用に作成されるリソース

  3. [Next] (次へ) を選択します。

    作成されるリソースを示す [Deploy resources] (リソースのデプロイ) ページが表示されます。このサンプルプロジェクトでは、以下のリソースが含まれます。

    • SubmitJob Lambda 関数

    • CheckJob Lambda 関数

    • SampleJobQueue バッチジョブのキュー

  4. 選択リソースのデプロイ

    注記

    これらのリソースおよび関連する IAM 許可が作成されるまで、最大 10 分かかることがあります。[Deploy resources] (リソースのデプロイ) ページが表示されている場合は、[Stack ID] (スタック ID) リンクを開いて、プロビジョンされているリソースを表示することができます。

実行の開始

すべてのリソースのプロビジョニングとデプロイ後、実行の開始ダイアログボックスが表示されて、次のような入力例が示されます。

{ "jobName": "my-job", "jobDefinition": "arn:aws:batch:us-east-1:123456789012:job-definition/SampleJobDefinition-343f54b445d5312:1", "jobQueue": "arn:aws:batch:us-east-1:123456789012:job-queue/SampleJobQueue-4d9d696031e1449", "wait_time": 60 }
注記

wait_time は、Wait 状態が 60 秒ごとにループするように命令します。

新しい実行をスタートするには

  1. (省略可能) 実行を識別するには、名前ボックスに移動するとそのように表示されます。デフォルトでは、Step Functions は自動的に一意の実行名を生成します。

    注記

    Step Functions では、非 ASCII 文字を含むステートマシン、実行、およびアクティビティ名を作成できます。これらの非 ASCII 名は Amazon CloudWatch では機能しません。確実に追跡できるよう CloudWatch メトリクスを指定するには、ASCII 文字のみを使用する名前を選択します。

  2. [Start Execution] (実行のスタート) を選択します。

  3. (省略可能)実行が完了したら、[] で個々のステートを選択します。グラフインスペクター[] を選択してから、ステップ入力そしてステップ出力タブを使用して、各ステートの入力と出力をそれぞれ表示します。

    たとえば、変更中のステータスを表示するにはAWS Batchジョブと実行のループ結果を表示するには、ステップ出力

    
              ステートマシンの実行

ステートマシンのコード例

このサンプルプロジェクトのステートマシンはAWS Lambdaを送信するにはAWS Batch仕事。このステートマシンの例を参照して、Step Functions が Lambda をどのように制御するかを確認します。AWS Batch。

‭AWS Step Functions‬ で他の ‭AWS のサービスを制御する方法の詳細については、‭他のサービスで AWS Step Functions を使用する を参照してください。

{ "Comment": "An example of the Amazon States Language that runs an AWS Batch job and monitors the job until it completes.", "StartAt": "Submit Job", "States": { "Submit Job": { "Type": "Task", "Resource": "arn:aws:lambda:us-east-1:111122223333:function:StepFunctionsSample-JobStatusPol-SubmitJobFunction-jDaYcl4cx55r", "ResultPath": "$.guid", "Next": "Wait X Seconds" }, "Wait X Seconds": { "Type": "Wait", "SecondsPath": "$.wait_time", "Next": "Get Job Status" }, "Get Job Status": { "Type": "Task", "Resource": "arn:aws:lambda:us-east-1:111122223333:function:StepFunctionsSample-JobStatusPoll-CheckJobFunction-1JkJwY10vonI", "Next": "Job Complete?", "InputPath": "$.guid", "ResultPath": "$.status" }, "Job Complete?": { "Type": "Choice", "Choices": [ { "Variable": "$.status", "StringEquals": "FAILED", "Next": "Job Failed" }, { "Variable": "$.status", "StringEquals": "SUCCEEDED", "Next": "Get Final Job Status" } ], "Default": "Wait X Seconds" }, "Job Failed": { "Type": "Fail", "Cause": "AWS Batch Job Failed", "Error": "DescribeJob returned FAILED" }, "Get Final Job Status": { "Type": "Task", "Resource": "arn:aws::lambda:us-east-1:111122223333:function:StepFunctionsSample-JobStatusPoll-CheckJobFunction-1JkJwY10vonI", "InputPath": "$.guid", "End": true } } }