本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
當您使用AWS IoT Greengrass 主控台
開始之前,請檢閱在 Greengrass 裝置上執行 Lambda 函數的需求。
任務
步驟 1:選擇要匯入的 Lambda 函數
-
在AWS IoT Greengrass 主控台
導覽功能表中,選擇元件。 -
在元件頁面上,選擇建立元件。
-
在建立元件頁面的元件資訊下,選擇匯入 Lambda 函數。
-
在 Lambda 函數中,搜尋並選擇您要匯入的 Lambda 函數。
AWS IoT Greengrass 會使用 Lambda 函數的名稱來建立元件。
-
在 Lambda 函數版本中,選擇要匯入的版本。您無法選擇 Lambda 別名,例如
$LATEST
。AWS IoT Greengrass 會以 Lambda 函數的版本做為有效的語意版本來建立元件。例如,如果您的函數版本為
3
,則元件版本會變成3.0.0
。
步驟 2:設定 Lambda 函數參數
在建立元件頁面的 Lambda 函數組態下,設定下列參數以用來執行 Lambda 函數。
-
(選用) 新增 Lambda 函數訂閱工作訊息的事件來源清單。您可以指定事件來源,以將此函數訂閱本機發佈/訂閱訊息和 AWS IoT Core MQTT 訊息。當 Lambda 函數收到來自事件來源的訊息時,就會呼叫它。
注意
若要將此函數訂閱其他 Lambda 函數或元件的訊息,請在部署此 Lambda 函數元件時部署舊版訂閱路由器元件。部署舊版訂閱路由器元件時,請指定 Lambda 函數使用的訂閱。
在事件來源下,執行下列動作來新增事件來源:
-
針對您新增的每個事件來源,指定下列選項:
-
主題 – 訂閱訊息的主題。
-
類型 – 事件來源的類型。您可以從以下選項中選擇:
-
本機發佈/訂閱 – 訂閱本機發佈/訂閱訊息。
如果您使用 Greengrass nucleus 2.6.0 版或更新版本,以及 Lambda Manager 2.2.5 版或更新版本,則可以在指定此類型時使用主題中的 MQTT 主題萬用字元 (
+
和#
)。 -
AWS IoT Core MQTT – 訂閱 AWS IoT Core MQTT 訊息。
當您指定此類型時,您可以在主題中使用 MQTT 主題萬用字元 (
+
和#
)。
-
-
-
若要新增另一個事件來源,請選擇新增事件來源並重複上一個步驟。若要移除事件來源,請選擇您要移除的事件來源旁的移除。
-
-
針對逾時 (秒),輸入非固定 Lambda 函數在逾時之前可以執行的時間上限,以秒為單位。預設為 3 秒。
-
針對固定,選擇 Lambda 函數元件是否已固定。預設值為 True。
-
固定 (或長期) Lambda 函數會在 AWS IoT Greengrass 啟動時啟動,並在自己的容器中持續執行。
-
非固定 (或隨需) Lambda 函數只會在接收工作項目時啟動,並在閒置達指定的最長閒置時間後結束。如果函數有多個工作項目,則 AWS IoT Greengrass Core 軟體會建立函數的多個執行個體。
-
-
(選用) 在其他參數下,設定下列 Lambda 函數參數。
-
狀態逾時 (秒) – Lambda 函數元件將狀態更新傳送到 Lambda 管理員元件的間隔,以秒為單位。此參數僅適用於固定函數。預設值為 60 秒。
-
最大佇列大小 – Lambda 函數元件的訊息佇列大小上限。 AWS IoT Greengrass 核心軟體會將訊息存放在 FIFO (先進先出) 佇列中,直到可以執行 Lambda 函數來取用每個訊息為止。預設為 1,000 則訊息。
-
執行個體數量上限 – 非固定 Lambda 函數可同時執行的執行個體數量上限。預設為 100 個執行個體。
-
閒置時間上限 (秒) – 在 AWS IoT Greengrass 核心軟體停止其程序之前,非固定 Lambda 函數可以閒置的時間上限,以秒為單位。預設值為 60 秒。
-
編碼類型 – Lambda 函數支援的承載類型。您可以從以下選項中選擇:
-
JSON
-
:二進位
預設值為 JSON。
-
-
-
(選用) 指定命令列引數清單,以在執行時傳遞至 Lambda 函數。
-
在其他參數、處理程序引數下,選擇新增引數。
-
針對您新增的每個引數,輸入您要傳遞至函數的引數。
-
若要移除引數,請選擇您要移除的引數旁的移除。
-
-
(選用) 指定 Lambda 函數在執行時可用的環境變數。環境變數可讓您儲存和更新組態設定,而不需要變更函數程式碼。
-
在其他參數、環境變數下,選擇新增環境變數。
-
針對您新增的每個環境變數,指定下列選項:
-
索引鍵 – 變數名稱。
-
值 – 此變數的預設值。
-
-
若要移除環境變數,請選擇您要移除的環境變數旁的移除。
-
步驟 3:(選用) 指定 Lambda 函數支援的平台
所有核心裝置都有作業系統和架構的屬性。部署 Lambda 函數元件時, AWS IoT Greengrass Core 軟體會將您指定的平台值與核心裝置上的平台屬性進行比較,以判斷該裝置是否支援 Lambda 函數。
注意
您也可以在將 Greengrass 核元件部署至核心裝置時指定自訂平台屬性。如需詳細資訊,請參閱 平台覆寫 Greengrass 核元件的參數。 Greengrass 核
在 Lambda 函數組態下,其他參數、平台會執行下列動作,以指定此 Lambda 函數支援的平台。
-
針對每個平台,指定下列選項:
-
作業系統 – 平台的作業系統名稱。目前,僅支援的值為
linux
。 -
架構 – 平台的處理器架構。支援的值如下:
-
amd64
-
arm
-
aarch64
-
x86
-
-
-
若要新增另一個平台,請選擇新增平台並重複上一個步驟。若要移除支援的平台,請選擇您要移除的平台旁的移除。
步驟 4:(選用) 指定 Lambda 函數的元件相依性
元件相依性會識別函數使用的其他 AWS提供的元件或自訂元件。當您部署 Lambda 函數元件時,部署會包含這些相依性,以便您的函數執行。
重要
若要匯入您建立以在 AWS IoT Greengrass V1 上執行的 Lambda 函數,您必須為函數使用的功能定義個別元件相依性,例如秘密、本機影子和串流管理員。將這些元件定義為硬相依性,以便在相依性變更狀態時重新啟動 Lambda 函數元件。如需詳細資訊,請參閱匯入 V1 Lambda 函數。
在 Lambda 函數組態、其他參數、元件相依性下,完成下列步驟,以指定 Lambda 函數的元件相依性。
-
選擇新增相依性。
-
針對您新增的每個元件相依性,指定下列選項:
-
元件名稱 – 元件名稱。例如,輸入
aws.greengrass.StreamManager
以包含串流管理員元件。 -
版本需求 – 識別此元件相依性的相容版本的 npm 樣式語意版本限制。您可以指定單一版本或一系列版本。例如,輸入
^1.0.0
指定此 Lambda 函數取決於串流管理員元件第一個主要版本中的任何版本。如需語意版本限制的詳細資訊,請參閱 npm 轉換器計算器。 -
類型 – 相依性類型。您可以從以下選項中選擇:
-
硬 – 如果相依性變更狀態,Lambda 函數元件會重新啟動。這是預設選擇。
-
Soft – 如果相依性變更狀態,Lambda 函數元件不會重新啟動。
-
-
-
若要移除元件相依性,請選擇元件相依性旁的移除
步驟 5:(選用) 在容器中執行 Lambda 函數
根據預設,Lambda 函數會在 AWS IoT Greengrass Core 軟體內的隔離執行期環境中執行。您也可以選擇執行 Lambda 函數作為程序,而不需隔離 (即無容器模式)。
在 Linux 程序組態下,對於隔離模式,從下列選項中選擇 Lambda 函數的容器化:
-
Greengrass 容器 – Lambda 函數會在容器中執行。這是預設選擇。
-
無容器 – Lambda 函數會以程序執行,而沒有任何隔離。
如果您在容器中執行 Lambda 函數,請完成下列步驟來設定 Lambda 函數的程序組態。
-
設定記憶體和系統資源的數量,例如磁碟區和裝置,以提供給容器。
在容器參數下,執行下列動作。
-
針對記憶體大小,輸入您要配置到容器的記憶體大小。您可以指定記憶體大小,以 MB 或 kB 為單位。
-
對於唯讀 sys 資料夾,選擇容器是否可以從裝置的
/sys
資料夾讀取資訊。預設值為 False。
-
-
(選用) 設定容器化 Lambda 函數可存取的本機磁碟區。當您定義磁碟區時, AWS IoT Greengrass Core 軟體會將來源檔案掛載到容器內的目的地。
-
在磁碟區下,選擇新增磁碟區。
-
針對您新增的每個磁碟區,指定下列選項:
-
實體磁碟區 – 核心裝置上的來源資料夾路徑。
-
邏輯磁碟區 – 容器中目的地資料夾的路徑。
-
許可 – (選用) 從容器存取來源資料夾的許可。您可以從以下選項中選擇:
-
唯讀 – Lambda 函數具有來源資料夾的唯讀存取權。這是預設選擇。
-
讀寫 – Lambda 函數具有來源資料夾的讀寫存取權。
-
-
新增群組擁有者 – (選用) 是否要將執行 Lambda 函數元件的系統群組新增為來源資料夾的擁有者。預設值為 False。
-
-
若要移除磁碟區,請選擇您要移除的磁碟區旁的移除。
-
-
(選用) 設定容器化 Lambda 函數可存取的本機系統裝置。
-
在裝置下,選擇新增裝置。
-
針對您新增的每個裝置,指定下列選項:
-
掛載路徑 – 核心裝置上的系統裝置的路徑。
-
許可 – (選用) 從容器存取系統裝置的許可。您可以從以下選項中選擇:
-
唯讀 – Lambda 函數具有系統裝置的唯讀存取權。這是預設選擇。
-
讀寫 – Lambda 函數具有來源資料夾的讀寫存取權。
-
-
新增群組擁有者 – (選用) 是否要將執行 Lambda 函數元件的系統群組新增為系統裝置的擁有者。預設值為 False。
-
-
步驟 6:建立 Lambda 函數元件
設定 Lambda 函數元件的設定後,請選擇建立以完成建立新元件。
若要在核心裝置上執行 Lambda 函數,您可以將新元件部署至核心裝置。如需詳細資訊,請參閱將 AWS IoT Greengrass 元件部署至裝置。