Step Functions를 사용하여 Amazon ECS 또는 Fargate 작업 관리 - AWS Step Functions

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

Step Functions를 사용하여 Amazon ECS 또는 Fargate 작업 관리

Step Functions는 Amazon States Language(ASL)에서 특정 AWS 서비스를 직접 제어할 수 있습니다. AWS Step Functions 및 통합을 사용하는 방법에 대한 자세한 내용은 다음을 참조하세요.

최적화된 Amazon ECS/Fargate 통합과 Amazon ECS 또는 Fargate AWS SDK 통합 간의 차이점
  • 작업 실행(.sync) 통합 패턴이 지원됩니다.

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

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

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

지원되는 Amazon ECS/Fargate API 및 구문은 다음과 같습니다.

참고

기본 서비스 API가 camelCase인 경우에도 Step Functions의 파라미터는 PascalCase로 표현됩니다. 예를 들어 Step Functions API 작업 startSyncExecution을 사용하고 해당 파라미터를 StateMachineArn으로 지정할 수 있습니다.

Amazon ECS 작업에 데이터 전달

Step Functions는 Amazon States Language(ASL)에서 특정 AWS 서비스를 직접 제어할 수 있습니다. AWS Step Functions 및 통합을 사용하는 방법에 대한 자세한 내용은 다음을 참조하세요.

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 } } }

다른 AWS 서비스와 함께 Step Functions를 사용할 때 IAM 권한을 구성하는 방법을 자세히 알아보려면 통합 서비스용 IAM 정책 섹션을 참조하세요.