跳至內容

如何存取 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 Command Line Interface (AWS CLI) 來設定訊息交付日誌。
**注意:**如果您在執行 AWS CLI 命令時收到錯誤,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確認您使用的是最新的 AWS CLI 版本

請完成以下步驟:

  1. 開啟 Amazon SNS console (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 console (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 年前