

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 Amazon CloudWatch 指標和日誌進行 Amazon SNS SMS 交付監控 Amazon CloudWatch
<a name="sms_stats_cloudwatch"></a>

您可以使用 Amazon CloudWatch 和 Amazon CloudWatch Logs 監控您的簡訊傳遞。

## 檢視 Amazon CloudWatch 指標
<a name="sms_stats_cloudwatch_metrics"></a>

Amazon SNS 會自動收集有關您的簡訊傳遞的指標並將其推送至 Amazon CloudWatch。您可以使用 CloudWatch 監控這些指標，並建立提醒在指標超過閾值時提醒您。例如，您可以監控 CloudWatch 指標，以得知您的簡訊傳送率和您本月至今的簡訊費用。

如需有關監控 CloudWatch 指標、設定 CloudWatch 提醒和可用指標類型的資訊，請參閱 [使用 Amazon CloudWatch 監控 Amazon SNS 主題](sns-monitoring-using-cloudwatch.md)。

## 檢視 CloudWatch Logs
<a name="sns-viewing-cloudwatch-logs"></a>

您可以啟用 Amazon SNS 寫入 Amazon CloudWatch Logs 來收集有關成功和未成功傳送簡訊的資訊。對於您傳送的每一則簡訊，Amazon SNS 都會寫入日誌，其中包括訊息價格、狀態為成功或失敗、失敗的原因 (如果訊息失敗的話)、訊息駐留時間和其他資訊。

**為簡訊啟用和檢視 CloudWatch Logs**

1. 登入 [Amazon SNS 主控台](https://console.aws.amazon.com/sns/home)。

1. 在主控台選單中，設定區域選擇器為[支援簡訊的區域](https://docs.aws.amazon.com/general/latest/gr/end-user-messaging.html)。

1. 在導覽面板上，選擇 **Text messaging (SMS)** (簡訊 (SMS))。

1. 在 **Mobile text messaging (SMS)** (行動裝置簡訊 (SMS)) 頁面上，於 **Text messaging preference** (簡訊喜好設定) 區段中，選擇 **Edit** (編輯)。

1. 在下一個頁面上，展開 **Delivery status logging** (交付狀態記錄日誌) 區段。

1. 對於 **Success sample rate** (成功取樣率)，指定簡訊成功傳遞的百分比，且 Amazon SNS 將在 CloudWatch Logs 中寫入日誌。例如：
   + 若要僅針對失敗的傳遞寫入日誌，將此值設為 0。
   + 若要針對 10% 的成功傳遞寫入日誌，將其設為 10。

   如果不指定百分比，Amazon SNS 會將所有成功的傳遞寫入日誌。

1. 若要提供必要的許可，請進行下列其中一個動作：
   + 若要建立新的服務角色，請選擇 **Create new service role** (建立新服務角色) 然後 **Create new roles** (建立新角色)。在下一頁上，選擇 **Allow** (允許)，為您的帳戶資源提供 Amazon SNS 寫入存取權。
   + 若要使用現有的服務角色，請選擇 **Use existing service role** (使用現有的服務角色)，然後將 ARN 名稱貼到 **IAM role for successful and failed deliveries** (成功和失敗交付的 IAM 角色) 方塊。

     您指定的服務角色必須允許對帳戶資源的寫入存取權限。如需建立 IAM 角色的詳細資訊，請參閱《*IAM 使用者指南*》中的[為 AWS 服務建立角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console)。

1. 選擇**儲存變更**。

1. 回到 **Mobile text messaging (SMS)** (行動裝置簡訊 (SMS)) 頁面上，移至 **Delivery status logs** (傳遞狀態記錄) 區段以檢視任何可用的記錄檔。
**注意**  
根據目的地電話號碼的電信業者，Amazon SNS 主控台最多可能需要 72 小時的時間才會出現在 Amazon SNS 主控台中。

## 成功傳送簡訊的範例日誌
<a name="example-log-successful-sms-delivery"></a>

成功傳送簡訊的傳遞狀態日誌類似以下範例：

```
{
    "notification": {
        "messageId": "34d9b400-c6dd-5444-820d-fbeb0f1f54cf",
        "timestamp": "2016-06-28 00:40:34.558"
    },
    "delivery": {
        "phoneCarrier": "My Phone Carrier",
        "mnc": 270,
        "numberOfMessageParts": 1,
        "destination": "+1XXX5550100",
        "priceInUSD": 0.00645,
        "smsType": "Transactional",
        "mcc": 310,
        "providerResponse": "Message has been accepted by phone carrier",
        "dwellTimeMs": 599,
        "dwellTimeMsUntilDeviceAck": 1344
    },
    "status": "SUCCESS"
}
```

## 傳送簡訊失敗的範例日誌
<a name="example-log-failed-sms-delivery"></a>

傳送簡訊失敗的傳遞狀態日誌類似以下範例：

```
{
    "notification": {
        "messageId": "1077257a-92f3-5ca3-bc97-6a915b310625",
        "timestamp": "2016-06-28 00:40:34.559"
    },
    "delivery": {
        "mnc": 0,
        "numberOfMessageParts": 1,
        "destination": "+1XXX5550100",
        "priceInUSD": 0.00645,
        "smsType": "Transactional",
        "mcc": 0,
        "providerResponse": "Unknown error attempting to reach phone",
        "dwellTimeMs": 1420,
        "dwellTimeMsUntilDeviceAck": 1692
    },
    "status": "FAILURE"
}
```

## 簡訊傳遞失敗的原因
<a name="sms_stats_delivery_fail_reasons"></a>

提供具有 `providerResponse` 屬性的失敗原因。簡訊可能因為下列原因傳遞失敗：
+ 被電話的電信業者視為垃圾郵件而封鎖
+ 目的地位於封鎖清單上
+ 電話號碼無效
+ 訊息內文無效
+ 電話電信業者已封鎖此訊息
+ 電話電信業者目前無法聯絡上/無法使用
+ 電話已封鎖簡訊
+ 手機在封鎖清單上
+ 電話目前無法聯絡上/無法使用
+ 電話號碼退訂
+ 此傳送會超出價格上限
+ 嘗試聯絡電話時發生未知的錯誤