Я хотел бы получить некоторые метаданные, которые я добавил (используя консоль x-amz-meta-my_variable) каждый раз, когда я загружаю объект в S3.Доступ к метаданным из AWS S3 с AWS Lambda
Я настроил лямбду через консоль, чтобы вызвать каждый раз, когда объект загруженный в ведро
Я интересно, если я могу использовать что-то вроде variable = event['Records'][0]['s3']['object']['my_variable']
, чтобы получить эти данные, или если я должен подключить обратно S3 с ведром и ключом, а затем вызвать некоторую функцию для ее получения?
Ниже приведен код:
from __future__ import print_function
import json
import urllib
import boto3
print('Loading function')
s3 = boto3.client('s3')
def lambda_handler(event, context):
# Get the object from the event and show its content type
bucket = event['Records'][0]['s3']['bucket']['name']
key = urllib.unquote_plus(event['Records'][0]['s3']['object']['key']).decode('utf8')
# variable = event['Records'][0]['s3']['object']['my_variable']
try:
response = s3.get_object(Bucket=bucket, Key=key)
# Call some function here?
print("CONTENT TYPE: " + response['ContentType'])
return response['ContentType']
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
Я не нашел какое-либо авторитетное документацию на то, что включается в событиях S3, посланных к функции лямбды. Мое предложение состояло в том, чтобы зарегистрировать событие, а затем проверить журнал, чтобы узнать, включена ли информация в событие. – garnaat
Документацию о том, что входит в события S3, можно найти здесь: https://docs.aws.amazon.com/AmazonS3/latest/dev/notification-content-structure.html. Жаль, что метаданные не включены :( – tramwaj29