Step Functions 상태 머신은 주문을 받으면 일시 중지되고, 다른 서비스에서 DynamoDB 테이블에 레코드를 추가하여 주문을 확인할 때까지 기다립니다. DynamoDB 레코드가 나타난 후 상태 머신이 처리를 재개하도록 허용하는 솔루션은 무엇입니까?
정답 선택
옵션을 탭하여 정답을 확인하세요.
정답: Lambda 함수를 DynamoDB 스트림에 구독하여 새 레코드가 추가될 때 함수가 실행되도록 합니다. 함수가 적절한 레코드를 받으면 실행 중인 상태 머신에서 Step Functions redrive execution 명령을 호출합니다..
이것이 정답인 이유
정답은 DynamoDB 스트림과 Lambda 함수를 사용하여 Step Functions 실행을 재개하는 것입니다. DynamoDB 스트림은 테이블 변경 사항을 실시간으로 캡처하므로, 새 레코드가 추가될 때 Lambda 함수가 자동으로 트리거될 수 있습니다. Lambda 함수는 특정 레코드를 확인한 후 Step Functions의 redrive execution 명령을 호출하여 일시 중지된 상태 머신을 안전하게 재개할 수 있습니다.
다른 옵션들은 다음과 같은 이유로 적절하지 않습니다.
DynamoDB를 직접 폴링하는 것은 비효율적이며 불필요한 비용을 발생시킬 수 있습니다.
현재 실행을 중지하고 새 실행을 시작하는 것은 상태를 잃게 되므로 적절하지 않습니다.
Lambda 함수가 DynamoDB를 지속적으로 폴링하고 타임아웃되면 상태 머신이 실패하는 것은 비효율적이고 복잡합니다.