AWS:使用同一接入点在 ec2 实例和 lambda 函数之间共享 EFS;

问题描述 投票:0回答:1

在 AWS 中:

我正在尝试在 EC2 实例和 lambda 函数之间共享 EFS 存储; 我首先为 EC2 实例创建了一个接入点

ap-1
: 根目录路径:/myapp/files

POSIX 用户:

用户ID:1234 群号:1234

根目录创建权限 所有者用户 ID:1234 业主组ID:1234 权限:777

它正在工作,在通过此访问点将 EFS 安装到 EC2 实例后,我可以在已安装的 EFS 中移动文件、解压文件;

但是,当我让 lambda 函数使用这个

ap-1
时,它会失败,并且在运行
 Error: EACCES: permission denied
命令时出现
mkdir

我做了一些搜索,为 lambda 函数创建了另一个接入点

ap-2

根目录路径:/myapp/files

POSIX 用户:

用户ID:1000 群组ID:1000

根目录创建权限 所有者用户 ID:1000 所有者组 ID:1000 权限:0777

它适用于 lambda 函数; 关键是我需要在访问点设置用户

1000
以供lambda函数使用;

我认为 EC2 实例和 lambda 应该使用相同的访问点,因为不需要使用单独的访问点。因此我使用

ap-2
而不是
ap-1
将 EFS 安装到 ec2 实例。

但是,现在在 EFS 中运行

 Error: EACCES: permission denied
命令时,EC2 实例失败并显示
mkdir

问题:

  1. 如何使用同一接入点将 EFS 安装到 EC2 实例和 lambda 函数?

  2. 如果我应该使用单独的访问点,当双方都需要访问和修改 EFS 中的同一文件时,是否会有任何陷阱?

amazon-web-services amazon-ec2 aws-lambda amazon-efs
1个回答
0
投票

EC2 实例通常使用编号较大的用户 ID 作为与已安装文件系统交互的用户帐户。 另一方面,Lambda 函数使用更受限制的执行环境以及较少的用户 ID。 因此,很难将接入点配置为使用与 EC2 实例和 Lambda 函数兼容的设置。另外我认为你只需要进行试验和错误方法。 2) 当多方同时访问同一文件时,您需要小心潜在的并发问题,例如竞争条件或文件锁定。根据应用程序的要求,您可能需要实现安全处理并发访问的机制。而且如果存在大量并发访问也会影响性能。请务必监控性能指标并根据需要进行调整*

© www.soinside.com 2019 - 2024. All rights reserved.