

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

# 使用 Step Functions Express 工作流程處理來自 Amazon SQS 的大量訊息
<a name="sample-project-express-high-volume-sqs"></a>

此範例專案示範如何使用 AWS Step Functions 快速工作流程來處理來自大量事件來源的訊息或資料，例如 Amazon Simple Queue Service (Amazon SQS)。由於快速工作流程能以非常高的速率啟動，因此非常適用於大量事件處理或串流資料工作負載。

以下是從事件來源執行狀態機器的兩種常用方法：
+ **設定 Amazon CloudWatch Events 規則，以便在事件來源發出事件時啟動狀態機器執行。**如需詳細資訊，請參閱[建立由事件觸發的 CloudWatch Events 規則](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/Create-CloudWatch-Events-Rule.html).
+ **將事件來源映射至 Lambda 函數，然後撰寫函數程式碼以執行您的狀態機器。**每次事件來源發出事件時都會叫用 AWS Lambda 函數，進而啟動狀態機器執行。如需詳細資訊，請參閱[搭配使用 AWS Lambda 與 Amazon SQS](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html)。

此範例專案使用第二個方法來在每次 Amazon SQS 佇列傳送訊息時啟動執行。您可以使用類似的組態，從其他事件來源觸發快速工作流程執行，例如 Amazon Simple Storage Service (Amazon S3)、Amazon DynamoDB 和 Amazon Kinesis。

如需快速工作流程和 Step Functions 服務整合的詳細資訊，請參閱下列內容：
+ [在 Step Functions 中選擇工作流程類型](choosing-workflow-type.md)
+ [將 服務與 Step Functions 整合](integrate-services.md)
+ [Step Functions 服務配額](service-quotas.md)

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

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

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

1. 選擇如何使用範本：

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

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

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

## 步驟 2：觸發狀態機器執行
<a name="trigger-execution"></a>

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

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

   該名稱將類似於 **Example-SQSQueue-wJalrXUtnFEMI**。

1. 在 **Queue Actions (佇列動作)** 清單中，選取 **Send a Message (傳送訊息)**。

1. 使用複製按鈕來複製以下訊息，然後在 **Send a Message (傳送訊息)** 視窗中，輸入該訊息，然後選擇 **Send Message (傳送訊息)**。
**注意**  
在此範例訊息中，`input:` 行已使用換行符號進行格式化以符合頁面。使用複製按鈕，或確保將該行輸入為不換行的單一行。

   ```
   {
         "input": "QW5kIGxpa2UgdGhlIGJhc2VsZXNzIGZhYnJpYyBvZiB0aGlzIHZpc2lvbiwgVGhlIGNsb3VkLWNhcHBlZCB0b3dlcnMsIHRoZSBnb3JnZW
                   91cyBwYWxhY2VzLCBUaGUgc29sZW1uIHRlbXBsZXMsIHRoZSBncmVhdCBnbG9iZSBpdHNlbGbigJQgWWVhLCBhbGwgd2hpY2ggaXQgaW5o
                   ZXJpdOKAlHNoYWxsIGRpc3NvbHZlLCBBbmQgbGlrZSB0aGlzIGluc3Vic3RhbnRpYWwgcGFnZWFudCBmYWRlZCwgTGVhdmUgbm90IGEgcm
                   FjayBiZWhpbmQuIFdlIGFyZSBzdWNoIHN0dWZmIEFzIGRyZWFtcyBhcmUgbWFkZSBvbiwgYW5kIG91ciBsaXR0bGUgbGlmZSBJcyByb3Vu
                   ZGVkIHdpdGggYSBzbGVlcC4gU2lyLCBJIGFtIHZleGVkLiBCZWFyIHdpdGggbXkgd2Vha25lc3MuIE15IG9sZCBicmFpbiBpcyB0cm91Ym
                   xlZC4gQmUgbm90IGRpc3R1cmJlZCB3aXRoIG15IGluZmlybWl0eS4gSWYgeW91IGJlIHBsZWFzZWQsIHJldGlyZSBpbnRvIG15IGNlbGwg
                   QW5kIHRoZXJlIHJlcG9zZS4gQSB0dXJuIG9yIHR3byBJ4oCZbGwgd2FsayBUbyBzdGlsbCBteSBiZWF0aW5nIG1pbmQu"
   }
   ```

1. 選擇**關閉**。

1. 開啟 [Step Functions 主控台]()。

1.  前往 [Amazon CloudWatch Logs 日誌群組](https://console.aws.amazon.com/cloudwatch/home?#logs:)並檢查日誌。日誌群組的名稱看起來會像是 **example-ExpressLogGroup-wJalrXUtnFEMI**。