設定 Lambda 函數的檔案系統存取權 - AWS Lambda

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

設定 Lambda 函數的檔案系統存取權

您可以設定函數,將 Amazon Elastic File System (Amazon EFS) 檔案系統掛載到本機目錄。使用 Amazon EFS,您的函數程式碼可安全地存取和修改共用資源,並發揮高度並行效能。

執行角色和使用者許可

如果檔案系統沒有使用者設定 AWS Identity and Access Management (IAM) 政策,EFS 會使用預設政策,授與任何可使用檔案系統掛載目標連線至檔案系統的用戶端的完整存取權。如果檔案系統具有使用者設定的 IAM 政策,則函數的執行角色必須具有正確的 elasticfilesystem 許可。

執行角色許可
  • 彈性文件系統:ClientMount

  • 彈性文件系統:ClientWrite (只讀連接不需要)

這些權限包含在AmazonElasticFileSystemClientReadWriteAccess受管理的策略中。此外,您的執行角色必須具有連線至檔案系統的 VPC 所需的許可

設定檔案系統時,Lambda 會使用您的許可來驗證掛載目標。若要設定函數以連線至檔案系統,您的使用者需要下列許可:

使用者權限
  • 彈性文件系統:目標 DescribeMount

設定檔案系統和存取點

在函數所連線的每個可用區域中,在具有掛載目標的 Amazon EFS 中建立檔案系統。為了提高效能和彈性,請至少使用兩個可用區域。例如,在簡單的組態中,您可以在不同的可用區域中擁有包含兩個私有子網路的 VPC。此函數連線到兩個子網路,每個子網路都有可用的掛載目標。確定函數和掛載目標所使用的安全群組允許 NFS 流量 (連接埠 2049)。

注意

建立檔案系統時,您選擇稍後無法變更的效能模式。General purpose (一般用途) 模式具有較低的延遲,而 Max I/O (IO 上限) 模式支援較高的輸送量上限和 IOPS。如需協助選擇,請參閱 Amazon Elastic File System 使用者指南中的 Amazon EFS 效能

存取點會將函數的每個執行個體連線至可用區域連線到的正確掛載目標。為了獲得最佳效能,請使用非根路徑建立存取點,並限制您在每個目錄中建立的檔案數目。下列範例會在檔案系統上建立名為 my-function 的目錄,並將擁有者 ID 設為 1001,具有標準目錄許可 (755)。

範例 存取點組態
  • 名稱files

  • 使用者 ID1001

  • 群組 ID1001

  • 路徑/my-function

  • 許可755

  • 擁有者使用者 ID1001

  • 群組使用者 ID1001

當函數使用存取點時,會提供使用者 ID 1001,並具有目錄的完整存取權。

如需詳細資訊,請參閱 Amazon Elastic File System 使用者指南中的下列主題。

連線至檔案系統 (主控台)

此函數會透過 VPC 中的本機網路連線至檔案系統。您的函數連線到的子網路可能是包含檔案系統掛載點的子網路,或同一個可用區域中的子網路,其可將 NFS 流量 (連接埠 2049) 路由至檔案系統。

注意

如果您的函數尚未連線至 VPC,請參閱讓 Lambda 函數存取 Amazon VPC 中的資源

設定檔案系統存取權
  1. 開啟 Lambda 主控台中的 函數頁面

  2. 選擇一個函數。

  3. 選擇 組態 ,然後選擇 檔案系統

  4. 檔案系統 中,選擇 新增檔案系統

  5. 設定下列屬性:

    • EFS file system (EFS 檔案系統) - 相同 VPC 中的檔案系統存取點。

    • Local mount path (本機掛載路徑) - 檔案系統掛載於 Lambda 函數 (以 /mnt/ 開頭) 的位置。

定價

Amazon EFS 會針對儲存和輸送量收取費用,費率依儲存類別而異。如需詳細資訊,請參閱 Amazon EFS 定價

Lambda 會針對 VPC 之間的資料傳輸收取費用。這僅適用於您的函數的 VPC 對等連線到帶有檔案系統的另一個 VPC 的情況。費率與相同區域內 VPC 之間的 Amazon EC2 資料傳輸費用相同。如需詳細資訊,請參閱 Lambda 定價

如需 Lambda 與 Amazon EFS 整合的詳細資訊,請參閱 搭配使用 Amazon EFS 與 Lambda