EventBridge Step 함수를 사용한 호출 - AWS Step Functions

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

EventBridge Step 함수를 사용한 호출

Step Functions는 Amazon States Language (ASL) 에서 직접 특정 AWS 서비스를 제어할 수 있습니다. 자세한 내용은 다른 서비스와 함께 사용파라미터를 서비스 API에 전달 섹션을 참조하세요.

최적화된 EventBridge 통합과 EventBridge AWS SDK 통합의 차이점
  • 실행 ARN 및 상태 시스템 ARN은 각 PutEventsRequestEntryResources 필드에 자동으로 추가됩니다.

  • PutEvents의 응답에 0이 아닌 FailedEntryCount가 포함된 경우 Task 상태가 실패하고 EventBridge.FailedEntry 오류가 발생합니다.

다른 AWS 서비스와 Step Functions 함께 사용할 때 IAM 권한을 구성하는 방법에 대한 자세한 내용은 을 참조하십시오통합 서비스용 IAM 정책.

Step Functions는 EventBridge 아마존과의 통합을 위한 서비스 통합 API를 제공합니다. 이를 통해 Step Functions 워크플로에서 직접 사용자 지정 이벤트를 전송하여 이벤트 기반 애플리케이션을 빌드할 수 있습니다.

PutEventsAPI를 사용하려면 전송할 이벤트의 특정 패턴과 일치하는 EventBridge 규칙을 계정에 생성해야 합니다. 예를 들면, 다음과 같이 할 수 있습니다.

  • 규칙과 일치하는 이벤트를 수신하고 인쇄하는 Lambda 함수를 계정에 생성하십시오. EventBridge

  • 특정 이벤트 패턴과 일치하고 Lambda 함수를 대상으로 하는 기본 이벤트 버스의 계정에 EventBridge 규칙을 생성합니다.

자세한 내용은 다음을 참조하세요.

참고

Step Functions에는 작업의 최대 입력 또는 결과 데이터 크기에 대한 할당량이 있습니다. 이를 통해 다른 서비스에 데이터를 보내거나 다른 서비스로부터 데이터를 받을 때 UTF-8 인코딩 문자열로 데이터 256KB까지 제한됩니다. 상태 시스템 실행과 관련된 할당량 섹션을 참조하십시오.

지원되는 EventBridge API

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

다음에는 사용자 지정 이벤트를 전송하는 Task가 포함됩니다.

{ "Type": "Task", "Resource": "arn:aws:states:::events:putEvents", "Parameters": { "Entries": [ { "Detail": { "Message": "MyMessage" }, "DetailType": "MyDetailType", "EventBusName": "MyEventBus", "Source": "my.source" } ] }, "End": true }

오류 처리

PutEvents API는 항목 배열을 입력으로 허용한 다음 결과 항목 배열을 반환합니다. PutEvents 작업이 성공하면 항목이 하나 이상 실패하더라도 PutEvents에서 HTTP 200 응답을 반환합니다. PutEvents에서 FailedEntryCount 필드에 실패한 항목 수를 반환합니다.

Step Functions는 FailedEntryCount가 0보다 큰지 여부를 확인합니다. 값이 0보다 크면 Step Functions에서 상태가 실패하고 EventBridge.FailedEntry 오류가 발생합니다. 이를 통해 실패한 항목이 있을 때 추가 상태를 사용하여 응답의 FailedEntryCount를 분석할 필요 없이 Task 상태에서 Step Functions의 기본 제공 오류 처리 기능을 사용하여 이 항목을 포착하거나 재시도할 수 있습니다.

참고

멱등성을 구현했고 모든 항목을 안전하게 재시도할 수 있는 경우 Step Functions의 재시도 로직을 사용할 수 있습니다. Step Functions는 재시도하기 전에 PutEvents 입력 배열에서 성공한 항목을 제거하지 않습니다. 대신 원래 항목 배열을 사용하여 재시도합니다.