

支援終止通知：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="package"></a>

在此步驟中，您：
+ 建立包含函數程式碼和相依性的 Lambda 函數部署套件。
+ 使用 Lambda 主控台建立 Lambda 函數並上傳部署套件。
+ 發佈 Lambda 函數的版本，並建立指向該版本的別名。

 

1. 在電腦上，前往您在單元 3-1 [建立和封裝 Lambda 函數](create-lambda.md)中下載並擷取的適用於 Python AWS IoT Greengrass 的核心 SDK。

   此模組中的 Lambda 函數使用：
   + `examples\HelloWorldCounter` 中的 `greengrassHelloWorldCounter.py` 檔案。這是您的 Lambda 函數程式碼。
   + `greengrasssdk` 資料夾。此為軟體開發套件。

1. 建立 Lambda 函數部署套件：

   1. 將 `greengrasssdk` 資料夾複製到包含 `greengrassHelloWorldCounter.py` 的 `HelloWorldCounter` 資料夾中。

   1. 將 `greengrassHelloWorldCounter.py` 和 `greengrasssdk` 資料夾儲存至名為 `hello_world_counter_python_lambda.zip` 的 `zip` 檔案。`py` 檔案和 `greengrasssdk` 資料夾必須為在目錄的根內。  
![\[螢幕擷取畫面顯示 hello_word_counter_python_lambda.zip 的壓縮內容。\]](http://docs.aws.amazon.com/zh_tw/greengrass/v1/developerguide/images/gg-get-started-046.png)

      在安裝 `zip` 的 UNIX 式系統 (包括 Mac 終端機) 上，可使用以下命令來封裝檔案和資料夾：

      ```
      zip -r hello_world_counter_python_lambda.zip greengrasssdk greengrassHelloWorldCounter.py
      ```

   現在您已準備好建立 Lambda 函數並上傳部署套件。

1. 開啟 Lambda 主控台，然後選擇**建立函數**。

1. 選擇**從頭開始撰寫**。

1. 將您的函數命名為 **Greengrass\$1HelloWorld\$1Counter**，並將其餘的欄位設定如下：
   + 針對**執行期**，選擇 **Python 3.7**。
   + 對於**許可**，請保留預設設定。這會建立授予基本 Lambda 許可的執行角色。不會使用此角色 AWS IoT Greengrass。或者，您可以重複使用您在單元 3-1 中建立的角色。

   選擇 **Create function (建立函數)**。  
![\[「基本資訊」區段，其「函數名稱」欄位設定為「Greengrass_HelloWorld_Counter」，而「執行時間」欄位設定為「Python 3.7」。\]](http://docs.aws.amazon.com/zh_tw/greengrass/v1/developerguide/images/gg-get-started-023-3.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. 選擇**上傳**，然後選擇您的`hello_world_counter_python_lambda.zip`部署套件。然後選擇 **Save (儲存)**。

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

   1. <a name="lambda-console-save-config"></a>選擇 **Save** (儲存)。
**注意**  
 AWS Lambda 主控台上的**測試**按鈕不適用於此函數。 AWS IoT Greengrass 核心 SDK 不包含在 AWS Lambda 主控台中獨立執行 Greengrass Lambda 函數所需的模組。這些模組 （例如 `greengrass_common`) 會在部署到您的 Greengrass 核心之後提供給函數。

1. 發佈函數的第一個版本。

   1. 從頁面頂端**的動作**選單中，選擇**發佈新版本**。針對 **Version description (版本描述)**，輸入 **First version**。

   1. 選擇 **Publish** (發布)。

1. 建立函數版本的別名。

   1. 從頁面頂端**的動作**選單中，選擇**建立別名**。  
![\[[操作] 功能表的螢幕擷取畫面設為 [建立別名]\]](http://docs.aws.amazon.com/zh_tw/greengrass/v1/developerguide/images/gg-get-started-028.png)

   1. 對於**名稱**，輸入 **GG\$1HW\$1Counter**。

   1. 對於**版本**，選擇 **1**。

   1. 選擇 **Save** (儲存)。  
![\[建立別名螢幕擷取畫面，並將 Name 欄位設定為 GG_HW_Counter，並將 Version 欄位設定為 1。\]](http://docs.aws.amazon.com/zh_tw/greengrass/v1/developerguide/images/gg-get-started-048.png)

   別名會為您的 Lambda 函數建立單一實體，供 Greengrass 裝置訂閱。如此一來，您就不必在每次修改函數時，使用新的 Lambda 函數版本編號更新訂閱。