如何通过AWS Lambda功能复制到达AmazonS3的对象



我想将一些前缀复制到另一个bucket中。

我不想使用同步和复制服务。我只想用lambda来做这件事,而且我正在进行迁移,所以数据每20分钟就会到来一次,不需要转换。

有人能帮我如何使用AWS Lambda进行同步和复制吗?

您可以为AWS Lambda函数配置触发器,以便在将对象添加到Amazon S3存储桶时调用它。该功能将接收有关触发该功能的对象的信息,包括其Bucket和Key。

您应该对Lambda函数进行编码以调用CopyObject(),从而将该对象复制到所需的目标bucket中。以下是Python中的一个示例:

import boto3
import urllib
def lambda_handler(event, context):

TARGET_BUCKET = 'my-target-bucket'
# Get the bucket and object key from the Event
bucket = event['Records'][0]['s3']['bucket']['name']
key = urllib.parse.unquote_plus(event['Records'][0]['s3']['object']['key'])

# Copy object
s3_client = boto3.client('s3')
s3_client.copy_object(
Bucket = TARGET_BUCKET,
Key = key,
CopySource= {'Bucket': bucket, 'Key': key}
)

最新更新