#amazon-s3 #aws-lambda
#amazon-s3 #aws-lambda
Вопрос:
У меня есть лямбда-функция AWS, которая запускается всякий раз, когда в корзине s3 происходит отправка объекта, и я также добавил функциональность, которая отправляет уведомление по электронной почте, если в лямбда-функции есть какая-либо ошибка.
Для некоторых данных это работает нормально, то есть всякий раз, когда в s3 происходит операция PUT, лямбда-функция принимает данные и обрабатывает их должным образом. Но я получаю сообщение об ошибке от lambda, в котором говорится «ошибка: указанный префикс S3 ‘<file_path>’ не существует», и когда я проверил путь s3, файл там не существует.
Также для объектов нет времени истечения срока действия.
Итак, у кого-нибудь есть какие-либо идеи, почему функция lambda запускается, когда по определенному пути нет файла?
Комментарии:
1. Как файл загружается в корзину s3? Триггер S3 настроен для какого типа операций в корзине s3?
2. Можете ли вы также предоставить соответствующий лямбда-код?
3. Триггер s3 настроен для запуска объекта. Существует один API, который помещает объект в s3, и как только объект находится в s3, срабатывает lambda.
4. Это не должно быть возможно. Вероятно, этому есть объяснение, например, лямбда-функция не извлекает правильный ключ или объект удаляется другим процессом. Вы должны добавить отладочный код, чтобы увидеть сегмент и ключ, который передается функции, а затем проверить, присутствует ли объект.
5. Можете ли вы также поделиться соответствующим лямбда-кодом?
Ответ №1:
Используете ли вы ‘/ tmp / ..’ в своем префиксе s3?
например.
path = f"/tmp/myobject.json"
Комментарии:
1. Нет, ничего похожего на ‘/tmp/’.