Earlier quoted context omitted.
SQS is not "exactly once", so might not meet their requirements.
sqs has fifo queues which claim to be exactly once
Either way your listener(s) still has to have its own deduplication. Ensuring a message ends up on the queue only once, and ensuring it's processed exactly once, are two different problems that require separate handling (and, the former is what most out of the box systems claim to solve, while the latter is more important, and, frankly, completely negates the need of the former).