这个错误表明Lambda函数没有足够的权限执行S3复制操作。为了解决这个问题,需要在Lambda函数的IAM角色中添加S3访问权限。
下面是一个Lambda函数创建S3 bucket对象并复制文件的示例代码。在lambda_handler()函数中,需要确保IAM角色具有足够的权限来执行S3复制操作。
import boto3
s3 = boto3.client('s3')
def lambda_handler(event, context):
src_bucket = 'my-source-bucket'
src_key = 'example.txt'
dest_bucket = 'my-destination-bucket'
dest_key = 'example.txt'
try:
response = s3.copy_object(Bucket=dest_bucket, CopySource={'Bucket': src_bucket, 'Key': src_key}, Key=dest_key)
print(response)
except Exception as e:
print(e)
raise e
return {
'statusCode': 200,
'body': 'S3 object copied successfully'
}
确保IAM角色具有S3访问权限以保证Lambda函数能够正确执行S3复制操作。