

支援終止通知：2026 年 10 月 7 日 AWS 將停止 的支援 AWS IoT Greengrass Version 1。2026 年 10 月 7 日之後，您將無法再存取 AWS IoT Greengrass V1 資源。如需詳細資訊，請造訪[從 遷移 AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html)。

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

# 建立並設定 Lambda 函式
<a name="create-config-lambda"></a>

在此步驟中，您會建立 Lambda 函數來追蹤通過交通燈號的汽車數量。每次`GG_TrafficLight`陰影狀態變更為 時`G`，Lambda 函數都會模擬隨機傳遞的汽車數量 （從 1 到 20)。在每第三個`G`光線變更時，Lambda 函數會將基本統計資料傳送至 DynamoDB 資料表，例如最小值和最大值。

1. 在您的電腦上建立名為 `car_aggregator` 的資料夾。

1. 從 GitHub 上的 [TrafficLight](https://github.com/aws/aws-greengrass-core-sdk-python/tree/master/examples/TrafficLight) 範例資料夾中，將 `carAggregator.py` 檔案下載到 `car_aggregator` 資料夾。這是您的 Lambda 函數程式碼。
**注意**  
為了方便起見，此範例 Python 檔案會存放在 AWS IoT Greengrass 核心 SDK 儲存庫中，但不會使用 AWS IoT Greengrass 核心 SDK。

1. 如果您不是在美國東部 （維吉尼亞北部） 區域工作，請在下列行`region_name` AWS 區域 中開啟 `carAggregator.py`並變更為目前在 AWS IoT 主控台中選取的 。如需支援的 清單 AWS 區域，請參閱 [AWS IoT Greengrass](https://docs.aws.amazon.com/general/latest/gr/greengrass.html) 中的 *Amazon Web Services 一般參考*。

   ```
   dynamodb = boto3.resource('dynamodb', region_name='us-east-1')
   ```

1. 在[命令列](https://en.wikipedia.org/wiki/Command-line_interface)視窗中執行下列命令，以在 `car_aggregator` 資料夾中安裝[適用於 Python (Boto3) 的 AWS SDK](https://github.com/boto/boto3/blob/develop/README.rst)套件及其相依性。Greengrass Lambda 函數使用 AWS SDK 存取其他 AWS 服務。(Windows 平台請使用[提升權限的命令提示](https://technet.microsoft.com/en-us/library/cc947813(v=ws.10).aspx))。

   ```
   pip install boto3 -t path-to-car_aggregator-folder
   ```

   如此會產生類似如下的目錄清單：  
![\[目錄清單顯示 carAggregator.py 的螢幕擷取畫面。\]](http://docs.aws.amazon.com/zh_tw/greengrass/v1/developerguide/images/gg-get-started-095.png)

1. 將 `car_aggregator` 資料夾的內容壓縮成 `.zip` 檔案，其名為 `car_aggregator.zip`。(壓縮資料夾的內容，而非資料夾。) 這是您的 Lambda 函數部署套件。

1. 在 Lambda 主控台中，建立名為 的函數**GG\$1Car\$1Aggregator**，並設定其餘欄位，如下所示：
   + 針對**執行期**，選擇 **Python 3.7**。
   + 對於**許可**，請保留預設設定。這會建立授予基本 Lambda 許可的執行角色。不會使用此角色 AWS IoT Greengrass。

   選擇**建立函數**。  
![\[Basic information (基本資訊) 區段，其中 Function name (函數名稱) 設為 GG_Car_Aggregator 和 Runtime (執行時間) 設為 Python 3.7。\]](http://docs.aws.amazon.com/zh_tw/greengrass/v1/developerguide/images/gg-get-started-095.5.png)

1. 上傳您的 Lambda 函數部署套件：

   1. <a name="lambda-console-upload"></a>在**程式碼**索引標籤的**程式碼來源**下，選擇**上傳來源**。從下拉式清單中，選擇 **.zip 檔案**。  
![\[從下拉式清單上傳，並反白顯示 .zip 檔案。\]](http://docs.aws.amazon.com/zh_tw/greengrass/v1/developerguide/images/lra-console/upload-deployment-package.png)

   1. 選擇上傳，然後選擇您的`car_aggregator.zip`部署套件。然後選擇 **Save (儲存)**。

   1. <a name="lambda-console-runtime-settings-para"></a>在函數的**程式碼**索引標籤的**執行時間設定**下，選擇**編輯**，然後輸入下列值。
      + 針對**執行期**，選擇 **Python 3.7**。
      + 對於 **Handler (處理常式)**，輸入 **carAggregator.function\$1handler**。

   1. 選擇**儲存**。

1. 發佈 Lambda 函數，然後建立名為 的別名**GG\$1CarAggregator**。如需step-by-step說明，請參閱[發佈 Lambda 函數](create-lambda.md#publish-function-version)和在模組 3 （第 1 部分） 中[建立別名](create-lambda.md#create-version-alias)的步驟。

1. 在 AWS IoT 主控台中，將您剛建立的 Lambda 函數新增至您的 AWS IoT Greengrass 群組：

   1. 在群組組態頁面上，選擇 **Lambda 函數**，然後在**我的 Lambda 函數**下，選擇**新增**。

   1. 針對 **Lambda 函數**，選擇 **GG\$1Car\$1Aggregator**。

   1. 對於 **Lambda 函數版本**，選擇您發佈的版本別名。

   1. 針對 **Memory limit (記憶體限制)**，輸入 **64 MB**。

   1. 針對**固定**，選擇 **True**。

   1. 選擇**新增 Lambda 函數**。
**注意**  
您可以從舊版模組中移除其他 Lambda 函數。