テクノロジーの進化は日々加速しています。
そして、私たちのコミュニケーション方法も大きく変わりつつあります。
特に、SMS(ショートメッセージサービス)の利用は、個人からビジネスまで幅広く活用されています。
しかし、多くの人にとって、クラウドサービスを使ったSMS送信は未知の領域かもしれません。
そこで、この記事では、Amazon Simple Notification Service(Amazon SNS)を使って、
誰でも簡単にSMSを送信する方法をご紹介します。
初心者の方でもわずか1時間で学べる内容となっています。
この記事を読み終える頃には、自信を持ってSMS送信を行えるようになっているでしょう。
Amazon SNSとは?
Amazon SNSとは、Amazon Simple Notification Serviceのことです。
Amazon SNSは、フルマネージド型のパブリッシュ/サブスクライブ(Pub/Sub)メッセージングサービスです。
SNSと言うと、「ソーシャル・ネットワーキング・サービス」を思い浮かべます。
でも、それとは全然関係ありません。
Amazon SNS、主にメッセージ配信を可能にするサービスです。
- アラート通知
- モバイルプッシュ通知
- メールまたはSMS通知
- システム間通信
今回は、SMS通知を最速で試すための方法を説明します。
Lambdaに慣れていれば、30分もかからないでしょう。
実際に動くモノを目にするだけでも、技術者としては非常に安心できます。
理屈だけだと、どうしても不安が残ってしまいます。
送信先電話番号の登録
コンソールからAmazon SNSを利用します。
「電話番号を追加」ボタンをクリックして、電話番号を登録します。
とりあえず、ここでは自分の携帯電話番号で良いでしょう。
日本の国番号「+81」から始まる番号を登録します。
「090-1234-5678」であれば、初めの「0」は省略します。
そして、「+819012345678」を登録することになります。
ここまで出来たら、Amazon SNS側での処理は完了です。
と言っても、あくまで開発環境(サンドボックス)の話になります。
Lambda関数の登録
コードは、以下。
import boto3 from botocore.exceptions import ClientError def lambda_handler(event, context): sns_client = boto3.client('sns') try: response = sns_client.publish( PhoneNumber="+819012345678", # 送信先の電話番号 Message="Lambda関数の検証です。", # 送信するメッセージ ) return response except ClientError as e: print(e.response['Error']['Message']) return None
サンドボックスのため、先ほど登録した検証済みの電話番号を設定します。
これだけでOKです。
ただ、関数を作っただけではダメです。
登録した関数に権限を割り当てる必要があります。
今回は、「my_test004」という名前により、次の条件で関数を作成しています。
そうすると、IAMの画面でその関数のロールを確認できます。
このロールに、「AmazonSNSFullAccess」のポリシーをアタッチします。
これにより、作成した関数からAmazon SNSの機能を利用できるようになります。
そして、関数を実行するとスマホにSMSが届きます。
Lambdaを利用すると、たったこれだけで済みます。