我的要求包括:
请帮助。
我现在尝试运行lambda函数,并将错误显示为:模块初始化错误:调用HeadObject操作时出现错误(403):禁止。
我以其角色授予lambda访问s3存储桶的权限。还有其他需要提供访问权限的地方吗?
请找到以下代码:
import sys
import zipfile
import boto3
s3 = boto3.client('s3')
bucket = 'myoriginalnewtestbucket'
unzipTmpFile='terraform_0.12.13_windows_amd64.zip'
def lambda_handler(event, context):
s3.download_file('bucket', unzipTmpFile, '/tmp/terraform_0.12.13_windows_amd64.zip')
with zipfile.ZipFile('/tmp/terraform_0.12.13_windows_amd64.zip', 'r') as zip_ref:
zip_ref.extractall('/tmp/')
在s3.download_file步骤中失败。 我授予lambda角色对s3存储桶和cloudwatch日志的完全许可。
请让我知道我可能会丢失的东西。
答案 0 :(得分:0)
如果您希望在将Zip文件上传到存储桶后立即触发上述过程,则可以编写一个AWS Lambda函数
触发Lambda函数时,将向其传递上载的存储桶和对象的名称。该函数然后应该:
/tmp
有关一般示例,请参见:Tutorial: Using AWS Lambda with Amazon S3 - AWS Lambda