S3 событие putObject - получена более старая версия - PullRequest
0 голосов
/ 24 апреля 2020

Я настраиваю событие cloudwatch для запуска на объекте s3 put и вызова лямбда-функции. Я могу успешно запустить функцию, и вот пример кода, который я пытаюсь запустить.

exports.handler = function(event, context, callback) {
   console.log("Incoming Event: ", event);
   print("please");
   const bucket = event.Records[0].s3.bucket.name;
   const filename = decodeURIComponent(event.Records[0].s3.object.key.replace(/\+/g, ' '));
   const message = `File is uploaded in - ${bucket} -> ${filename}`;
   console.log(message);
   callback(null, message);
};

Я получаю сообщение об ошибке, так как данные события не содержат свойство «Записи». Я проверил AWS документы , и данные события должны содержать «Записи». Версия, показанная в документации: "eventVersion": "2.2" . В данных события я получаю версию как: eventVersion: '1.07'

Нужна ли какая-то дополнительная конфигурация для этой работы?

Вот то, что мой облачный час Событие выглядит так: enter image description here

1 Ответ

2 голосов
/ 24 апреля 2020

Вы настроили события API CloudTrail. Формат этих событий отличается от уведомлений о событиях, сгенерированных из S3 (документы, с которыми вы связаны).

Если вы go добавили в корзину S3 и применили там триггер события, он будет в формате ты ожидал См. Настройка уведомлений о событиях .

...