跳至內容

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

2 分的閱讀內容
0

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

解決方法

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

請完成下列步驟:

  1. 開啟 Amazon SNS console (Amazon SNS 主控台)。
  2. 在導覽窗格上,展開 Mobile (行動裝置),然後選取 Text messaging (SMS) (簡訊 (SMS))。
  3. Text messaging preferences (簡訊偏好設定) 區段中,選擇 Edit (編輯)。
  4. 展開交付狀態日誌記錄 – 選用
  5. Success sample rate (成功取樣率) 的 % 文字方塊中輸入 100
    **注意:**成功率是成功交付至日誌的訊息百分比。
  6. IAM 角色區段的服務角色中,選取建立新的服務角色,然後選擇建立新角色。隨即會開啟 AWS Identity and Access Management (IAM) 主控台。
    **注意:**如果您已經擁有具有正確權限的 IAM 角色,請改為選擇 Use existing service role (使用現有服務角色)。
  7. 在 IAM 主控台權限請求頁面上,選擇 Allow (允許)。
  8. 在返回 Amazon SNS 主控台後,選擇 Save changes (儲存變更)。

這會為成功的和失敗的交付建立 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 console (Amazon CloudWatch 主控台)。

  2. 在導覽窗格中,展開 Logs (日誌),然後選擇 Log groups (日誌群組)。

  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. Log streams (日誌串流) 索引標籤上,選擇特定日誌串流以檢視 SMS 交付日誌。

  6. 若要查看 SMS 訊息的交付狀態,請展開日誌事件並檢查 providerResponse

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

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

請完成下列步驟:

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

相關資訊

使用 CloudWatch 監控 Amazon SNS 主題

在 Amazon SNS 中設定 SMS 訊息偏好設定

使用 Amazon CloudWatch 指標和日誌監控 Amazon SNS SMS 交付