📝
S3 バケットへのアップロードをトリガーに End User Messaging から SMS を送信してみた

上記構成で SMS を送信してみました。
1. S3 バケットの作成
デフォルト設定で S3 バケットを作成しました。

2. End User Messaging の設定
Integrating SMS capabilities with AWS End User Messaging
基本的には上記ワークショップの流れおよび End User Messaging コンソールの「クイックスタート - SMS セットアップガイド」に沿って設定しました。

- 電話プール
- 発信者タイプ: 電話番号
- 関連付けに使用できる番号: シミュレーター番号をリクエスト
- 設定セット
- CloudFormation での自動作成
- 保護設定
- SMS に関する国ルール: Asia のすべての国を許可
- 関連付けタイプ: アカウントのデフォルト
- SMS シミュレーター
- 発信者: 作成済みの電話プール
- 送信先番号: 認証済み番号 (手持ちの携帯番号)
- 設定セット: 作成済みの設定セット
- 保護設定: 作成済みの保護設定
- メッセージ本文: test
最後のシミュレーターで SMS を受信できれば OK です。
3. Lambda 関数の作成
以下の設定で作成しました。
- ランタイム: Python 3.13
- IAM ロール: AdministratorAccess 権限を付与
- コード: 以下の通り
import boto3
def lambda_handler(event, context):
# S3イベントから情報を取得
bucket_name = event['Records'][0]['s3']['bucket']['name']
file_name = event['Records'][0]['s3']['object']['key']
# SMS送信
sms_client = boto3.client('pinpoint-sms-voice-v2', region_name='ap-northeast-1')
response = sms_client.send_text_message(
DestinationPhoneNumber='+81your-phone-number',
OriginationIdentity='your-pool-id',
MessageBody=f'ファイルがアップロードされました\nバケット: {bucket_name}\nファイル: {file_name}',
MessageType='TRANSACTIONAL'
)
return response['MessageId']
4. 動作確認
手順 1 で作成した S3 バケットに適当なファイルをアップロードして以下のような SMS を受信できれば成功です。
ファイルがアップロードされました
バケット: bucket-name
ファイル: file-name

まとめ
今回は S3 バケットへのアップロードをトリガーに End User Messaging から SMS を送信してみました。
どなたかの参考になれば幸いです。
Discussion