SMS メッセージの Amazon SNS トピック配信ログにアクセスする方法を教えてください。

所要時間2分
0

SMS メッセージの Amazon Simple Notification Service (Amazon SNS) トピック配信ログにアクセスしたいと考えています。

解決策

Amazon CloudWatch Logs の SMS 配信ステータス属性を設定する

注: 以下のコンソールステップの代わりに、AWS SDK または AWS コマンドラインインターフェイス (AWS CLI) を使用してメッセージ配信ステータスを設定できます。AWS CLI のコマンドの実行時にエラーが発生する場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

  1. Amazon SNS コンソールを開きます。

  2. ナビゲーションペインで、[モバイル] を展開し、[テキストメッセージ (SMS)] を選択します。

  3. [テキストメッセージ設定] セクションで、[編集] を選択します。

  4. [配信ステータスのログ記録 - オプション] を展開します。

  5. **[成功サンプルレート][%]**テキストボックスに「100」と入力します。

    注: 成功率は、ログに記録されるメッセージ配信の成功率です。

  6. [IAM ロール] セクションの [サービスロール] で、[新しいサービスロールの作成] を選択し、[新しいロールの作成] を選択します。AWS ID およびアクセス管理 (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. ナビゲーションペインで [ログ] を展開し、次に [ロググループ] を選択します。

  3. フィルター検索ボックスにDirectPublishToPhoneNumber と入力すると、Amazon SNS の SMS ロググループのみを検索できます。

    : 送信先の電話番号の通信事業者によっては、Amazon SNS コンソールに配信ログが表示されるまでに最大 72 時間かかることがあります。

    例:

    sns/your-AWS-region/your-AWS-account-ID/DirectPublishToPhoneNumber ロググループには、成功した配信のログが含まれています。

    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"
    }

    sns/your-AWS-region/your-AWS-account-ID/DirectPublishToPhoneNumber/Failure ロググループには、失敗した配信のログが含まれています。

    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 メッセージプリファレンスを設定する

SMS 配信の Amazon CloudWatch メトリクスおよびログを表示する