【问题标题】:How to replicate objects arriving in Amazon S3 via an AWS Lambda function如何通过 AWS Lambda 函数复制到达 Amazon S3 的对象
【发布时间】:2021-07-19 05:52:40
【问题描述】:

我想将几个前缀复制到另一个存储桶中。

我不想使用同步和复制服务。我只想使用 lambda 进行此操作,并且我正在进行迁移,因此数据每 20 分钟输入一次,不需要转换。

谁能帮助我如何使用 AWS Lambda 进行同步和复制?

【问题讨论】:

    标签: amazon-web-services amazon-s3 aws-lambda replication


    【解决方案1】:

    您可以为 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}
        )
    

    【讨论】:

      猜你喜欢
      • 2015-04-09
      • 2017-01-01
      • 1970-01-01
      • 2016-11-30
      • 1970-01-01
      • 2019-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多