プッシュ通知の Amazon Simple Notification Service (Amazon SNS) のトピック配信ログにアクセスしたいと考えています。
簡単な説明
Amazon SNS では、トピックに送信されたプッシュ通知メッセージの配信ステータスを記録することができます。メッセージ配信ステータス属性を設定すると、これらのプッシュ通知メッセージのログエントリが Amazon CloudWatch Logs に送信されます。メッセージ配信ステータスをログに記録すると、次のような運用上のインサイトを得られます。
- メッセージが Amazon SNS エンドポイントに配信されたかどうかを確認する。
- Amazon SNS エンドポイントから Amazon SNS に送信されたレスポンスを特定する。
- メッセージの滞留時間 (発行タイムスタンプから Amazon SNS エンドポイントに渡されるまでの時間) を決定します。
プッシュ通知配信ステータスログを設定する
次のセクションでは、AWS マネジメントコンソールを使用して配信ステータスのログ記録を設定する手順について説明します。AWS SDK または AWS コマンドラインインターフェイス (AWS CLI) を使用してメッセージ配信ログを設定することもできます。
注: AWS CLI のコマンドの実行時にエラーが発生する場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
次の手順を実行します。
- Amazon SNS コンソールを開きます。
- ナビゲーションメニューで [モバイル] を展開し、[プッシュ通知] を選択します。
- [プラットフォームアプリケーション] セクションで、配信ステータスを設定するプラットフォームアプリケーションを選択します。
- [編集] を選択します。
- 配信ステータスのロギング (オプション)。
- **[成功サンプルレート]**には、CloudWatch Logs を受信する成功メッセージの割合を入力します。デフォルトでは、失敗したすべての配信がログに記録されます。
- [IAM ロール] セクションの**[サービスロール]で、[新しいサービスロールの作成]、[新しいロールの作成]** の順に選択します。AWS Identity and Access Management (IAM) コンソールを開きます。
注: 適切なアクセス許可を持つ IAM ロールが既にある場合は、代わりに**[既存のサービスロールを使用]** を選択して、そのサービスロールを使用できます。
- IAM コンソールのアクセス許可のリクエストページで、[許可] を選択して、ユーザーに代わって CloudWatch ログを使用するための書き込みアクセス許可を Amazon SNS に付与します。
- 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"
}
]
}
プッシュ通知の配信ステータスログを表示する
-
Amazon CloudWatch コンソールを開きます。
-
ナビゲーションペインで [ログ] を展開し、[ロググループ] を選択します。
-
フィルター検索ボックスに sns と入力し、Amazon SNS のロググループのみを表示します。
-
sns/your-AWS-region/your-account_ID/app/platform_name/application_name ロググループには、成功した配信のログが含まれています。
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/your-AWS-region/your-account_ID/app/platform_name/application_name**/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
-
表示する Amazon SNS ロググループを選択します。
-
[ログストリーム] タブで、特定のログストリームを選択して、アプリケーションエンドポイントの配信ログを表示します。
-
メッセージの配信ステータスを表示するには、ログイベントを展開して providerResponse を確認します。プッシュ通知サービスの応答コードの一覧については、プラットフォームのレスポンスコードを参照してください。
関連情報
Amazon SNS の FCM モバイルプッシュ通知の失敗をトラブルシューティングするにはどうすればよいですか?
Amazon SNS の APN モバイルプッシュ通知の失敗をトラブルシューティングするにはどうすればよいですか?
Mobile app attributes