

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

# 在 Step Functions 中處理來自具有映射狀態之佇列的資料
<a name="sample-map-state"></a>

在此範例工作流程中， [映射工作流程狀態](state-map.md) 狀態會處理佇列中的資料、傳送訊息給訂閱者，並將他們儲存在資料庫中。

Step Functions 使用最佳化整合從 Amazon SQS 佇列提取訊息。當訊息可用時，[Choice](state-choice.md)狀態會將一系列 JSON 訊息傳遞至 [Map](state-map.md) 狀態進行處理。對於每則訊息，狀態機器都會將訊息寫入 DynamoDB、從佇列中移除訊息，並將訊息發佈至 Amazon SNS 主題。

## 步驟 1：建立狀態機器
<a name="sample-map-state-create"></a>

1. 開啟 [Step Functions 主控台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然後選擇**建立狀態機器**。

1. 選擇**從範本建立**，並尋找相關的入門範本。選擇 **Next** (下一步) 繼續。

1. 選擇如何使用範本：

   1. **執行示範** – 建立唯讀狀態機器。檢閱後，您可以建立工作流程和所有相關資源。

   1. 在**其中建置** – 提供可編輯的工作流程定義，您可以使用自己的資源來檢閱、自訂和部署。(**不會**自動建立相關資源，例如 函數或佇列。)

1. 選擇**使用範本**以繼續您的選擇。
**注意**  
*部署至您 帳戶的 服務需支付標準費用。*

## 步驟 2：訂閱 Amazon SNS 主題
<a name="sample-map-subscribe-topic"></a>

**提示**  
訂閱 Amazon SNS 主題，並在執行狀態機器**之前**將項目新增至 Amazon SQS 佇列。

1. 開啟 [Amazon SNS 主控台](https://console.aws.amazon.com/sns/home)。

1. 選擇**主題**並尋找範例專案建立的主題。

1. 選擇**建立訂閱**，然後針對**通訊協定**選擇**電子郵件**。

1. 在**端點**下，輸入您的電子郵件地址以訂閱主題。

1. 選擇**建立訂閱**。

1. 確認電子郵件中的訂閱以啟用訂閱。

## 步驟 3：將訊息新增至 Amazon SQS 佇列
<a name="sample-map-create-queue"></a>

1. 開啟 [Amazon SQS 主控台](https://console.aws.amazon.com/sqs/home)。

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

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

## 步驟 4：執行狀態機器
<a name="sample-map-start-execution"></a>

**提示**  
Amazon SNS 中的佇列最終一致。傳送訊息至佇列後，您可能需要等待幾分鐘，才能執行狀態機器。

如果您選擇**執行示範**選項，則會部署並準備好執行所有相關資源。如果您選擇**在其中建置**選項，您可能需要設定預留位置值並建立其他資源，才能執行自訂工作流程。

1. 選擇**部署並執行**。

1. 等待 CloudFormation 堆疊部署。這最多可能需要 10 分鐘。

1. 開始**執行**選項出現後，請檢閱**輸入**並選擇**開始執行**。

**恭喜您！**  
您現在應該有狀態機器的執行中示範。您可以在**圖形檢視**中選擇狀態，以檢閱輸入、輸出、變數、定義和事件。