Gor*_*ove 5 lambda amazon-web-services aws-lambda amazon-efs
我创建了一个 lambda 函数。我使用所有默认设置创建了一个弹性文件系统 (EFS) 和访问点。我将 EFS 附加到 lambda 函数,再次仅使用默认值。
但!没有对 EFS 的写访问权限。
我错过了什么?
希望好心人知道:)
笔记....
当前的答案似乎不起作用。我也已经使用 AWS 支持一个多星期了。他们似乎认为 EFS 没有安装。
EFS 在 = /mnt/fs 挂载到 lambda
EFS 访问点 - 根目录路径 = /(将其更改为 /fs 的建议会导致内部服务器错误,AWS 支持建议的 /mnt/fs 也会导致内部服务错误)。
AmazonElasticFileSystemClientFullAccess 和 AWSLambdaVPCAccessExecutionRole 添加到执行角色。
测试节点js示例:
exports.handler = function(event, ctx, callback) {
const fs = require("fs");
fs.mkdir('/mnt/fs/newfolder', { recursive: true }, (err) => {
callback(null, {
statusCode: 200,
"content-type": "text/html",
body: (err || "ok").toString()
})
});
};
Run Code Online (Sandbox Code Playgroud)
Gor*_*ove 13
aws 文档遗漏了有关 posix 用户设置的部分,但一篇博客文章对此进行了解释。
将 EFS 添加到 lambda。
需要将 AmazonElasticFileSystemClientFullAccess 和 AWSLambdaVPCAccessExecutionRole 权限添加到执行角色。
EFS 安装到 lambda,位于 = /mnt/fs EFS 接入点路径 = /mnt/fs
将 posix 用户添加到访问点。用户 1000,组 1000,权限 0777。
正如这篇博文中所解释的:
您的 Lambda 执行角色必须AmazonElasticFileSystemClientFullAccess附加到它才能写入 EFS。
要添加,请转至 Lambda > 权限 > 执行角色,然后单击角色名称。
现在,角色将被打开,点击权限下的添加策略并添加 AmazonElasticFileSystemClientFullAccess和AWSLambdaVPCAccessExecutionRole
另请验证您是否已在 Lambda 和 EFS 访问点中正确设置根目录路径和挂载点。
如果 lambda 文件系统中的安装点是,/mnt/fs/则访问点中的根目录路径必须是/fs
| 归档时间: |
|
| 查看次数: |
1117 次 |
| 最近记录: |