python-3.x - 删除对象事件触发时,Lambda 不会将对象复制到另一个存储桶
问题描述
下面的 Lambda 适用于对象创建事件触发器,但不会在删除对象事件上复制对象。打开版本控制(切换到使用标记而不是永久删除)不会改变它。Lambda 角色附加了 arn:aws:iam::aws:policy/AmazonS3FullAccess 和 arn:aws:iam::aws:policy/AWSLambda_FullAccess 策略。这个功能有什么问题?
import json
import boto3
# boto3 S3 initialization
s3_client = boto3.client("s3")
def lambda_handler(event, context):
source_bucket_name = event['Records'][0]['s3']['bucket']['name']
destination_bucket_name = source_bucket_name + '-glacier'
print(f'Copying from {source_bucket_name} to {destination_bucket_name}')
print("Event :", event)
# Filename of an object (with path)
file_key_name = event['Records'][0]['s3']['object']['key']
# Copy Source Object
copy_source_object = {'Bucket': source_bucket_name, 'Key': file_key_name}
# S3 copy object operation
s3_client.copy_object(CopySource=copy_source_object, Bucket=destination_bucket_name, Key=file_key_name, StorageClass='GLACIER')
return {
'statusCode': 200,
'body': json.dumps('Hello from S3 events Lambda!')
}
解决方案
推荐阅读
- json - Chatfuel 使用 JSON API 块显示“购买”按钮(通过 Stripe) - FB Messenger
- python - 如何组合数据框中的数据
- angular - 在 Angular 中减去 2 个日期
- wordpress - 如何在 Divi 的此项目符号列表中删除行之间的空格?
- sockets - ESP32 组播 UDP 高损耗(接收)
- jenkins - Jenkins 可以仅通过配置和作业进行备份吗?
- java - 无法使用 Apache POI 写入 Excel
- amazon-web-services - 配置后nginx连接被拒绝
- matlab - Matlab - 多边形和线的交点
- angular - still confused Routing and child Nativescript angular