如何建立正確的 EFS 存取點組態,以使用 Lambda 函數掛載我的檔案系統?

上次更新日期:2022-06-24

我想用 AWS Lambda 來建立 Amazon Elastic File System (Amazon EFS) 掛載存取點。我該如何進行?工作和非工作的存取點有哪些設定組態?

解決方案

先決條件

以下是使用 Lambda 掛載 EFS 存取點的先決條件:

  • Lambda 函數的執行角色必須具有下列 elasticfilesystem 許可權:
    elasticfilesystem:ClientMount
    elasticfilesystem:ClientWrite(唯讀連線則不需要)
  • 您的 AWS Identify and Access Management (IAM) 使用者必須具有下列權限:
    elasticfilesystem:DescribeMountTargets
    如需詳細資訊,請參閱設定檔案系統和存取點
  • EFS 檔案系統的安全群組中必須允許傳入 NFS 通訊 (連接埠 2049)。

使用 Lambda 建立存取點

  1. 開啟 Lambda 主控台的「函數」頁面
  2. 選擇一個函數。
  3. 選擇「設定組態」,然後選擇「檔案系統」
  4. 「檔案系統」下,選擇「新增檔案系統」
  5. 設定以下屬性:
  • EFS 檔案系統:同一個 VPC 中檔案系統的存取點。
  • 本機掛載路徑:在 Lambda 函數上掛載檔案系統的位置,以「/mnt/」開頭。例如「/mnt/lambda」

要讓 Amazon EFS 自動建立具有可設定擁有權和許可權的根目錄,您必須先提供以下項目:

  • OwnUid
  • OwnGID
  • 目錄的許可權(建立資訊)

注意:Amazon EFS 會將存取點中 ID 設為 0 的使用者或群組視為根使用者。

如需詳細資訊,請參閱 建立存取點的根目錄

EFS 存取點組態範例

注意:存取點的根目錄是「/efsaccesspoint」。使用此存取點掛載 fs-12345678:/ 檔案系統的方式,與在沒有此存取點的情況下掛載 fs-12345678:/efsaccesspoint 相同。

工作組態

組態 1:

  • 根目錄路徑:/efs(/efs 不存在)
  • POSIX 使用者:空白
  • 建立資訊:1000:1000(777)

組態 2:

  • 根目錄路徑:/efs(/efs 不存在)
  • POSIX 使用者:1000:1000
  • 建立資訊:1000:1000 (777,775,755)

組態 3:

  • 根目錄路徑:/efs(/efs 存在)
  • POSIX 使用者:1000:1000
  • 建立資訊:空白

組態 4:

  • 根目錄路徑:/efs(/efs 不存在)
  • POSIX 使用者:0:0
  • 建立資訊:1000:1000 (755)

組態 5:

  • 根目錄路徑:/efs(/efs 不存在)
  • POSIX 使用者:0:0
  • 建立資訊:1000:1000 (775)

組態 6:

  • 根目錄路徑:/efs(/efs 不存在)
  • POSIX 使用者:0:0
  • 建立資訊:1000:1000 (777)

非工作組態

使用 Lambda 函數存取 EFS 時,下列存取點組態會導致錯誤:

  • 根目錄路徑:/efs(/efs 不存在)
  • POSIX 使用者:1000:1000
  • 建立資訊:空白

如果您的使用案例需要從 AWS Lambda 函數執行寫入操作至 EFS 掛載路徑,您必須提供 POSIX 使用者資訊。如果未提供 POSIX 使用者資訊,寫入操作會失敗,並顯示許可權遭拒錯誤。如需近一步瞭解如何新增 POSIX 使用者資訊,請參閱上一章節:使用 Lambda 建立存取點


此文章是否有幫助?


您是否需要帳單或技術支援?