FIFOタイプのAWS SNSはメール送信できない

AWSSNSは通知先としてメールやLambdaなどを指定できます。

SNSはベストエフォートなStandardタイプと、順番と通知回数を保証されたFIFOタイプの2タイプあります。

が、FIFOタイプの通知先はSQSしか指定できず、メール送信には使えない。知らなかった。。。

StandardタイプのTopicでは、EmailやLambdaなどいろいろなProtocolのサブスクリプションが使える。 f:id:suzuki-navi:20210520150509p:plain

FIFOタイプのTopicはSQSのみで、Emailがない。 f:id:suzuki-navi:20210520150551p:plain

awscliで設定しようとしてみても同様

$ aws sns subscribe --topic-arn arn:aws:sns:ap-northeast-1:123456789012:xxxx.fifo --protocol email --notification-endpoint foo@example.com
 
 An error occurred (InvalidParameter) when calling the Subscribe operation: Invalid parameter: Invalid protocol type: email

たしかにドキュメントを読むとFIFOではSQSが前提のような書きっぷりである。

Topic作成時の説明にちゃんと書いてあったことにあとから気が付いた。 f:id:suzuki-navi:20210520145140p:plain