跳至内容

如何访问推送通知的 Amazon SNS 主题传输日志?

2 分钟阅读
0

我想访问推送通知的 Amazon Simple Notification Service (Amazon SNS) 主题传输日志。

简短描述

Amazon SNS 支持记录发送到主题的推送通知消息的传输状态。配置消息传输状态属性后,这些推送通知消息的日志条目将发送到 Amazon CloudWatch Logs。记录消息传输状态可提供以下操作见解:

  • 了解消息是否已传输到 Amazon SNS 端点。
  • 识别从 Amazon SNS 端点发送到 Amazon SNS 的响应。
  • 确定消息停留时间(从发布时间戳到移交给 Amazon SNS 端点之前的时间)。

配置推送通知传输状态日志

以下部分提供使用 AWS 管理控制台配置传输状态日志记录的步骤。您还可以使用 AWS SDKAWS 命令行界面 (AWS CLI) 来配置消息传输日志。
**注意:**如果在运行 AWS CLI 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI

完成以下步骤:

  1. 打开 Amazon SNS 控制台
  2. 在导航菜单上,展开 Mobile(移动),然后选择 Push notifications(推送通知)。
  3. Platform applications(平台应用程序)部分中,选择您要为其设置传输状态的平台应用程序。
  4. 选择 Edit(编辑)。
  5. 传输状态日志记录 - 可选。
  6. 对于 *Success sample rate(成功采样率),输入您想要接收 CloudWatch Logs 的成功消息的百分比。默认情况下,会记录所有失败的传输。
  7. IAM roles(IAM 角色)部分中,对于 Service role(服务角色),选择 Create new service role(创建新服务角色),然后选择 Create new roles(创建新角色)。系统会打开 AWS Identity and Access Management (IAM) 控制台。
    **注意:**如果您已经拥有具有正确权限的 IAM 角色,则改为选择 Use existing service role(使用现有服务角色)来使用该服务角色。
  8. 在 IAM 控制台权限请求页面上,选择 Allow(允许),授予 Amazon SNS 写入权限,以代表您使用 CloudWatch Logs。
  9. 返回 Amazon SNS 控制台后,选择 Save changes(保存更改)。

这样会为成功和失败的传输创建 IAM 角色,并为 Amazon SNS 配置以下策略和信任关系。

传输成功的 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. 在导航窗格中,展开 Logs(日志),然后选择 Log groups(日志组)。

  3. 在筛选搜索框中,输入 sns 以仅查找 Amazon SNS 的日志组。

  4. 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
  5. 选择您要查看的 Amazon SNS 日志组。

  6. Log streams(日志流)选项卡上,选择特定的日志流以查看应用程序端点传输日志。

  7. 要查看消息的传输状态,请展开日志事件并检查 providerResponse。有关推送通知服务响应代码的列表,请参阅平台响应代码

相关信息

如何对 Amazon SNS 中的 FCM 移动推送通知失败进行故障排除?

如何对 Amazon SNS 中的 APN 移动推送通知失败进行故障排除?

移动应用程序属性

AWS 官方已更新 2 年前