

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Step Functions를 사용하여 AWS Batch워크로드 실행
<a name="connect-batch"></a>

Step FunctionsAWS 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": "*"
        }
    ]
}
```

------