建立和封裝 Lambda 函數 - AWS IoT Greengrass

AWS IoT Greengrass Version 1 於 2023 年 6 月 30 日進入延長使用壽命階段。如需詳細資訊,請參閱AWS IoT Greengrass V1 維護政策。在此日期之後, AWS IoT Greengrass V1 將不會發行提供功能、增強功能、錯誤修正或安全性修補程式的更新。在上運行的設備 AWS IoT Greengrass V1 不會中斷,並將繼續運行並連接到雲。我們強烈建議您移轉至 AWS IoT Greengrass Version 2,這會增加重要的新功能,並支援其他平台

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

建立和封裝 Lambda 函數

在此步驟中,您:

  • 建立 Lambda 函數部署套件,其中包含函數程式碼和相依性。

  • 使用 Lambda 主控台建立 Lambda 函數並上傳部署套件。

  • 發佈 Lambda 函數的版本,並建立指向該版本的別名。

 

  1. 在電腦上,前往AWS IoT Greengrass您在其中下載和提取的 Python 核心 SDK建立 Lambda 函數在模塊 3-1 中。

    本單元中的 Lambda 函數使用:

    • examples\HelloWorldCounter 中的 greengrassHelloWorldCounter.py 檔案。這是 Lambda 函數程式碼。

    • greengrasssdk 資料夾。此為軟體開發套件。

  2. 建立 Lambda 函數部署套件:

    1. greengrasssdk 資料夾複製到包含 greengrassHelloWorldCounter.pyHelloWorldCounter 資料夾中。

    2. greengrassHelloWorldCounter.pygreengrasssdk 資料夾儲存至名為 hello_world_counter_python_lambda.zipzip 檔案。py 檔案和 greengrasssdk 資料夾必須為在目錄的根內。

      螢幕擷取畫面顯示 hello_word_counter_python_lambda.zip 的壓縮內容。

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

      zip -r hello_world_counter_python_lambda.zip greengrasssdk greengrassHelloWorldCounter.py

    現在,您可以建立 Lambda 函數並上傳部署套件了。

  3. 開啟 Lambda 主控台並選擇建立函數

  4. 選擇 Author from scratch (從頭開始撰寫)

  5. 將您的函數命名為 Greengrass_HelloWorld_Counter,並將其餘的欄位設定如下:

    • 針對 Runtime (執行時間),選擇 Python 3.7

    • 適用於許可,請保留預設設設定。這會建立授與基本 Lambda 權限的執行角色。此角色不為所用AWS IoT Greengrass。或者,您可以重複使用您在單元 3-1 中建立的角色。

    選擇 Create function (建立函數)。

    「Basic name (基本資訊)」欄位設為「Greengrass_」的「Greengrass_」HelloWorld_Counter (_Counter)」和「Runtime (執行時間)」欄位設為「GreWork 3.7」。
  6. 上傳您的 Lambda 函數部署套件。

    1. 在「」程式碼索引標籤下原始碼,選擇上傳來源。從下拉式選單中選擇.zip 檔案

      突出顯示 .zip 文件的從下拉列表中上傳。
    2. 選擇上傳,然後選擇您的hello_world_counter_python_lambda.zip部署套件。然後選擇 Save (儲存)

    3. 在「」程式碼功能的標籤,在執行時間設定,選擇Edit (編輯),然後輸入下列值。

      • 針對 Runtime (執行時間),選擇 Python 3.7

      • 對於 Handler (處理常式),輸入 greengrassHelloWorldCounter.function_handler

    4. 選擇 Save (儲存)。

      注意

      所以此測試按鈕AWS Lambda主控台不使用此函數。所以此AWS IoT Greengrass核心 SDK 不包含在中獨立執行您的 Greengrass Lambda 函數所需的模組AWS Lambda主控台。這些模塊(例如,greengrass_common) 會在函式部署到 Greengrass 核心後提供給函式。

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

    1. 來自動作頁面頂端的菜單,選擇發行新版本。針對 Version description (版本描述),輸入 First version

    2. 選擇 Publish (發佈)。

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

    1. 來自動作頁面頂端的菜單,選擇建立別名

      [操作] 功能表的螢幕擷取畫面設為 [建立別名]
    2. 對於 Name (名稱),輸入 GG_HW_Counter

    3. 對於 Version (版本),選擇 1

    4. 選擇 Save (儲存)。

      [建立別名] 之螢幕擷取畫面其名稱欄位設為 G_HW_Counter 和版本有欄位設為 1 的。

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