如何存取簡訊的 Amazon SNS 主題交付日誌?

2 分的閱讀內容
0

我想存取簡訊的 Amazon Simple Notification Service (Amazon SNS) 主題交付日誌。

解決方法

設定 Amazon CloudWatch Logs 的 SMS 交付狀態屬性

**注意:**作為下列主控台步驟的替代方案,您可以使用 AWS SDKAWS Command Line Interface (AWS CLI) 設定訊息交付狀態。如果您在執行 AWS CLI 命令時收到錯誤,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 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 主控台後,選擇儲存變更

這會為成功的和失敗的交付建立一個 IAM 角色,並為 Amazon SNS 設定下列政策和信任關係。

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. 在導覽窗格中,展開日誌,然後選擇日誌群組

  3. 在「篩選條件」搜尋方塊中,輸入 DirectPublishToPhoneNumber 以僅尋找 Amazon SNS 的 SMS 日誌群組。

    注意: 根據目的地電話號碼的電信業者,交付日誌最多需要 72 小時才會出現在 Amazon SNS 主控台中。

    例如:

    sns/your-AWS-region/your-AWS-account-ID/DirectPublishToPhoneNumber 日誌群組包含成功交付日誌:

    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"
    }

    sns/your-AWS-region/your-AWS-account-ID/DirectPublishToPhoneNumber/Failure 日誌群組包含失敗交付日誌:

    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. 若要查看簡訊的交付狀態,請展開日誌事件並檢查 providerResponse

檢視已選擇退出的電話號碼

收件人可以選擇不在電話上接收來自 AWS 帳戶的簡訊。如需詳細資訊,請查看選擇不接收簡訊

  1. 開啟 Amazon SNS 主控台
  2. 在導覽窗格上,展開行動裝置區段,然後選擇簡訊 (SMS)
  3. 若要檢視已選擇退出的電話號碼,請前往已選擇退出的電話號碼區段。

相關資訊

使用 CloudWatch 監控 Amazon SNS 主題

設定簡訊傳送偏好設定

檢視 SMS 交付的 Amazon CloudWatch 指標和日誌

AWS 官方
AWS 官方已更新 4 個月前