本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 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:建立狀態機
-
開啟 Step Functions 主控台
,然後選擇建立狀態機器。 -
查找並選擇「動態處理具有地圖」狀態的數據。選擇 Next (下一步) 繼續。
-
選擇 [執行示範] 以建立唯讀和 ready-to-deploy 工作流程,或選擇 [在其上建置] 建立可編輯的狀態機定義,您可以在其上建置並稍後進行部署。
-
選擇「使用範本」繼續進行選取。
接下來的步驟取決於您之前的選擇:
-
執行示範 — 您可以先檢閱狀態機器,然後再建立唯讀專案,其中包含部署的資源 AWS CloudFormation 到您的 AWS 帳戶.
您可以檢視狀態機器定義,當您準備就緒時,請選擇 [部署並執行] 以部署專案並建立資源。
部署最多可能需要 10 分鐘的時間來建立資源和權限。您可以使用「堆疊 ID」連結來監控進度 AWS CloudFormation.
部署完成後,您應該會在控制台中看到新的狀態機器。
-
建立在其上 — 您可以檢閱和編輯工作流程定義。您可能需要在範例專案中設定預留位置的值,然後才能嘗試執行自訂工作流程。
注意
部署到您帳戶的服務可能需要支付標準費用。
步驟 2:訂閱 Amazon SNS 主題
提示
在運行狀態機之前,請訂閱 Amazon SNS 主題並將項目添加到 Amazon SQS 隊列中。
-
打開 Amazon SNS 控制台
。 -
選擇「主題」並尋找範例專案所建立的主題。
-
選擇 [建立訂閱],然後針對 [通訊協定] 選擇 [電
-
在「端點」下,輸入您的電子郵件地址以訂閱主題。
-
選擇 Create subscription (建立訂閱)。
-
在您的電子郵件中確認訂閱以激活訂閱。
步驟 3:將消息添加到 Amazon SQS 隊列
-
打開 Amazon SQS 控制台
。 -
選擇範例專案所建立的佇列。
-
選擇 [傳送和接收訊息],輸入訊息,然後選擇 [傳送訊息]。重複此步驟,將數個訊息新增至佇列。
步驟 4:運行狀態機
提示
Amazon 中的隊列最終SNS是一致的。在將訊息傳送到佇列之後,您可能需要等待幾分鐘,然後才能執行狀態機器。
-
在 [狀態電腦] 頁面上,選擇您的範例專案。
-
在範例專案頁面上,選擇 [開始執行]。
-
在 [開始執行] 對話方塊中,執行下列動作:
-
(選擇性) 輸入自訂執行名稱,以覆寫產生的預設值。
非ASCII名稱和記錄
Step Functions 接受包含非ASCII字元的狀態機器、執行項目、活動和標籤的名稱。由於此類字元不適用於 Amazon CloudWatch,因此我們建議您僅使用ASCII字元,以便在中追蹤指標 CloudWatch。
-
(選擇性) 在「輸入」方塊中,將輸入值輸入為JSON。如果您正在運行演示,則可以跳過此步驟。
-
選擇 Start execution (開始執行)。
「Step Functions」主控台會將您導向「執行詳細資訊」頁面,您可以在其中選擇「圖形」檢視中的狀態,以瀏覽步驟詳情窗格中的相關資訊。
-
恭喜您!
您現在應該擁有可自訂的執行中示範或狀態機器定義。