Исправление проблемы с отскоками в AWS SNS

Я застрял на шаге 12

Шаги

  1. Создайте доменную идентичность Simple Email Service (SES) — your.domain — в одном из регионов AWS, поддерживающих получение электронной почты
  1. Подтвердите доменную идентичность
  1. Создайте тему Simple Notification Service (SNS) — feedback-sns-topic — для уведомлений об обратной связи
  2. Настройте доменную идентичность your.domain
    a. Включите пересылку обратной связи по электронной почте
    b. Настройте уведомления об отскоках и жалобах (не о доставке), чтобы использовать тему SNS feedback-sns-topic
  3. Создайте подписку на тему SNS feedback-sns-topic
    a. Протокол — HTTPS (вы всё ещё не используете HTTP, верно?)
    b. Укажите конечную точку как https://your.domain/webhooks/aws (см. пост о VERP)
    c. Выберите опцию «Включить доставку необработанных сообщений»
  4. Создайте ещё одну тему SNS — incoming-sns-topic — для входящей электронной почты
  5. Создайте набор правил получения электронной почты SES — inbound-mail-set, если ещё нет активного набора. Если такой уже есть, используйте его, так как может быть только один активный набор правил
  6. Создайте правило получения в наборе правил inbound-mail-set
    a. Установите условие получателя на your.domain
    b. Добавьте действие публикации в тему SNS incoming-sns-topic с кодировкой Base64
  7. Создайте API-ключ в вашем экземпляре Discourse для пользователя system, предоставив действие receive email для ресурса email
  8. Создайте секрет в Secret Manager — email-handler-secret — со следующими ключами и соответствующими значениями:
    • api_endpointhttps://your.domain/admin/email/handle_mail
    • api_key — из шага 9
    • api_usernamesystem, если вы не использовали другое значение на шаге 9
  9. Создайте слой Lambda — lambda-receiver-layer — для среды выполнения python3.10, содержащий библиотеки requests и aws-lambda-powertools
  10. Создайте функцию Lambda — email-receiver-lambda — для среды выполнения python3.10 с кодом получателя: