AWS Lambda:失败,出现错误 [Errno 13] 权限被拒绝:'/var/task/lambda_function.py

AWS Lambda: failed with error [Errno 13] Permission denied: '/var/task/lambda_function.py

我有以下 CI/CD Gitlab 设置来部署我的 lambda 函数

当它运行时没有发生错误,但是当我尝试执行该函数时,我收到“失败,错误 [Errno 13] 权限被拒绝:'/var/task/lambda_function.py”错误。有什么办法可以解决这个问题吗?我找到了 this 文章,其中 aws 建议使用 chmod 来授予文件权限,但它没有帮助。

顺便说一句:我在我的机器上本地 运行 相同的命令,当 运行 函数

时没有错误发生

提前感谢您的回答。

更新:CloudWatch 日志如下

我认为您在 Whosebug 上也遇到了类似 this one and another 的问题。 您必须手动设置 zip 文件的权限。

引用错误

The zip archive preserves file permissions, so if you have a 644 permissions file, deflate it and inflate it back up, you get 644 permissions for that file.

So to fix the issue, simply set the expected permissions before deflation, in Lambda's case, something like 755 will do.