Я внедрил панель мониторинга Daily Complaint & Bounce back для SES, выполнив следующие шаги:
- Создан SNS для получения отказов и жалоб.
- Созданная очередь SQS собирает уведомления об отказах и жалобах от Amazon SNS и передает их в функцию AWS Lambda для дальнейшей обработки.
- Создан контейнер S3, в котором хранятся информационные панели, сгенерированные функцией Lambda.
- Настроенные уведомления об отказах и жалобах в Amazon SES. Он будет хранить уведомления в SQS
- Создание лямбда-функции AWS. Функция обрабатывает уведомления о сбоях и жалобах в очереди Amazon SQS, создает новые панели мониторинга и отправляет их по электронной почте по указанным вами адресам.
- Сконфигурированные триггеры в Amazon CloudWatch, которые планируют запуск лямбда-функции по заданному вами расписанию.
Проблема: Когда срабатывает функция Lambda, становится ошибка ниже, и по электронной почте не появляется ежедневный отчет панели инструментов. А также не хранится приборная панель в ведре S3. Я использовал версию Node.js 6.10 и непосредственно загружал папку SESreport.zip.
Ошибка:
TypeError: Cannot read property 'source' of undefined
at Response.sqs.receiveMessage (/var/task/index.js:128:42)
at Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:364:18)
at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:105:20)
at Request.emit (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:77:10)
at Request.emit (/var/runtime/node_modules/aws-sdk/lib/request.js:683:14)
at Request.transition (/var/runtime/node_modules/aws-sdk/lib/request.js:22:10)
at AcceptorStateMachine.runTo (/var/runtime/node_modules/aws-sdk/lib/state_machine.js:14:12)
at /var/runtime/node_modules/aws-sdk/lib/state_machine.js:26:10
at Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:38:9)