Лямбда-Триггер AWS S3 Не работает При Загрузке во Вложенную папку Корзины

#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.