SMS メッセージの Amazon Simple Notification Service (Amazon SNS) トピック配信ログにアクセスすることを考えています。
簡単な説明
次の手順を完了する前に、通知メッセージのログ配信ステータスをサポートした SNS エンドポイントを使用していることを確認します。
- HTTP(S)
- Amazon Kinesis Data Firehose
- AWS Lambda
- プラットフォームアプリケーションエンドポイント
- Amazon Simple Queue Service (Amazon SQS)
- SMS
注: AWS Command Line Interface (AWS CLI) コマンドの実行中にエラーが発生した場合は、最新の AWS CLI バージョンを使用していることを確認してください。
解決方法
Amazon CloudWatch Logs の SMS 配信ステータス属性を設定する
注: 以下のコンソール手順の代わりに、AWS SDK または AWS CLI を使用してメッセージ配信ステータスを設定できます。
1. Amazon SNS コンソールを開きます。
2. 左にあるナビゲーションメニューを開き、[モバイル] を展開してから [テキストメッセージング (SMS)] をクリックします。
3. [テキストメッセージングの優先設定] セクションで、[編集] を選択します。
4. [配信ステータスのログ記録 - オプション] を展開します。
5. [成功サンプルレート] の [%] テキストボックスに「100」と入力します。
注: 成功レートは、成功したログへのメッセージ配信の割合です。
6. IAM ロールセクションで、サービスロールの場合は、[新しいサービスロールの作成] を選択し、[新しいロールの作成] を選択します。AWS Identity and Access Management (IAM) コンソールが開きます。
注: 適切なアクセス許可を持つ IAM ロールがすでにある場合は、代わりに [既存サービスロールの使用] を選択して、そのサービスロールを使用できます。
7. IAM コンソールのアクセス許可のリクエストページで、[許可] を選択します。
8. Amazon SNS コンソールに戻ったら、[変更を保存] を選択します。
これで、Amazon SNS の以下のポリシーと信頼関係を使用して、正常に配信および失敗した配信のための IAM ロールが作成されました。
IAM ロール:
arn:aws:iam::1111111111:role/SNSSuccessFeedback
ポリシー:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
"logs:PutMetricFilter",
"logs:PutRetentionPolicy"
],
"Resource": [
"*"
]
}
]
}
信頼関係:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "sns.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
配信ステータスのログを表示
1. Amazon CloudWatch コンソールを開きます。
2. ナビゲーションペインで、[Windows ログ] を展開し、[システム] を選択します。
3. [フィルタ検索] ボックスに「DirectPublishToPhoneNumber」を入力して、Amazon SNS の SMS ロググループのみを検索します。
注: 送信先の電話番号の電話会社によっては、Amazon SNS コンソールに配信ログが表示されるまでに最大 72 時間かかる場合があります。
以下はその例です。
The sns/your-AWS-region/your-AWS-account-ID/DirectPublishToPhoneNumber log group contains the successful delivery logs:
sns/us-east-1/1111111111/DirectPublishToPhoneNumber
成功した配信ログの例:
{
"notification": {
"messageId": "34d9b400-c6dd-5444-820d-fbeb0f1f54cf",
"timestamp": "2016-06-28 00:40:34.558"
},
"delivery": {
"phoneCarrier": "My Phone Carrier",
"mnc": 270,
"destination": "+1XXX5550100",
"priceInUSD": 0.00645,
"smsType": "Transactional",
"mcc": 310,
"providerResponse": "Message has been accepted by phone carrier",
"dwellTimeMs": 599,
"dwellTimeMsUntilDeviceAck": 1344
},
"status": "SUCCESS"
}
The sns/your-AWS-region/your-AWS-account-ID/DirectPublishToPhoneNumber/Failure log group contains the failure delivery logs:
sns/us-east-1/1111111111/DirectPublishToPhoneNumber/Failure
失敗した配信ログの例:
{
"notification": {
"messageId": "1077257a-92f3-5ca3-bc97-6a915b310625",
"timestamp": "2016-06-28 00:40:34.559"
},
"delivery": {
"mnc": 0,
"destination": "+1XXX5550100",
"priceInUSD": 0.00645,
"smsType": "Transactional",
"mcc": 0,
"providerResponse": "Unknown error attempting to reach phone",
"dwellTimeMs": 1420,
"dwellTimeMsUntilDeviceAck": 1692
},
"status": "FAILURE"
}
4. 表示する SNS ロググループを選択します。
5. [ログストリーム] タブで、特定のログストリームを選択して SMS 配信ログを表示します。
6. SMS メッセージの配信ステータスを確認するには、ログイベントを展開し、providerResponse をチェックします。
オプトアウトされた電話番号を表示する
受信者は、AWS アカウントからの電話での SMS メッセージの受信をオプトアウトできます。詳細については、「SMS メッセージの受信のオプトアウト」をご参照ください。
1. Amazon SNS コンソールを開きます。
2. ナビゲーションペインで、[モバイル] セクションを展開し、[テキストメッセージング (SMS)] を選択します。
3. オプトアウトされた電話番号を表示するには、[オプトアウトした電話番号] セクションに移動します。
関連情報
CloudWatch を使用した Amazon SNS トピックのモニタリング
SMS メッセージプリファレンスの設定
Amazon CloudWatch メトリクスと SMS 配信ログの表示