支援終止通知:2026 年 10 月 7 日 AWS 將停止 的支援 AWS IoT Greengrass Version 1。2026 年 10 月 7 日之後,您將無法再存取 AWS IoT Greengrass V1 資源。如需詳細資訊,請造訪從 遷移 AWS IoT Greengrass Version 1。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Lambda 函數和連接器存取本機資源
此功能適用於 AWS IoT Greengrass Core v1.3 和更新版本。
使用 AWS IoT Greengrass,您可以編寫 AWS Lambda 函數並在雲端中設定連接器,並將其部署到核心裝置以進行本機執行。在執行 Linux 的 Greengrass 核心上,這些本機部署的 Lambda 函數和連接器可以存取實際存在於 Greengrass 核心裝置上的本機資源。例如,若要與透過 Modbus 或 CANbus 連線的裝置通訊,您可以啟用 Lambda 函數來存取核心裝置上的序列連接埠。若要設定安全地存取本機資源,您必須保證實體硬體和 Greengrass 核心裝置作業系統這兩者的安全性。
若要開始存取本機資源,請參閱以下教學課程:
支援的資源類型
您可以存取兩種類型的本機資源:磁碟區資源和裝置資源。
- 磁碟區資源
-
在根檔案系統中的檔案或目錄 (除了在
/sys、/dev或/var之下)。其中包含:-
用於跨 Greengrass Lambda 函數讀取或寫入資訊的資料夾或檔案 (例如,
/usr/lib/python2.x/site-packages/local)。 -
在主機的 /proc 檔案系統下的資料夾或檔案 (例如,
/proc/net或/proc/stat)。支援 v1.6 或更新版本。如需其他需求,請參閱 在 /proc 目錄下的磁碟區資源。
提示
若要設定
/var、/var/run和/var/lib目錄為磁碟區資源,首先,請掛載目錄於不同的資料夾中,然後設定資料夾為磁碟區資源。當您設定磁碟區資源,您指定來源路徑和目的地路徑。來源路徑是主機上資源的絕對路徑。目的地路徑是 Lambda 命名空間環境中資源的絕對路徑。這是 Greengrass Lambda 函數或連接器執行所在的容器。目標路徑的所有變更都會反映在主機檔案系統的來源路徑上。
注意
目的地路徑中的檔案僅會顯示在 Lambda 命名空間中。您無法在一般 Linux 命名空間中看到這些檔案。
-
- 裝置資源
-
檔案位於
/dev之下。只有位於/dev底下的字元裝置或區塊型儲存設備才允許使用裝置資源。其中包含:-
序列埠可用於與透過序列埠 (例如
/dev/ttyS0、/dev/ttyS1) 連線的裝置通訊。 -
USB 可用於連接 USB 週邊設備 (例如
/dev/ttyUSB0或/dev/bus/usb)。 -
GPIO,使用 GPIO (例如
/dev/gpiomem) 的感測器和傳動器。 -
GPU,使用內建的 GPU (例如,
/dev/nvidia0) 加速機器學習速度。 -
相機用於捕捉影像和影片 (例如,
/dev/video0)。
注意
/dev/shm為例外。它僅能設為磁碟區資源。在/dev/shm底下的資源必須授與rw權限。 -
AWS IoT Greengrass 也支援用於執行機器學習推論的資源類型。如需詳細資訊,請參閱執行機器學習推論。
需求
以下要求適用於設定安全地存取本機資源:
-
您必須使用 AWS IoT Greengrass 核心軟體 1.3 版或更新版本。若要為主機的 /proc 目錄建立資源,您必須使用 v1.6 或更新版本。
-
本機資源 (包括任何必要的驅動程式和程式庫) 必須正確安裝在 Greengrass 核心裝置,並在使用時保持可用狀態。
-
所需操作的資源和存取資源的權限,並不需要根權限。
-
僅提供
read或read and write許可。Lambda 函數無法在資源上執行授權的操作。 -
在 Greengrass 核心裝置的作業系統中,您必須提供完整的本機資源路徑。
-
資源名稱或 ID 字元達最大限制 128 個字元時,必須使用模式
[a-zA-Z0-9:_-]+。
在 /proc 目錄下的磁碟區資源
以下考量適用於主機的 /proc 目錄下的磁碟區資源。
您必須使用 AWS IoT Greengrass 核心軟體 1.6 版或更新版本。
您可以允許 Lambda 函數的唯讀存取,但不允許讀寫存取。此存取層級由 管理 AWS IoT Greengrass。
您可能也需要授予許可給作業系統群組,才能在檔案系統中啟用讀取權限。例如,假設您的來源目錄或檔案擁有 660 個檔案許可,這表示只有群組中的擁有者或使用者有讀取 (和寫入) 存取權限。在此情況下,您必須將作業系統群組擁有者的許可新增至資源中。如需詳細資訊,請參閱群組擁有者檔案存取許可。
主機環境和 Lambda 命名空間都包含 /proc 目錄,因此在指定目的地路徑時,請務必避免命名衝突。例如,如果 /proc 是來源路徑,您可以指定 /host-proc 做為目的地路徑 (或除了「/proc」以外的任何路徑)。
群組擁有者檔案存取許可
AWS IoT Greengrass Lambda 函數程序通常會以 ggc_user和 執行ggc_group。不過,您可以在本機資源定義中為 Lambda 函數程序提供額外的檔案存取許可,如下所示:
-
若要新增擁有資源之 Linux 群組的許可,請使用
GroupOwnerSetting#AutoAddGroupOwner參數或自動新增擁有資源主控台選項之系統群組的檔案系統許可。 -
若要新增不同 Linux 群組的許可,請使用
GroupOwnerSetting#GroupOwner參數或指定另一個系統群組來新增檔案系統許可主控台選項。若GroupOwnerSetting#AutoAddGroupOwner為 true,則GroupOwner會被忽略。
AWS IoT Greengrass Lambda 函數程序會繼承 ggc_user、 ggc_group和 Linux 群組 (如果新增) 的所有檔案系統許可。若要讓 Lambda 函數存取資源,Lambda 函數程序必須具有資源的必要許可。您可以使用 chmod(1) 命令變更資源許可,如果需要的話。
另請參閱
-
中的資源Service Quotas Amazon Web Services 一般參考