[AWS]SNSの設定方法 〜Eメール編〜

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);
  }
});

通知が来ることが確認できます。

 

以上