【发布时间】:2021-07-19 05:52:40
【问题描述】:
我想将几个前缀复制到另一个存储桶中。
我不想使用同步和复制服务。我只想使用 lambda 进行此操作,并且我正在进行迁移,因此数据每 20 分钟输入一次,不需要转换。
谁能帮助我如何使用 AWS Lambda 进行同步和复制?
【问题讨论】:
标签: amazon-web-services amazon-s3 aws-lambda replication
我想将几个前缀复制到另一个存储桶中。
我不想使用同步和复制服务。我只想使用 lambda 进行此操作,并且我正在进行迁移,因此数据每 20 分钟输入一次,不需要转换。
谁能帮助我如何使用 AWS Lambda 进行同步和复制?
【问题讨论】:
标签: amazon-web-services amazon-s3 aws-lambda replication
您可以为 AWS Lambda 函数配置触发器,以便在将对象添加到 Amazon S3 存储桶时调用它。该函数将接收有关触发该函数的对象的信息,包括其 Bucket 和 Key。
您应该编写 Lambda 函数以调用 CopyObject() 以将该对象复制到所需的目标存储桶。下面是一个 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}
)
【讨论】: