Step Functions を使用してAWS Batchワークロードを実行する - AWS Step Functions

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

Step Functions を使用してAWS Batchワークロードを実行する

Step Functions を と統合AWS Batchして、AWSクラウドでバッチコンピューティングワークロードを実行できます。このページでは、サポートされている AWS Batch API を一覧表示し、バッチ処理タスクを実行するための Task 状態の例を示します。

Step Functions での AWSサービスとの統合については、 サービスとの統合「」および「」を参照してくださいStep Functions でサービス API にパラメータを渡す

最適化AWS Batch統合の主な機能

レスポンスのリクエスト または タスクトークンのコールバックまで待機する 統合パターンに固有の最適化はないことに注意してください。

AWS Batchジョブを送信し、完了するまで待機するTask状態の例を次に示します。ここで示している引数の多くはオプションです。

"Submit Batch Job": { "Type": "Task", "Resource": "arn:aws:states:::batch:submitJob.sync", "Arguments": { "JobName": "BATCH_NAME", "JobQueue": "BATCH_QUEUE_ARN", "JobDefinition": "BATCH_JOB_DEFINITION_ARN", "ArrayProperties": { "Size": 10 }, "ContainerOverrides": { "ResourceRequirements": [ { "Type": "VCPU", "Value": "4" } ] }, "DependsOn": [ { "JobId": "myJobId", "Type": "SEQUENTIAL" } ], "PropagateTags": true, "Arguments": { "Key1": "value1", "Key2": 100 }, "RetryStrategy": { "Attempts": 1 }, "Tags": { "Tag": "TAG" }, "Timeout": { "AttemptDurationSeconds": 10 } } }

AWS BatchAPIs

Step Functions のパラメータは PascalCase で表されます。

ネイティブサービス API が、API アクション startSyncExecution などの camelCase である場合でも、StateMachineArn などの PascalCase でパラメータを指定します。

を呼び出すための IAM ポリシーAWS Batch

次のサンプルテンプレートは、 がステートマシン定義のリソースに基づいて IAM ポリシーAWS Step Functionsを生成する方法を示しています。詳細については、「Step Functions が統合サービスの IAM ポリシーを生成する方法」および「Step Functions でサービス統合パターンを検出する」を参照してください。

SubmitJob および TerminateJob のジョブ ID は実行時に生成されるため、特定のリソースに基づいてアクセスを制限するポリシーを作成することはできません。

きめ細かなアクセスコントロールのためのヒント

SubmitJobTerminateJob に対するきめ細かなアクセスコントロールを追加するには、ジョブにタグを付け、そのタグに基づいてアクセスを制限するポリシーを作成することを検討してください。さらに、SubmitJob に対しては、既知のリソースを使用してジョブキュー、定義、消費可能なリソースを制限できます。

Run a Job (.sync)
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "batch:SubmitJob", "batch:DescribeJobs", "batch:TerminateJob" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "events:PutTargets", "events:PutRule", "events:DescribeRule" ], "Resource": [ "arn:aws:events:us-east-1:123456789012:rule/StepFunctionsGetEventsForBatchJobsRule" ] } ] }
Request Response
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "batch:SubmitJob" ], "Resource": "*" } ] }