在 Step Functions 數中處理具有 Map 狀態的隊列中的數據 - AWS Step Functions

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

在 Step Functions 數中處理具有 Map 狀態的隊列中的數據

在此範例工作流程中,地圖工作流程狀狀態會處理佇列中的資料、傳送訊息給訂閱者,並將它們儲存在資料庫中。

Step Functions 使用最佳化的整合,從 Amazon SQS 佇列中提取訊息。當訊息可用時,Choice狀態會將JSON訊息陣列傳遞至Map狀態以進行處理。對於每則訊息,狀態機器都會將訊息寫入 DynamoDB、從佇列中移除訊息,然後將訊息發佈到 Amazon SNS 主題。

此範例專案包含下列資源:

  • 同時 AWS Step Functions 狀態機器

  • 地圖狀態以反覆方式讀取和移除訊息的 Amazon SQS 佇列。

  • 地圖狀態以反覆方式寫入訊息的 DynamoDB 表格。

  • 一個 Amazon SNS 主題,Step Functions 發布它從 Amazon SQS 隊列讀取的消息。

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

步驟 1:建立狀態機

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

  2. 查找並選擇「動態處理具有地圖」狀態的數據。選擇 Next (下一步) 繼續。

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

  4. 選擇「使用範本」繼續進行選取。

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

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

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

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

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

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

注意

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

步驟 2:訂閱 Amazon SNS 主題

提示

在運行狀態機之前,請訂閱 Amazon SNS 主題並將項目添加到 Amazon SQS 隊列中。

  1. 打開 Amazon SNS 控制台

  2. 選擇「題」並尋找範例專案所建立的主題。

  3. 選擇 [建立訂閱],然後針對 [通訊協定] 選擇 [

  4. 在「端點」下,輸入您的電子郵件地址以訂閱主題。

  5. 選擇 Create subscription (建立訂閱)。

  6. 在您的電子郵件中確認訂閱以激活訂閱。

步驟 3:將消息添加到 Amazon SQS 隊列

  1. 打開 Amazon SQS 控制台

  2. 選擇範例專案所建立的佇列。

  3. 選擇 [傳送和接收訊息],輸入訊息,然後選擇 [傳送訊息]。重複此步驟,將數個訊息新增至佇列。

步驟 4:運行狀態機

提示

Amazon 中的隊列最終SNS是一致的。在將訊息傳送到佇列之後,您可能需要等待幾分鐘,然後才能執行狀態機器。

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

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

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

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

      非ASCII名稱和記錄

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

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

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

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

恭喜您!

您現在應該擁有可自訂的執行中示範或狀態機器定義。