我已经编写了一个AWS Lambda函数,使用BOTO3-lib将对象从S3存储桶中的一个文件夹复制到另一个文件夹。本地逻辑运行良好,但在部署到lambda后,出现权限错误。
我在代码中使用的S3函数:
- boto3.resources((-获取s3对象
- s3.Object((-获取存储在s3中的文件
- .get((['Body'].read((-读取存储的文件的内容
- .copy(copy_source,destination_key(-从一个文件夹复制数据至同一S3铲斗中的另一个
IAM授予lambda的权限:
-
"s3:PutObject">
-
"s3:GetObject",
-
"s3:ListBucket">
但仍然没有运气。有人能告诉我,为了我的目的,我还需要授予Lambda哪些其他权限才能访问S3吗?PS:尝试查看IAM操作列表,但找不到丢失的操作。
Lambda函数的超时时间对于正在进行的S3调用的持续时间来说太低。
此外,如果您只想将S3对象从S3复制到S3,那么通常不需要下载S3对象。您正在下载对象,这增加了您的超时问题。只需使用客户端级别的copy_object函数。