LoginSignup
0
0

More than 3 years have passed since last update.

CDKでAWS 環境の作成 SNS編

Last updated at Posted at 2020-12-13

概要

CDKを使ってAWS環境を作成するときの方法についてまとめていこうと思います。
今回は前回作成したCDKの定義にSNSの定義を追加してみました。

準備

  • 準備部分は前回等を参照してください。

  • メールアドレスを変更する場合はパラメータストアから値を取得しなおすためcdk.context.jsonを一度削除してください。

コンパイルの準備

  • ライブラリインストール後にプロジェクトを作成したディレクトリに移動して以下のコマンドを実行します。windowsの場合はライブラリのインストール時には停止する必要があるので注意を
    • npm run watch

各モジュールの説明

  • モジュールはgithubで公開しています。今回追加した部分のみ追記します。
  • /rds-s3

    • SNSの設定を追加しています。
    • ./bin/rds-s3.ts の方で以下のように設定することで複数のソースの定義を使えるようにしています。今回追加部分のみ抜粋しています。

          import { CdkSnsStack } from '../lib/cdk-sns-stack';
      
          new CdkSnsStack(app,'CdkSnsStack',{
              env: {
                  region: 'ap-northeast-1',
                  account: env.AWS_ACCOUNT,
          }});
      
      
    • デプロイするときはStack名を指定して実施します。ワイルドカードの指定も可能です。

      • cdk deploy * または cdk deploy CdkSnsStack の用に指定します。

CDKの定義

  • SNS

    • サブスクリプション用のメールアドレスをパラメータストアから取得するようにしています。
    • 必要に応じて外部のファイルからメールアドレスを複数取得する方法にするといいかもしれません。
    • サブスクリプションは他にも選択できるので必要に応じて変えてみるのもよさそうです。

      
          const topic = new sns.Topic(this, 'Topic', {
              displayName: 'Customer subscription topic',
              topicName:'cdk-sns-topic'
          });  
      
          const subscriptionMail=ssm.StringParameter.valueFromLookup(this,'/sns/subscriptionMail');
      
          topic.addSubscription(new subscriptions.EmailSubscription(subscriptionMail));
          }
      
      
    • デプロイ後に登録したメールアドレスに確認用のメールが届くのでサブスクリプションを有効にするのを忘れずに。

    • 以下のようなメールが来ます。
      image.png

    • 有効にすると以下のような画面が出ます。
      image.png

SNSの送信

作成したSNSの使用コード例です

  • pythonで実装しています。
  • プログラム内で例えば処理件数などを通知したいときに手軽に実装できます。

import boto3
TOPIC_ARN = u'arn:aws:sns:ap-northeast-1:238836858026:cdk-sns-topic'
msg = 'テストメッセージ'
subject = u'テストタイトル'
client = boto3.client('sns')
request = {
'TopicArn': TOPIC_ARN,
'Message': msg,
'Subject': subject
}
response = client.publish(**request)

response['ResponseMetadata']['HTTPStatusCode']

  • メールは以下のような形で届きます。 image.png
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0