將自訂事件傳送至 EventBridge 事件匯流排 - AWS Step Functions

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

將自訂事件傳送至 EventBridge 事件匯流排

此範例專案示範如何使用 Step Functions 將自訂事件傳送至符合具有多個目標之規則的事件匯流排 (Amazon EventBridge、 AWS Lambda,Amazon 簡單通知服務,Amazon 簡單隊列服務)。

如需有關步驟函數和步驟函數服務整合的詳細資訊,請參閱下列內容:

注意

此範例專案可能需要付費。

對於新 AWS 使用者,有免費用量方案可供使用。在此方案中,特定用量層級以下的服務皆為免費。如需關於 AWS 成本和免費方案,請參閱EventBridge 定價

步驟 1:建立狀態機

  1. 開啟 Step Functions 主控台,然後選擇建立狀態機器

  2. Send a custom event to EventBridge在搜尋方塊中輸入,然後選擇 [傳送自訂事件至 EventBridge從返回的搜索結果中。

  3. 選擇 Next (下一步) 繼續。

  4. 選擇 [執行示範] 以建立唯讀和 ready-to-deploy 工作流程,或選擇 [在其上建置] 建立可編輯的狀態機定義,您可以在其上建置並稍後進行部署。

    此範例專案會部署下列資源:

    • 同時 Amazon EventBridge 事件

    • 同時 Amazon SNS 主題

    • 同時 Amazon SQS 佇列

    • A Lambda 函數

    • 同時 AWS Step Functions 狀態機器

    • 相關 AWS Identity and Access Management (IAM) 角色

    下列影像顯示「傳送自訂事件至」的工作流程圖形 EventBridge示例項目:

    傳送自訂事件至的工作流程圖 EventBridge範例專案。
  5. 選擇「使用範本」繼續進行選取。

接下來的步驟取決於您之前的選擇:

  1. 執行示範 — 您可以先檢閱狀態機器,然後再建立唯讀專案,其中包含部署的資源 AWS CloudFormation 到您的 AWS 帳戶.

    您可以檢視狀態機器定義,當您準備就緒時,請選擇 [部署並執行] 以部署專案並建立資源。

    部署最多可能需要 10 分鐘的時間來建立資源和權限。您可以使用「堆疊 ID」連結來監控進度 AWS CloudFormation.

    部署完成後,您應該會在控制台中看到新的狀態機器。

  2. 建立在其上 — 您可以檢閱和編輯工作流程定義。您可能需要在範例專案中設定預留位置的值,然後才能嘗試執行自訂工作流程。

注意

部署到您帳戶的服務可能需要支付標準費用。

步驟 2:運行狀態機

  1. 在 [狀態電腦] 頁面上,選擇您的範例專案。

  2. 在範例專案頁面上,選擇 [開始執行]。

  3. 在 [開始執行] 對話方塊中,執行下列動作:

    1. (選擇性) 輸入自訂執行名稱,以覆寫產生的預設值。

      非ASCII名稱和記錄

      Step Functions 接受包含非ASCII字元的狀態機器、執行項目、活動和標籤的名稱。由於此類字元不適用於 Amazon CloudWatch,因此我們建議您僅使用ASCII字元,以便在中追蹤指標 CloudWatch。

    2. (選擇性) 在「入」方塊中,將輸入值輸入為JSON。如果您正在運行演示,則可以跳過此步驟。

    3. 選擇 Start execution (開始執行)

    「Step Functions」主控台會將您導向「執行詳細資訊」頁面,您可以在其中選擇「圖形」檢視中的狀態,以瀏覽步驟詳情窗格中的相關資訊。

範例狀態機器程式碼

此範例專案中的狀態機會透 EventBridge 過將自訂事件傳送至事件匯流排來整合。 EventBridge 傳送至事件匯流排的事件與觸發將訊息傳送至 Amazon SNS 主題和 Amazon SQS 佇列的 Lambda 函數的 EventBridge 規則相符。

瀏覽此範例狀態機器,以查看 Step Functions 如何管理 EventBridge。

有關如何進一步了解 AWS Step Functions 可以控制其他 AWS 服務,請參閱整合服務與 Step Functions

{ "Comment": "An example of the Amazon States Language for sending a custom event to Amazon EventBridge", "StartAt": "Send a custom event", "States": { "Send a custom event": { "Resource": "arn:<PARTITION>:states:::events:putEvents", "Type": "Task", "Parameters": { "Entries": [{ "Detail": { "Message": "Hello from Step Functions!" }, "DetailType": "MessageFromStepFunctions", "EventBusName": "<EVENT_BUS_NAME>", "Source": "my.statemachine" }] }, "End": true } } }

有關如何在使用步驟函數與其他功能IAM時進行配置的資訊 AWS 服務,請參閱Step Functions 式如何為整合式服務產生IAM原則

IAM範例

這些例子 AWS Identity and Access Management (IAM) 範例專案所產生的原則包含執行狀態機器及相關資源所需的最低權限。我們建議您僅在IAM原則中加入必要的權限。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "events:PutEvents" ], "Resource": [ "arn:aws:events:us-east-1:1234567890:event-bus/stepfunctions-sampleproject-eventbus" ], "Effect": "Allow" } ] }

有關如何在使用步驟函數與其他功能IAM時進行配置的資訊 AWS 服務,請參閱Step Functions 式如何為整合式服務產生IAM原則