

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

此功能適用於 AWS IoT Greengrass Core v1.3 和更新版本。

使用 AWS IoT Greengrass，您可以編寫 AWS Lambda 函數並在雲端中設定[連接器](connectors.md)，並將其部署到核心裝置以進行本機執行。在執行 Linux 的 Greengrass 核心上，這些本機部署的 Lambda 函數和連接器可以存取 Greengrass 核心裝置上實際存在的本機資源。例如，若要與透過 Modbus 或 CANbus 連線的裝置通訊，您可以讓 Lambda 函數存取核心裝置上的序列連接埠。若要設定安全地存取本機資源，您必須保證實體硬體和 Greengrass 核心裝置作業系統這兩者的安全性。

若要開始存取本機資源，請參閱以下教學課程：
+ [如何使用 AWS 命令列界面設定本機資源存取](lra-cli.md)
+ [如何使用 設定本機資源存取 AWS 管理主控台](lra-console.md)

## 支援的資源類型
<a name="lra-resource-types"></a>

您可以存取兩種類型的本機資源：磁碟區資源和裝置資源。

**磁碟區資源**  
在根檔案系統中的檔案或目錄 (除了在 `/sys`、`/dev` 或 `/var` 之下)。其中包含：  
+ 用於跨 Greengrass Lambda 函數讀取或寫入資訊的資料夾或檔案 （例如 `/usr/lib/python2.x/site-packages/local`)。
+ 在主機的 /proc 檔案系統下的資料夾或檔案 (例如，`/proc/net` 或 `/proc/stat`)。支援 v1.6 或更新版本。如需其他需求，請參閱 [在 /proc 目錄下的磁碟區資源](#lra-proc-resources)。
若要設定 `/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 也支援用於執行機器學習推論的資源類型。如需詳細資訊，請參閱[執行機器學習推論](ml-inference.md)。

## 需求
<a name="lra-requirements"></a>

以下要求適用於設定安全地存取本機資源：
+ 您必須使用 AWS IoT Greengrass 核心軟體 1.3 版或更新版本。若要為主機的 /proc 目錄建立資源，您必須使用 v1.6 或更新版本。
+ 本機資源 (包括任何必要的驅動程式和程式庫) 必須正確安裝在 Greengrass 核心裝置，並在使用時保持可用狀態。
+ 所需操作的資源和存取資源的權限，並不需要根權限。
+ 僅提供 `read` 或 `read and write` 許可。Lambda 函數無法在資源上執行授權的操作。
+ 在 Greengrass 核心裝置的作業系統中，您必須提供完整的本機資源路徑。
+ 資源名稱或 ID 字元達最大限制 128 個字元時，必須使用模式 `[a-zA-Z0-9:_-]+`。

### 在 /proc 目錄下的磁碟區資源
<a name="lra-proc-resources"></a>

以下考量適用於主機的 /proc 目錄下的磁碟區資源。
+ 您必須使用 AWS IoT Greengrass 核心軟體 1.6 版或更新版本。
+ 您可以允許 Lambda 函數的唯讀存取，但不允許讀寫存取。此存取層級由 管理 AWS IoT Greengrass。
+ 您可能也需要授予許可給作業系統群組，才能在檔案系統中啟用讀取權限。例如，假設您的來源目錄或檔案擁有 660 個檔案許可，這表示只有群組中的擁有者或使用者有讀取 (和寫入) 存取權限。在此情況下，您必須將作業系統群組擁有者的許可新增至資源中。如需詳細資訊，請參閱[群組擁有者檔案存取許可](#lra-group-owner)。
+ 主機環境和 Lambda 命名空間都包含 /proc 目錄，因此當您指定目的地路徑時，請務必避免命名衝突。例如，如果 /proc 是來源路徑，您可以指定 /host-proc 做為目的地路徑 (或除了「*/proc*」以外的任何路徑)。

## 群組擁有者檔案存取許可
<a name="lra-group-owner"></a>

 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)` 命令變更資源許可，如果需要的話。

## 另請參閱
<a name="lra-seealso"></a>
+ 中的資源[Service Quotas](https://docs.aws.amazon.com/general/latest/gr/greengrass.html#limits_greengrass) *Amazon Web Services 一般參考*