プッシュ通知の Amazon SNS トピック配信ログにアクセスするにはどうすればよいでしょうか。

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

プッシュ通知の Amazon Simple Notification Service (Amazon SNS) トピック配信ログにアクセスしたい。

簡単な説明

次のステップを完了する前に、通知メッセージのログ配信ステータスに Amazon SNS でサポートされている SNS エンドポイントを使用していることを確認します。

  • HTTP および HTTPS
  • Amazon Kinesis Data Firehose
  • AWS Lambda
  • プラットフォームアプリケーションエンドポイント
  • Amazon Simple Queue Service (Amazon SQS)
  • SMS

注: AWS Command Line Interface (AWS CLI) コマンドの実行中にエラーが発生した場合は、最新の AWS CLI バージョンを使用していることを確認してください

解決方法

Amazon CloudWatch Logs のプッシュ通知配信ステータス属性を設定する

注:以下のコンソールステップの代わりに、AWS SDK または AWS CLI を使用してメッセージ配信ステータスを設定することができます。

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

2.    ナビゲーションメニューでは、モバイルを選択してから、プッシュ通知を選択します。

3.    プラットフォームアプリケーションセクションで、配信ステータスを設定するプラットフォームアプリケーションを選択します。

4.    [Edit] (編集) を選択します。

5.    配信ステータスログオプションを展開します。

6.    成功サンプルレート% テキストボックスに100と入力します。

7.    IAM ロールセクションのサービスロールで、新しいサービスロールの作成 を選択し、新しいロールの作成を選択します。AWS Identity and Access Management (IAM) コンソールを開きます。

注:適切なアクセス許可を持つ IAM ロールがすでにある場合は、代わりに既存のサービスロールを使用を選択して、そのサービスロールを使用できます。

8.    IAM コンソールのアクセス許可のリクエストページで、許可を選択します。

9.    Amazon SNS コンソールに戻ったら、変更を保存を選択します。

これで、Amazon SNS に以下のポリシーと信頼関係により、正常に実行された配信および失敗した配信のための IAM ロールが作成されます。次の例を参照してください。

成功した配信の IAM ロール:

arn:aws:iam::1111111111:role/SNSSuccessFeedback

失敗した配信の IAM ロール:

arn:aws:iam::1111111111:role/SNSFailureFeedback

ポリシー:

{
    "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.    フィルター検索ボックスにsnsと入力し、Amazon SNS のロググループのみを表示します。

sns / [ あなたの AWS リージョン ] / [ あなたのアカウント_ID ] /app/ [ プラットフォーム名 ] / [ アプリケーション名 ] ロググループには、成功した配信のログが含まれています。

sns/us-east-1/1111111111/app/GCM/Test1
sns/us-east-1/1111111111/app/APNS_SANDBOX/Test2
sns/us-east-1/1111111111/app/APNS/Test3

sns / [ あなたの AWS リージョン ] / [ あなたのアカウント_ID ] /app/ [ プラットフォーム名 ] / [ アプリケーション名 ] /Failure ( 障害 )ロググループには、失敗した配信のログが含まれます。

sns/us-east-1/1111111111/app/GCM/Test1/Failure
sns/us-east-1/1111111111/app/APNS_SANDBOX/Test2/Failure
sns/us-east-1/1111111111/app/APNS/Test3/Failure

4.    表示する Amazon SNS ロググループを選択します。

5.    ログストリーミング タブで、特定のログストリーミングを選択して、アプリケーションエンドポイント配信ログを表示します。

以下の点を考慮してください。

  • CloudWatch Logs のストリームにはプレフィックスを追加することはできません。
  • Amazon SNS のデフォルトのロググループ名を直接変更することはできません。
  • 通知コンテンツは CloudWatch logs に書き込まれません。つまり、SNS トピック配信ログは通知コンテンツを CloudWatch に記録するのではなく、メタデータのみを CloudWatch に書き出します。
  • SMS およびプラットフォームアプリケーションエンドポイントを持つ SNS トピックで公開する場合、配信ステータスログは、それぞれのロググループ内に引き続き入力されます。

通知失敗のトラブルシューティング

FCM や APN などのプロバイダーサービスで statusCode を調べます。プロバイダーの正確な応答メッセージについては、providerResponse をご覧ください。

プッシュ通知サービスの応答コードの一覧については、プラットフォームのレスポンスコードを参照してください。


この記事はお役に立ちましたか。


請求に関するサポートまたは技術サポートが必要ですか?