AWS SNS で unsubscribe できないようにする方法
間違って unsubscribe しないようにするための手順メモ。
AWS CLI 環境を用意する
SNS トピック購読時の URL を用意する
https://sns.ap-northeast-1.amazonaws.com/confirmation.html?TopicArn=arn:aws:sns:ap-northeast-1:123456...
みたいな URL。
URL の構造
本当は一行だけど、パラメータごとに改行したら、以下のような感じ。
https://sns.ap-northeast-1.amazonaws.com/confirmation.html?
TopicArn=arn:aws:sns:ap-northeast-1:1234567890:XXXXYYYYZZZZ&
Token=やたら長いトークン&
Endpoint=hogehoge@sample.com
前項の URL の情報からコマンドラインを作成する
本当は一行だけど、パラメータごとに改行したら、以下のような感じ。
aws sns confirm-subscription
--topic-arn arn:aws:sns:ap-northeast-1:1234567890:XXXXYYYYZZZZ
--token やたら長いトークン
--authenticate-on-unsubscribe true
--region ap-northeast-1
AWS CLI の環境で、前項で作成したコマンドを実行する
> aws sns confirm-subscription --topic-arn arn:aws:sns:ap-northeast-1:*** --token *** --authenticate-on-unsubscribe true --region ap-northeast-1
を実行して成功すると、以下のような出力が得られます。
{
"SubscriptionArn": "arn:aws:sns:ap-northeast-1:***"
}
動作確認
購読した時の unsubscribe リンクを押してみる。(以下の「赤線」部分)
以下のように「Subscription not removed」と表示されて、無効化できていることが確認できます。
参考リンク
unsubscribe - AWS CLI
https://docs.aws.amazon.com/cli/latest/reference/sns/unsubscribe.html
Amazon SNS メール通知の「unsubscribe」リンクを無効化する
https://dev.classmethod.jp/cloud/aws/amazon-sns-disable-unsubscribe-link