本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將 Lambda 函數匯入為元件 (主控台)
當您使用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 核心 v2.6.0 或更新版本和 Lambda 管理員 v2.2.5 或更新版本,則可以在指定此類型時在主題中使用 MQTT 主題萬用字元 (
+
和)。#
-
AWS IoT CoreMQTT — 訂閱 AWS IoT Core MQTT 訊息。
指定此類型時,您可以在「主題」中使用 MQTT 主題萬用字元 (
+
和#
)。
-
-
-
若要新增其他事件來源,請選擇 [新增事件來源],然後重複上一個步驟。若要移除事件來源,請在您要移除的事件來源旁邊選擇 [移除]。
-
-
針對逾時 (秒),輸入非釘選 Lambda 函數在逾時之前可執行的時間上限 (以秒為單位)。預設為 3 秒。
-
對於「釘接」,請選擇是否釘選 Lambda 函數元件。預設值為「真」。
-
固定(或長壽命)Lambda 函數在啟動時AWS IoT Greengrass啟動,並在自己的容器中繼續運行。
-
非釘選 (或隨選) Lambda 函數只會在收到工作項目時啟動,並在閒置超過指定的最大閒置時間後結束。如果此函數具有多個工作項目,AWS IoT Greengrass Core 軟體會建立此函數的多個執行個體。
-
-
(選擇性) 在其他參數下,設定下列 Lambda 函數參數。
-
狀態逾時 (秒) — Lambda 函數元件將狀態更新傳送至 Lambda 管理員元件的間隔 (秒)。此參數僅適用於固定的函數。預設值為 60 秒。
-
佇列大小上限 — Lambda 函數元件的訊息佇列大小上限。AWS IoT Greengrass核心軟體會將訊息儲存在 FIFO (先進先出) 佇列中,直到它可以執行 Lambda 函數來使用每則訊息為止。預設值為 1,000 則訊息。
-
執行個體數目上限 — 非固定 Lambda 函數可同時執行的執行個體數目上限。預設值為 100 個執行個體。
-
最大閒置時間 (秒) — 非釘選 Lambda 函數在 AWS IoT Greengrass Core 軟體停止處理程序之前可閒置的最大時間 (秒)。預設值為 60 秒。
-
編碼類型 — Lambda 函數支援的有效負載類型。您可以從以下選項中選擇:
-
JSON
-
:二進位
預設值為 JSON。
-
-
-
(選擇性) 指定執行 Lambda 函數時要傳遞給 Lambda 函數的命令列引數清單。
-
在其他參數的處理引數下,選擇新增引數。
-
針對您新增的每個引數,輸入要傳遞至函數的引數。
-
若要移除引數,請選擇您要移除之引數旁邊的 [移除]。
-
-
(選擇性) 指定 Lambda 函數執行時可用的環境變數。環境變數可讓您儲存和更新組態設定,而不需要變更函數程式碼。
-
在其他參數的環境變數下,選擇新增環境變數。
-
針對您新增的每個環境變數,指定下列選項:
-
Key — 變數名稱。
-
值 — 此變數的預設值。
-
-
若要移除環境變數,請在您要移除的環境變數旁邊選擇「移除」。
-
步驟 3:(選擇性) 為 Lambda 函數指定支援的平台
所有核心裝置都具有作業系統和架構的屬性。部署 Lambda 函數元件時,AWS IoT Greengrass核心軟體會將您指定的平台值與核心裝置上的平台屬性進行比較,以判斷該裝置是否支援 Lambda 函數。
注意
當您將 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-style 語意版本條件約束。您可以指定單一版本或版本範圍。例如,輸入
^1.0.0
以指定此 Lambda 函數取決於串流管理員元件第一個主要版本中的任何版本。如需語意版本條件約束的詳細資訊,請參閱 npm semver計算器。 -
「類型」— 相依性的類型。您可以從以下選項中選擇:
-
硬體 — 如果相依性變更狀態,Lambda 函數元件會重新啟動。這是預設選項。
-
軟體 — 如果相依性變更狀態,Lambda 函數元件不會重新啟動。
-
-
-
若要移除元件相依性,請選擇元件相依性旁邊的移除
步驟 5:(選用) 在容器中執行 Lambda 函數
根據預設,Lambda 函數會在AWS IoT Greengrass核心軟體內的隔離執行階段環境中執行。您也可以選擇在沒有任何隔離的情況下以程序的方式執行 Lambda 函數 (也就是在「無容器」模式下)。
在 Linux 程序組態下,針對隔離模式,從下列選項中選擇以選取 Lambda 函數的容器化:
-
容器-Lambda 函數在容器中運行。這是預設選項。
-
無容器 — Lambda 函數在沒有任何隔離的情況下以程序的形式執行。
如果您在容器中執行 Lambda 函數,請完成下列步驟以設定 Lambda 函數的程序組態。
-
設定要提供給容器使用的記憶體數量和系統資源 (例如磁碟區和裝置)。
在「容器參數」下,執行下列操作。
-
在記憶體大小中,輸入您要配置給容器的記憶體大小。您可以指定以 MB 或 k B 為單位的記憶體大小。
-
對於唯讀 sys 資料夾,請選擇容器是否可以讀取設備資
/sys
料夾中的資訊。預設值為「假」。
-
-
(選擇性) 設定容器化 Lambda 函數可存取的本機磁碟區。在您定義磁碟區時,AWS IoT Greengrass Core 軟體會將來源檔案掛載至容器內的目的地。
-
在磁碟區下,選擇新增磁碟區。
-
針對您新增的每個磁碟區,指定下列選項:
-
實體磁碟區 — 核心裝置上來源資料夾的路徑。
-
邏輯磁碟區 — 容器中目標資料夾的路徑。
-
權限 — (選用) 從容器存取來源資料夾的權限。您可以從以下選項中選擇:
-
唯讀 — Lambda 函數對來源資料夾具有唯讀存取權。這是預設選項。
-
讀寫 — Lambda 函數具有來源資料夾的讀取/寫入存取權。
-
-
新增群組擁有者 — (選用) 是否要新增執行 Lambda 函數元件的系統群組,做為來源資料夾的擁有者。預設值為「假」。
-
-
若要移除卷宗,請選擇您要移除的磁碟區旁邊的 [移除]。
-
-
(選擇性) 設定容器化 Lambda 函數可存取的本機系統裝置。
-
在 [裝置] 下,選擇 [新增裝置]
-
針對您新增的每個裝置,指定下列選項:
-
掛載路徑 — 核心裝置上系統裝置的路徑。
-
權限 — (選用) 從容器存取系統裝置的權限。您可以從以下選項中選擇:
-
唯讀 — Lambda 函數對系統裝置具有唯讀存取權。這是預設選項。
-
讀寫 — Lambda 函數具有來源資料夾的讀取/寫入存取權。
-
-
新增群組擁有者 — (選用) 是否新增以系統裝置擁有者身分執行 Lambda 函數元件的系統群組。預設值為「假」。
-
-
步驟 6:建立 Lambda 函數元件
設定 Lambda 函數元件的設定後,請選擇建立以完成新元件的建立。
若要在核心裝置上執行 Lambda 函數,您可以接著將新元件部署到核心裝置。如需更多詳細資訊,請參閱 將AWS IoT Greengrass元件部署到裝置。