쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

Step Functions를 사용하여 Amazon ECS 또는 Fargate 작업 실행

포커스 모드
Step Functions를 사용하여 Amazon ECS 또는 Fargate 작업 실행 - AWS Step Functions

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

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

Step Functions를 Amazon ECS 또는 Fargate와 통합하여 작업을 실행하고 관리하는 방법을 알아봅니다. Amazon ECS에서 작업은 기본 계산 단위입니다. 작업은 컨테이너 이미지, CPU 및 메모리 제한, 네트워크 구성 및 기타 파라미터를 포함하여 Docker 컨테이너를 실행하는 방법을 지정하는 작업 정의로 정의됩니다. 이 페이지에서는 사용 가능한 Amazon ECS API 작업을 나열하고 Step Functions를 사용하여 Amazon ECS 작업에 데이터를 전달하는 방법에 대한 지침을 제공합니다.

Step Functions의 AWS 서비스와 통합하는 방법에 대한 자세한 내용은 서비스 통합 및 섹션을 참조하세요Step Functions의 서비스 API에 파라미터 전달.

최적화된 Amazon ECS/Fargate 통합의 주요 기능
  • 작업 실행(.sync) 통합 패턴이 지원됩니다.

  • ecs:runTask에서 HTTP 200 응답을 반환할 수 있지만 다음과 같이 비어 있지 않은 Failures 필드가 있습니다.

    • 요청 응답: 응답을 반환하고 태스크를 실패하지 않습니다. 이는 최적화가 없는 것과 동일합니다.

    • 작업 실행 또는 태스크 토큰: 비어 있지 않은 Failures 필드가 발견되면 AmazonECS.Unknown 오류가 발생하여 태스크가 실패합니다.

최적화된 Amazon ECS/Fargate APIs

Step Functions의 파라미터는 PascalCase로 표현됩니다.

기본 서비스 API가 API 작업 startSyncExecution과 같은 camelCase에 있더라도 StateMachineArn과 같은 파라미터를 PascalCase에 지정합니다.

Amazon ECS 작업에 데이터 전달

Step Functions의 AWS 서비스와 통합하는 방법에 대한 자세한 내용은 서비스 통합 및 섹션을 참조하세요Step Functions의 서비스 API에 파라미터 전달.

overrides를 사용하여 컨테이너에 대한 기본 명령을 재정의하고 입력을 Amazon ECS 작업으로 전달할 수 있습니다. ContainerOverride을 참조하세요. 예제에서는 JsonPath를 사용하여 입력의 Task 값을 Task 상태로 전달했습니다.

다음에는 Amazon ECS 작업을 실행하고 완료할 때까지 기다리는 Task 상태가 포함됩니다.

{ "StartAt": "Run an ECS Task and wait for it to complete", "States": { "Run an ECS Task and wait for it to complete": { "Type": "Task", "Resource": "arn:aws:states:::ecs:runTask.sync", "Parameters": { "Cluster": "cluster-arn", "TaskDefinition": "job-id", "Overrides": { "ContainerOverrides": [ { "Name": "container-name", "Command.$": "$.commands" } ] } }, "End": true } } }

ContainerOverrides"Command.$": "$.commands" 줄은 상태 입력에서 컨테이너로 명령을 전달합니다.

이전 예제의 경우 실행에 대한 입력이 다음과 같은 경우 각 명령이 컨테이너 재정의로 전달됩니다.

{ "commands": [ "test command 1", "test command 2", "test command 3" ] }

다음에는 Amazon ECS 작업을 실행한 다음 작업 토큰이 반환될 때까지 기다리는 Task 상태가 포함됩니다. 작업 토큰을 사용하여 콜백 대기을 참조하세요.

{ "StartAt":"Manage ECS task", "States":{ "Manage ECS task":{ "Type":"Task", "Resource":"arn:aws:states:::ecs:runTask.waitForTaskToken", "Parameters":{ "LaunchType":"FARGATE", "Cluster":"cluster-arn", "TaskDefinition":"job-id", "Overrides":{ "ContainerOverrides":[ { "Name":"container-name", "Environment":[ { "Name":"TASK_TOKEN_ENV_VARIABLE", "Value.$":"$$.Task.Token" } ] } ] } }, "End":true } } }

Amazon ECS/AWS Fargate호출을 위한 IAM 정책

다음 예제 템플릿은가 상태 시스템 정의의 리소스를 기반으로 IAM 정책을 AWS Step Functions 생성하는 방법을 보여줍니다. 자세한 내용은 Step Functions가 통합 서비스용 IAM 정책을 생성하는 방법Step Functions에서 서비스 통합 패턴 검색 단원을 참조하세요.

작업 제출 전까지 TaskId 값이 알려지지 않으므로 Step Functions는 권한이 더 많이 부여된 "Resource": "*" 정책을 만듭니다.

참고

"*" IAM 정책에도 불구하고 Step Functions에서 시작한 Amazon Elastic Container Service(Amazon ECS) 작업만 중지할 수 있습니다.

Run a Job (.sync)

정적 리소스

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:RunTask" ], "Resource": [ "arn:aws:ecs:[[region]]: [[accountId]]:task-definition/[[taskDefinition]]:[[revisionNumber]]" ] }, { "Effect": "Allow", "Action": [ "ecs:StopTask", "ecs:DescribeTasks" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "events:PutTargets", "events:PutRule", "events:DescribeRule" ], "Resource": [ "arn:aws:events:[[region]]: [[accountId]]:rule/StepFunctionsGetEventsForECSTaskRule" ] } ] }

동적 리소스

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:RunTask", "ecs:StopTask", "ecs:DescribeTasks" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "events:PutTargets", "events:PutRule", "events:DescribeRule" ], "Resource": [ "arn:aws:events:[[region]]: [[accountId]]:rule/StepFunctionsGetEventsForECSTaskRule" ] } ] }
Request Response and Callback (.waitForTaskToken)

정적 리소스

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:RunTask" ], "Resource": [ "arn:aws:ecs:[[region]]: [[accountId]]:task-definition/[[taskDefinition]]:[[revisionNumber]]" ] } ] }

동적 리소스

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:RunTask" ], "Resource": "*" } ] }

정적 리소스

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:RunTask" ], "Resource": [ "arn:aws:ecs:[[region]]: [[accountId]]:task-definition/[[taskDefinition]]:[[revisionNumber]]" ] }, { "Effect": "Allow", "Action": [ "ecs:StopTask", "ecs:DescribeTasks" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "events:PutTargets", "events:PutRule", "events:DescribeRule" ], "Resource": [ "arn:aws:events:[[region]]: [[accountId]]:rule/StepFunctionsGetEventsForECSTaskRule" ] } ] }

동적 리소스

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:RunTask", "ecs:StopTask", "ecs:DescribeTasks" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "events:PutTargets", "events:PutRule", "events:DescribeRule" ], "Resource": [ "arn:aws:events:[[region]]: [[accountId]]:rule/StepFunctionsGetEventsForECSTaskRule" ] } ] }

예약된 Amazon ECS 작업에 작업 실행 역할, 작업 역할 또는 작업 역할 재정의를 사용해야 하는 경우 각 작업 실행 역할, 작업 역할 또는 작업 역할 재정의에 대한 iam:PassRole 권한을 직접 호출 항목(이 경우에는 Step Functions)의 CloudWatch Events IAM 역할에 추가해야 합니다.

이 페이지에서

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.