■ はじめに
https://dk521123.hatenablog.com/entry/2021/06/03/175213
の続きで、Amazon Simple Notification Service(SNS)について。
https://dk521123.hatenablog.com/entry/2021/10/06/141323
で、Airflow において、 Amazon SNS経由でEmailを受信することになったので メモしておく
目次
【1】Amazon SES との違い 【2】構築手順 1)トピックを作成する 2)Email用のサブスクリプションを作成する 3)Email受信を許可する 4)動作確認 【3】サンプル 例1:AirflowでSNS経由でEmailを受信する
【1】Amazon SES との違い
* SES は、フルマネージド側Emailサーバ的なサービス(送受信) * SNS は、Emailを含めたユーザへの通知を重きをおいた フルマネージド側サービス
比較表
* それ以外の違いは、以下の比較表を参照のこと。 => 使ってみると、結構、違いがあるので、 サービス採用する際に知っておいた方がいいかも。 => 細かいことをやりたい場合は、SESを選択しておいた方がいいかも。 => Amazon SES については、以下の関連記事を参照とのこと
https://dk521123.hatenablog.com/entry/2017/04/28/234103
# | 項目 | SNS | SES | 備考 |
---|---|---|---|---|
1 | HTMLメール | 不可 | 可能 | SNSはTextのみ |
2 | 添付ファイル | 不可 | 可能 | |
3 | Fromメールアドレスの事前登録 | 不要 | 必要 | SNSはno-reply@sns.amazonaws.comから送られてくる |
参考文献
https://qiita.com/shiro01/items/94aad0210917422d105f
* 現状、Amazon SESは、東京リージョンも対応されている模様 => 以下の公式サイトを参照のこと。
https://aws.amazon.com/jp/blogs/news/amazon-ses-tokyo/
【2】構築手順
* Amazon SNSでEmailを設定する手順は以下の通り。 1)トピックを作成する 2)Email用のサブスクリプションを作成する 3)Email受信を許可する
1)トピックを作成する
[1] AWS管理コンソールでSNSページを表示する [2] 「トピックの作成」ボタン押下 [3] 以下を選択し、「トピックの作成」ボタン押下 (特に指定しない項目は、デフォルトのまま) + タイプ:スタンダード + 名前:任意(今回は「hello-world-sns-demo」) + 表示名:任意(今回は「hello-world-sns-demo」)
2)Email用のサブスクリプションを作成する
「1)トピックを作成する」の流れで、、、 [1] 「サブスクリプションの作成」ボタン押下 [2] 以下を選択し、「サブスクリプションの作成」ボタン押下 (特に指定しない項目は、デフォルトのまま) + プロトコル:Eメール + エンドポイント:対象のEmailアドレス => 「Amazon SNSから通知を受信できるメールアドレス」 って表示されているのでわかると思う
3)Email受信を許可する
「2)Email用のサブスクリプションを作成する」を行うと エンドポイントに指定されたEmailアドレスに以下のメールが届く。 + タイトル:AWS Notification - Subscription Confirmation + From:{Topic name}<no-reply@sns.amazonaws.com> ({Topic name}は、今回は「hello-world-sns-demo」) そのメール内のリンク「Confirm subscription」を押下する => これで、SNSでメール受信することを承諾したことになる。
4)動作確認
「3)Email受信を許可する」の流れで、、、 [1] 作成したトピックのページ内にある「メッセージの発行」ボタン押下 [2] 以下を入力し、「メッセージの発行」ボタン押下 + 件名:任意のASCII文字(今回「Hello World」) ... ※ + エンドポイントに送信するメッセージ本文:任意(今回「こんにちは世界」) => 設定したアドレスにメールが届いているはず。
※ 使用上の注意
* 件名(Subject)に日本語は入力できない(入力したらエラー表示) => ただ、API経由なら使えるっぽい * 件名(Subject)は、100文字以内 => 以下のAPI仕様より抜粋、「must be less than 100 characters long」
=> 詳細は、以下の関連記事を参照のこと。
https://dk521123.hatenablog.com/entry/2022/02/03/151049
【3】サンプル
例1:AirflowでSNS経由でEmailを受信する
* 以下の関連記事を参照のこと。
Apache Airflow ~ 通知サンプル編 ~
https://dk521123.hatenablog.com/entry/2021/10/09/000000
関連記事
Amazon SNS ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2021/06/03/175213
Amazon SNS ~ AWS CLI ~
https://dk521123.hatenablog.com/entry/2024/02/21/141346
Amazon SNS に関するトラブル
https://dk521123.hatenablog.com/entry/2022/02/03/151049
Amazon SES ~ Emailサービス ~
https://dk521123.hatenablog.com/entry/2017/04/28/234103
Apache Airflow ~ 通知あれこれ編 ~
https://dk521123.hatenablog.com/entry/2021/10/06/141323
Apache Airflow ~ 通知サンプル編 ~
https://dk521123.hatenablog.com/entry/2021/10/09/000000
Apache Airflow に関するトラブル
https://dk521123.hatenablog.com/entry/2021/10/03/000000