Лямбда-функция AWS для запуска копирования из исходного s3 в целевой s3 всякий раз, когда zip-файл загружается в исходную корзину - PullRequest
0 голосов
/ 14 марта 2019

Я создал лямбда-функцию, основанную на событиях, которая копирует zip-файл из исходного s3 в целевой s3 всякий раз, когда zip-файл загружается в исходный сегмент s3. Ниже приведена лямбда-функция в python:

from __future__ import print_function
import json
import urllib
import boto3
print('Loading function')
s3 = boto3.client('s3')

def lambda_handler(event, context):
  bucket = event['Records'][0]['s3']['bucket']['name']
  key = urllib.unquote_plus(event['Records'][0]['s3']['object'] 
      ['key'].encode("utf8"))
  target_bucket =  'bucket name'
  copy_source = {'Bucket' :bucket , 'Key' : key}
  try:
    response = s3.get_object(Bucket=bucket, Key=key)
    print("CONTENT TYPE: " + response['ContentType'])
    return response['ContentType']
    print("copying from source to target")
    s3.copy_object(Bucket=target_bucket, 
            Key=key,CopySource=copy_source)
  except Exception as e: 
    print(e)
    print('Error getting object {} from bucket {}. Make sure they 
          exist and your bucket is in the same region as this 
            function.'.format(key, bucket))
    raise e

Ниже приведено сообщение об ошибке, полученное при выполнении кода:

'Records': KeyError Traceback (most recent call last):
  File "/var/task/lambda_function.py", line 13, in lambda_handler
    bucket = event['Records'][0]['s3']['bucket']['name']
KeyError: 'Records'

Любая помощь, чтобы решить эту проблему будет принята.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...