Amazon SNSでSMSに通知を送る

SNSでのSMSへの通知

一つ以上の電話番号に通知メッセージを送信できる。トピックと違い、初回の認証の必要は無い。

AmazonSNSの操作

AmazonSNSの手順は別記事にて紹介しています。

python(boto3)を使ってAmazon SNSでメールを送信してみた。

SMSとメールで手順の違う部分は、ステップ2の
プロトコル選択がSMSエンドポイントが電話番号(E.164形式)の二点。

AWS SDK for Python(boto3)で送信

  • まずIAMユーザを作成し、アクセスキーを取得する。
     →https://console.aws.amazon.com/iam/home#/homeにアクセス
     →ユーザーを選択
     →ユーザーを追加をクリック
     →ユーザー名を入力し、アクセスの種類:プログラムによるアクセスにチェックを入れ、次へ
     →アクセス許可の設定:AmazonSNSFullAccessにチェックを入れ、次へ
      (不安がある場合にはPublishの権限があるロールをアサインしてください。)
     →ユーザーの作成をクリックすると、アクセスキーIDシークレットアクセスキーが表示できるので、どこかにメモしておく


  • boto3を使い、Pythonでコードを書く
import boto3

accesskey = '[アクセスキーID]'
secretkey = '[シークレットアクセスキー]'
region = '[リージョン]'

sns = boto3.client('sns', aws_access_key_id=accesskey, aws_secret_access_key=secretkey, region_name=region)

response = sns.publish(
        PhoneNumber = '[電話番号(E.164形式)]',
        Subject = '[タイトル]',
        Message = '[本文]'
        )

PhoneNumberをパラメータに指定したくない場合、TargetArnの値(TopicArn/EndpointArnのいずれか)を指定

リージョンAmazonSNSでサポートされているリージョン及び国を参照。このサイトに記載されている、サービス対象(ap-northeast-1やus-west-2)がコードに書くリージョンに当たる。

あとは実行すれば通知がくる。

実行結果