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)がコードに書くリージョンに当たる。
あとは実行すれば通知がくる。
実行結果