SNSの設定する機会があったので、備忘として書きたいと思います。
今回は表題にあるように、Eメールアドレスに送信する設定方法について書きます。
Eメール以外にもSMSやLambda連携することができます。
SNSとは
SNS(Simple Notification Service)とは、メッセージングサービスで、アプリケーションが完了した後に、メール通知したりできます。具体的には以下のサービスと連携が可能です。
- Lambda
- SQS
- HTTP/S
- Eメール
- SMS
今回は、Eメールに通知する方法する設定について書きます。
手順
1.SNSから[Create topic]を選択します。
2.[topic name]のところにトピック名称を入力します。その後、[Create topic]を選択すると、トピックが作成されます。
3.トピックが作成されたので、[Create subscription]を選択してSubscriptionの設定をしていきます。
4.Protocolを[Email]を選択し、EndpointにEメールアドレスを入力します。その後、[Create subscription]を選択します。
5.作成されましたが、[pendingCofirmation]となっているので、認証をします。
入力したEメールアドレスに確認メールが送られてきます。
6.本文中の[Confirm subscription]を選択するとリンク先URLへ飛びます。
7.[Subscription confirmed!]と表示されるかと思います。これでSNSの認証は完了です。
8.Pendingではなくなり、Subscription IDが表示されるようになります。
検証
実際に設定した宛先のEメールアドレスに通知が来るのか、確認してみます。
以下、Node.jsのコードを元に確認します。[アカウントID]のところにAWSアカウントIDを入れて下さい。
const AWS = require('aws-sdk'); const sns = new AWS.SNS({region: 'ap-northeast-1'}); let params = { Message: 'test-messages', MessageStructure: 'Message', Subject: 'test-subject', TopicArn: 'arn:aws:sns:ap-northeast-1:[アカウントID]:test-topic' }; sns.publish(params, function(err, data) { if (err) { console.log(err, err.stack); } else { console.log(data); } });
通知が来ることが確認できます。
以上