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

最終更新日: 2021 年 6 月 28 日

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.    オプトアウトされた電話番号を表示するには、[オプトアウトした電話番号] セクションに移動します。