如何创建正确的 EFS 接入点配置以使用 Lambda 函数挂载我的文件系统?

2 分钟阅读
0

我想使用 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. 选择 Configuration(配置)、File systems(文件系统)。
  4. File system(文件系统)下,选择 Add file system(添加文件系统)。
  5. 配置以下属性:
  • EFS 文件系统:同一 VPC 中文件系统的接入点。
  • 本地挂载路径:文件系统在 Lambda 函数上的挂载位置,以 /mnt/ 开头。例如,/mnt/lambda

仅当您提供以下内容时,Amazon EFS 才会自动创建具有可配置所有权和权限的根目录:

  • OwnUid
  • OwnGID
  • 目录的权限(创建信息)

**注意:**Amazon EFS 将接入点中设置为 0 的用户或组 ID 视为根用户。

有关更多信息,请参阅创建接入点的根目录

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 用户信息,则写入操作将失败,并显示 Permission denied(权限被拒绝)错误。有关添加 POSIX 用户信息的说明,请参阅前面的使用 Lambda 创建接入点部分。


相关信息

使用 Amazon EFS 接入点

AWS 官方
AWS 官方已更新 2 年前