wlandgraf
(Wagner Landgraf)
8월 12, 2021, 3:22오후
1
Discourse가 Amazon SES의 SNS 알림을 처리하기 위한 엔드포인트를 제공한다는 사실을 알고 있었습니다. 해당 엔드포인트는 /webhooks/aws이며, 아래 링크를 통해 이를 알게 되었습니다:
https://meta.discourse.org/t/handling-bouncing-e-mails/45343/177?u=wlandgraf
모든 것이 “거의” 정상적으로 작동하고 있습니다. CloudWatch 로그를 통해 AWS가 해당 엔드포인트로 알림을 보내고 있는 것을 확인할 수 있으며, 원시 메시지를 보내도록 설정한 후 Discourse가 알림에 대해 성공 상태 코드(200)로 응답하는 것도 확인했습니다.
하지만 이메일이 Discourse의 “Bounced” 이메일 목록에 표시되지 않습니다. 추가로 해야 할 작업이 있을까요? AWS에서 알림을 받은 후 엔드포인트가 실제로 무엇을 수행했는지 보여주는 로그를 어떻게 확인할 수 있을까요?
wlandgraf
(Wagner Landgraf)
8월 12, 2021, 4:01오후
2
좋아요, 실패한 요청에 대한 로그는 찾았지만, 이것이 무엇일 수 있는지 여전히 모르겠어요.
Encoding::UndefinedConversionError ("\xC3" from ASCII-8BIT to UTF-8)
app/jobs/base.rb:314:in `block in enqueue'
lib/mini_sql_multisite_connection.rb:68:in `after_commit'
app/jobs/base.rb:314:in `enqueue'
app/controllers/webhooks_controller.rb:117:in `aws'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:355:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:177:in `call'
wlandgraf
(Wagner Landgraf)
8월 12, 2021, 4:07오후
3
이것과 관련이 있는 것 같습니다: Encoding::UndefinedConversionError from ASCII-8BIT to UTF-8 · Issue #24 · karafka/sidekiq-backend · GitHub .
Discourse는 Amazon SNS에서 받은 JSON을 Sidekiq에 그대로 전달하고 있으며, Sidekiq은 이를 적절하게 처리하지 못하고 있습니다.
또한 webhooks_controller.rb에서 왜 모든 웹훅이 process_bounce를 직접 호출하는 반면, AWS 웹훅만 처리를 위해 작업을 큐에 넣는지 궁금합니다.