View a markdown version of this page

設定 Amazon S3 檔案存取 - AWS Lambda

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

設定 Amazon S3 檔案存取

Amazon S3 Files 提供共用檔案系統,可將任何 AWS 運算資源直接與 Amazon S3 中的資料連線。Amazon S3 檔案可讓您使用標準檔案系統操作,例如在本機掛載路徑上讀取和寫入,以檔案形式存取 Amazon S3 物件。進一步了解 Amazon S3 檔案

先決條件和設定

使用 Lambda 函數設定 Amazon S3 檔案之前,請確定您有下列項目:

  • Amazon S3 檔案系統和掛載目標在與 AWS 區域 Lambda 函數相同的帳戶中處於可用狀態。

  • 與掛載目標位於相同 VPC 中的 Lambda 函數。您必須在部署函數的每個子網路中具有掛載目標。

  • 允許 Lambda 函數與掛載目標之間 NFS 流量 (連接埠 2049) 的安全群組。進一步了解設定安全群組

如需詳細資訊,請參閱《Amazon S3 使用者指南》中的下列主題:

執行角色和使用者許可

您函數的執行角色必須具有下列許可,才能存取 Amazon S3 檔案系統:

執行角色許可
  • s3files:ClientMount – 掛載檔案系統時需要。

  • s3files:ClientWrite – 讀取寫入存取的必要項目。唯讀連線不需要。

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

注意

Amazon S3 檔案透過直接從 Amazon S3 讀取來最佳化輸送量。Amazon S3 的直接讀取僅支援設定 512 MB 或更多記憶體的函數。

您的函數也需要下列許可,才能直接從 Amazon S3 讀取:

  • s3:GetObject

  • s3:GetObjectVersion

如需必要許可的詳細資訊,請參閱《Amazon S3 使用者指南》中的 Amazon S3 檔案的 IAM 許可Amazon S3

當您在主控台中設定檔案系統時,Lambda 會使用您的許可來驗證掛載目標和存取點。若要設定函數以連線至檔案系統,您的使用者需要下列許可:

使用者許可
  • s3files:ListFileSystems

  • s3files:ListAccessPoints

  • s3files:GetFileSystem

  • s3files:GetAccessPoint

  • s3files:CreateAccessPoint – 如果從主控台將檔案系統連接至 函數,則為必要項目。

下列範例政策授予函數的執行角色許可,以掛載具有讀寫存取權的 Amazon S3 檔案系統,並直接從 Amazon S3 讀取。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3FilesLambdaAccess", "Effect": "Allow", "Action": [ "s3files:ClientMount", "s3files:ClientWrite" ], "Resource": "*" }, { "Sid": "S3DirectRead", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::bucket-name/*" }, { "Sid": "S3FilesConsoleSetup", "Effect": "Allow", "Action": [ "s3files:ListFileSystems", "s3files:ListAccessPoints", "s3files:GetFileSystem", "s3files:GetAccessPoint", "s3files:CreateAccessPoint" ], "Resource": "*" } ] }

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

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

注意

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

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

  2. 選擇一個函數。

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

  4. 選擇新增檔案系統 (或編輯以修改現有的組態)。

  5. 選取 S3 檔案

  6. 設定下列屬性:

    • S3 檔案系統 – 從下拉式清單中選擇檔案系統。

    • 存取點 (選用) – 選擇存取點。如果檔案系統沒有存取點,Lambda 會在儲存時自動建立一個存取點 (UID/GID 1000:1000、根目錄 /lambda、許可 755)。如果存取點存在,您必須選擇一個存取點。

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

  7. 選擇儲存

您的檔案系統將在您下次叫用 Lambda 函數時連接。