통합 서비스로서의 AWS Step Functions 실행 관리 - AWS Step Functions

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

통합 서비스로서의 AWS Step Functions 실행 관리

Step Functions는 서비스 통합으로 자체 API와 통합됩니다. 이를 통해 Step Functions는 진행 중인 실행의 작업 상태에서 직접 상태 시스템의 새로운 실행을 시작할 수 있습니다 새 워크플로를 작성할 때 기본 워크플로의 복잡성을 줄이고 공통 프로세스를 재사용하려면 중첩된 워크플로 실행을 사용하십시오.

최적화된 Step Functions 통합과 Step Functions AWS SDK 통합의 차이점

요청 및 응답 또는 작업 토큰을 사용하여 콜백 대기 통합 패턴에 대한 최적화는 없습니다.

자세한 내용은 다음을 참조하십시오.

지원되는 Step Functions API 및 구문은 다음과 같습니다.

다음은 다른 상태 머신의 실행을 시작하고 완료될 때까지 기다리는 Task 상태를 포함합니다.

{ "Type":"Task", "Resource":"arn:aws:states:::states:startExecution.sync:2", "Parameters":{ "Input":{ "Comment": "Hello world!" }, "StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "Name":"ExecutionName" }, "End":true }

다음은 다른 상태 머신의 실행을 시작하는 Task 상태를 포함합니다.

{ "Type":"Task", "Resource":"arn:aws:states:::states:startExecution", "Parameters":{ "Input":{ "Comment": "Hello world!" }, "StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "Name":"ExecutionName" }, "End":true }

다음에는 콜백 서비스 통합 패턴을 구현하는 Task 상태가 포함됩니다.

{ "Type":"Task", "Resource":"arn:aws:states:::states:startExecution.waitForTaskToken", "Parameters":{ "Input":{ "Comment": "Hello world!", "token.$": "$$.Task.Token" }, "StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "Name":"ExecutionName" }, "End":true }

중첩된 워크플로 실행을 시작한 상위 실행과 연결하려면 컨텍스트 객체에서 가져온 실행 ID를 포함하는 특수하게 명명된 파라미터를 전달하십시오. 중첩 실행을 시작할 때 AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID라는 매개 변수를 사용하십시오. 매개 변수 이름에 .$를 추가하고 $$.Execution.Id를 사용하여 컨텍스트 개체에서 ID를 참조하여 실행 ID를 전달하십시오. 자세한 정보는 컨텍스트 객체 액세스을 참조하세요.

{ "Type":"Task", "Resource":"arn:aws:states:::states:startExecution.sync", "Parameters":{ "Input":{ "Comment": "Hello world!", "AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id" }, "StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "Name":"ExecutionName" }, "End":true }

중첩된 상태 머신은 다음을 반환합니다.

Resource 출력
startExecution.sync String
startExecution.sync:2 JSON

둘 다 중첩된 상태 머신이 완료될 때까지 기다리지만, 다른 Output 형식을 반환합니다. 예를 들어 { "MyKey": "MyValue" } 객체를 반환하는 Lambda 함수를 만드는 경우 다음과 같은 응답을 얻습니다.

startExecution.sync의 경우:

{ <other fields> "Output": "{ \"MyKey\": \"MyValue\" }" }

startExecution.sync:2의 경우:

{ <other fields> "Output": { "MyKey": "MyValue" } }

중첩된 상태 시스템에 대한 IAM 권한 구성

상위 상태 시스템은 폴링과 이벤트를 사용하여 하위 상태 시스템에서 실행을 완료했는지 확인합니다. 폴링에는 해당 권한이 필요한 states:DescribeExecution 반면, Step EventBridge Functions를 통해 전송된 이벤트에는 events:PutTargetsevents:PutRule, 및 events:DescribeRule 에 대한 권한이 필요합니다. IAM 역할에서 이러한 권한이 누락되면 상위 상태 시스템에서 하위 상태 시스템 실행 완료를 인식할 때까지 지연이 발생할 수 있습니다.

단일 중첩 워크플로 실행을 위해 StartExecution을 직접적으로 호출하는 상태 시스템의 경우 해당 상태 시스템에 대한 권한을 제한하는 IAM 정책을 사용합니다.

자세한 내용은 Step Functions에 대한 IAM 권한을 참조하세요.