gpt4 book ai didi

python - 从 S3 上传 AWS Lambda python zip 后权限被拒绝

转载 作者:太空宇宙 更新时间:2023-11-03 13:31:46 24 4
gpt4 key购买 nike

从 S3 将 python zip 包上传到 AWS Lambda 时,出现以下神秘错误:

module initialization error: [Errno 13] Permission denied: '/var/task/lambda_function.py'

错误似乎是,如果您创建具有限制性权限的 zip 包,AWS 就会感到困惑。本质上,AWS 使用您授予的权限解压缩您的包并尝试使用它。尤其令人困惑的是,您可能能够从 AWS Lambda 内联代码编辑器中看到部分 zip 文件(因此您显然拥有一些权限),但 Lambda 函数会给出上述错误。

处理此问题的最佳方法是什么(更好的错误消息或解决问题)?

最佳答案

我使用的方法是小心我如何在 python 中创建我的 zip 包。

而不是做类似的事情

ziph = zipfile.ZipFile(zip_filename, 'w', zipfile.ZIP_DEFLATED)
ziph.writestr(file_name, my_data)

我将上面的最后一行替换为

zinfo = zipfile.ZipInfo(file_name)
zinfo.external_attr = 0o777 << 16 # give full access to included file
ziph.writestr(zinfo, my_data)

确保明确授予完全权限。如果您不这样做,那么 writestr 将使用过于严格的默认权限。 (注意:以上是针对 python 3.6 的)。

关于python - 从 S3 上传 AWS Lambda python zip 后权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46076543/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com