

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

# Step Functions を使用してAWS Batchワークロードを実行する
<a name="connect-batch"></a>

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

Step Functions での AWSサービスとの統合については、[ サービスとの統合](integrate-services.md)「」および「」を参照してください[Step Functions でサービス API にパラメータを渡す](connect-parameters.md)。

**最適化AWS Batch統合の主な機能**  
[ジョブの実行 (.sync)](connect-to-resource.md#connect-sync) 統合パターンが利用可能です。
[レスポンスのリクエスト](connect-to-resource.md#connect-default) または [タスクトークンのコールバックまで待機する](connect-to-resource.md#connect-wait-token) 統合パターンに固有の最適化はないことに注意してください。

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
<a name="connect-batch-api"></a>
+ [https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitJob.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitJob.html)

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

## を呼び出すための IAM ポリシーAWS Batch
<a name="batch-iam"></a>

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

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

**きめ細かなアクセスコントロールのためのヒント**  
`SubmitJob` と `TerminateJob` に対するきめ細かなアクセスコントロールを追加するには、ジョブにタグを付け、そのタグに基づいてアクセスを制限するポリシーを作成することを検討してください。さらに、`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": "*"
        }
    ]
}
```

------