#python #django #amazon-web-services #amazon-s3 #aws-lambda
Вопрос:
У меня есть функция лямбда-питона, которая изменяет размер изображений при загрузке.
Все работает правильно, но только когда я загружаю непосредственно в bucket
. Когда я загружаю файлы в bucket/uploads/
папку, функция изменения размера больше не запускается.
Я попробовал параметры фильтрации в настройках триггера uploads/
, но безрезультатно.
Доступна ли Create Trigger > S3
опция только для основной корзины?
Вот моя лямбда-функция:
def lambda_handler(event, context):
for record in event["Records"]:
bucket = record["s3"]["bucket"]["name"]
key = record["s3"]["object"]["key"]
download_path = "/tmp/{}{}".format(uuid.uuid4(), key)
upload_path = "/tmp/resized-{}".format(key)
s3_client.download_file(bucket, key, download_path)
Комментарии:
1. Откуда вы знаете, что он не выполняется? Из-за отсутствия журналов CloudWatch для вызова Лямбды или из-за отсутствия файла с измененным размером? И какова конфигурация вашего триггера событий S3?
2. «Предполагая, что это связано с моей лямбда-функцией», пожалуйста, не делайте предположений. Просмотрите журналы функций AWS Lambda и посмотрите, в чем заключается реальная проблема.
3. @jarmod — правильно, никаких журналов CloudWatch, так как лямбда-код даже не вызывается при загрузке файла во вложенную папку. И так как он не работает, размер изображений также не изменяется.
4. @MarkB — Спасибо за предложение. К сожалению, лямбда-журналы недоступны, так как функция даже не запускается при загрузке файла во вложенную папку.
5. Итак, как бы вы ожидали, что проблема будет с вашей лямбда-функцией, если функция не вызывается? Ваше предположение о том, что «это связано с моей лямбда-функцией», кажется совершенно неверным. Вероятно, вам следует включить подробную информацию о конфигурации триггера S3.