将另一个 Amazon Web Services 账户 中的 Amazon EFS 文件系统用于 Lambda 函数
您可以配置函数以将 Amazon EFS 文件系统挂载到其他 Amazon Web Services 账户。在挂载文件系统之前,必须确保满足以下条件:
要让 Lambda 函数访问其他 Amazon Web Services 账户 中的 Amazon EFS 文件系统,该文件系统还必须具有可向函数授予权限的文件系统策略。要了解如何创建文件系统策略,请参阅 Amazon Elastic File System User Guide 中的 Creating file system policies。
以下示例策略显示如何向指定账户中的 Lambda 函数授予在文件系统上执行所有 API 操作的权限。
{ "Version": "2012-10-17", "Id": "efs-lambda-policy", "Statement": [ { "Sid": "efs-lambda-statement", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
{LAMBDA-ACCOUNT-ID}
:root" }, "Action": "*", "Resource": "arn:aws:elasticfilesystem:{REGION}
:{ACCOUNT-ID}
:file-system/{FILE SYSTEM ID}
" } ] }
注意
所示的示例策略使用通配符(“*”)向指定 Amazon Web Services 账户 中的 Lambda 函数授予在文件系统上执行任何 API 操作的权限。这包括删除文件系统。要限制其他 Amazon Web Services 账户 在您的文件系统上执行操作,请明确指定想要允许的操作。有关可能的 API 操作列表,请参阅 Amazon Elastic File System 的操作、资源和条件键。
要配置跨账户文件系统挂载,可以使用 Amazon Command Line Interface(Amazon CLI)update-function-configuration
操作。
要将文件系统挂载到其他 Amazon Web Services 账户,请运行以下命令。使用自己的函数名称,将 Amazon 资源名称(ARN)替换为要挂载的文件系统的 Amazon EFS 接入点的 ARN。LocalMountPath
是函数用来访问文件系统的路径,以 /mnt/
开头。确保 Lambda 挂载路径与文件系统的接入点路径匹配。例如,如果接入点为 /efs
,则 Lambda 挂载路径必须是 /mnt/efs
。
aws lambda update-function-configuration --function-name
MyFunction
\ --file-system-configs Arn=arn:aws:elasticfilesystem:us-east-1:222222222222:access-point/fsap-01234567
,LocalMountPath=/mnt/test