SES: fix infinite loop with SNS event destination #12972
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
While testing an SES/SNS sample, we encountered an issue where sending an email with SES with an SNS event destination configured that would have another SES subscriber, it would trigger an infinite loop.
There were 2 problems:
send
anddelivery
notification even if you didn't configure itConfigurationSet
, even if you did not specify aConfigurationSetName
. SES only sends event notification if you pass aConfigurationSetName
becauseEventDestinations
are inherently linked to a configuration set, see https://docs.aws.amazon.com/ses/latest/dg/monitor-sending-using-event-publishing-setup.htmlThere is still one somewhat big issue because Moto only accepts one
EventDestination
per configuration set, even if AWS accepts multiple, Moto will overwrite it every time you callCreateConfigurationSetEventDestination
, but this is out of scope.Changes
SNSEmitter
and add new kind of destinations