EventBridge 使用 Step Functions 調用 - AWS Step Functions

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

EventBridge 使用 Step Functions 調用

Step Functions 可以直接從Amazon States Language(ASL)控制某些 AWS 服務。如需了解詳細資訊,請參閱 使用其他 服務將參數傳遞至服務 API

最佳化 EventBridge 整合與 EventBridge AWS SDK 整合有何不同
  • 執行 ARN 和狀態機 ARN 會自動附加到每個字Resources段中。PutEventsRequestEntry

  • 如果來自的響應PutEvents包含非零,FailedEntryCountTask狀態失敗並顯示錯誤EventBridge.FailedEntry

如需Step Functions與其他 AWS 服務搭配使用時如何設定IAM權限的相關資訊,請參閱整合式服務的 IAM 政策

Step Functions 提供與 Amazon 整合的服務整合 API EventBridge。這可讓您直接從 Step Functions 工作流程傳送自訂事件,以建置事件導向的應用程式。

若要使用 PutEvents API,您必須在帳戶中建立符合要傳送之事件特定模式的 EventBridge 規則。例如,您可以:

  • 在您的帳戶中建立 Lambda 函數,以接收和列印符合 EventBridge 規則的事件。

  • 在您的帳戶中建立符合特定事件模式的預設事件匯流排上的 EventBridge 規則,並以 Lambda 函數為目標。

如需詳細資訊,請參閱:

注意

「Step Functions 數」中的工作有最大輸入或結果資料大小的配額。當您傳送至其他服務或從其他服務接收資料時,這會將您限制為 256 KB 的資料,做為 UTF-8 編碼字串。請參閱與狀態機器執行相關的配額

支援的 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 }

錯誤處理

PutEventsAPI 接受一組項目作為輸入,然後返回結果條目的數組。只要PutEvents動作成功,就PutEvents會傳回 HTTP 200 回應,即使一個或多個項目失敗。 PutEvents傳回欄位中失敗項目的FailedEntryCount數目。

Step Functions 檢查FailedEntryCount是否大於零。如果大於零,則 Step Functions 會使狀態失敗,並顯示錯誤EventBridge.FailedEntry。這可讓您在工作狀態上使用 Step Functions 的內建錯誤處理,在發生失敗的項目時 catch 取或重試,而不需要使用其他狀態FailedEntryCount來分析回應。

注意

如果您已經實現了冪等性並且可以安全地重試所有條目,則可以使用步驟函數的重試邏輯。Step Functions 在重試之前不會從PutEvents輸入陣列中移除成功的條目。相反地,它會使用原始的項目陣列重試。