Я создал лямбда-функцию, основанную на событиях, которая копирует 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'
Любая помощь, чтобы решить эту проблему будет принята.