Отсутствующие события s3 в AWS SQS - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть функция AWS Lambda, которая должна запускаться сообщениями из SQS Simple Queue Service. Предполагается, что этот SQS получит уведомление, когда новый файл json будет записан в мою корзину s3, или когда существующий файл json в корзине s3 будет перезаписан. Тип события для обоих случаев - s3: ObjectCreated, и я вижу уведомление для обоих случаев - это мой SQS. Теперь проблема в том, что довольно часто появляется новый файл в s3 (или обновляется существующий файл в s3), но в sqs нет соответствующего сообщения! Так много файлов отсутствует, и Lambda не знает, что их нужно обрабатывать. В Lambda я печатаю весь контент полученной полезной нагрузки SQS в файл журнала, а затем пытаюсь найти эти пропущенные файлы с чем-то вроде aws --profile aaa logs filter-log-events --log-group-name /aws/lambda/name --start-time 1554357600000 --end-time 1554396561982 --filter-pattern "missing_file_name_pattern", но ничего не могу найти, что означает, что событие s3: objectCreated не было сгенерировано для этого пропавшего файл. Существуют ли какие-либо условия, которые предотвращают события s3: objectCreated для новых / обновленных файлов s3? Есть ли способ это исправить? Или может быть какой-то обходной путь?

1 Ответ

0 голосов
/ 15 апреля 2019

Две возможности:

  1. Некоторые события могут быть отложены или вообще не отправлены : "Уведомления о событиях Amazon S3 обычно доставляют события в считанные секунды, но могутиногда занимает минуту или дольше. В очень редких случаях события могут быть потеряны. ", хотя это очень редко.

  2. У вас есть какая-то ошибка и лямбда непечатая то, что вы ожидаете при обработке этого сообщения / вы не правильно ищете журнал.

В SQS также следует убедиться, что все записи были загружены и обработаны успешно.

...