我想使用 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 创建接入点
- 打开 Lambda 控制台的函数页面。
- 选择一个函数。
- 选择 Configuration(配置)、File systems(文件系统)。
- 在 File system(文件系统)下,选择 Add file system(添加文件系统)。
- 配置以下属性:
- 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 接入点