

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

# 使用分散式映射處理 Amazon S3 儲存貯體中的資料
<a name="sample-dist-map-s3data-process"></a>

此範例專案示範如何使用[*分散式地圖狀態*](state-map-distributed.md)來處理大規模資料，例如，分析歷史天氣資料，並識別每月平均溫度最高的天氣站。天氣資料會記錄在超過 12，000 個 CSV 檔案中，然後存放在 Amazon S3 儲存貯體中。

此範例專案包含兩個名為分散式 ** S3 複本 NOA 資料和 ProcessNOAAData 的分散式***映射狀態* 。 **ProcessNOAAData** **分散式 S3 複製 NOA 資料**會逐一查看名為 **noaa-gsod-pds** 的公有 Amazon S3 儲存貯體中的 CSV 檔案，並將其複製到您 中的 Amazon S3 儲存貯體 AWS 帳戶。**ProcessNOAAData** 會反覆查看複製的檔案，並包含執行溫度分析的 Lambda 函數。

範例專案會先透過呼叫 [ListObjectsV2](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) API 動作來檢查 Amazon S3 儲存貯體的內容。根據回應此呼叫時傳回的[金鑰](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html#AmazonS3-ListObjectsV2-response-MaxKeys)數目，範例專案會採取下列其中一個決策：
+ 如果金鑰計數大於或等於 1，專案會轉換為 **ProcessNOAAData** 狀態。此*分散式地圖狀態*包含名為 **TemperatureFunction** 的Lambda函數，可尋找每月平均溫度最高的氣象站。此函數會傳回具有 `year-month`作為索引鍵的字典，以及包含有關氣象站資訊作為值的字典。
+ 如果傳回的金鑰計數不超過 1，**分散式 S3 複製 NOA 資料**狀態會列出公有儲存貯體 **noaa-gsod-pds** 中的所有物件，並反覆將個別物件分 100 個批次複製到您帳戶中的另一個儲存貯體。[內嵌映射](state-map-inline.md)會執行物件的反覆複製。

  複製所有物件後，專案會轉換為 **ProcessNOAAData** 狀態以處理天氣資料。

範例專案最終會轉換為還原程式Lambda函數，該函數會執行 **TemperatureFunction** 函數傳回之結果的最終彙總，並將結果寫入Amazon DynamoDB資料表。

透過分散式地圖，您一次最多可以執行 10，000 個平行子工作流程執行。在此範例專案中，**ProcessNOAAData** Distributed Map 的最大並行設定為 3000，限制為 3000 個平行子工作流程執行。

此範例專案會建立狀態機器、支援 AWS 的資源，並設定相關的 IAM 許可。探索此範例專案，了解如何使用分散式地圖來協調大規模的平行工作負載，或使用它做為您自己的專案的起點。

**重要**  
此範例專案僅適用於美國東部 （維吉尼亞北部） 區域。

## 步驟 1：建立狀態機器
<a name="sample-dist-map-s3data-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="sample-dist-map-s3data-run"></a>

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

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

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

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

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