

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

# Amazon SNS SMS 活動監控
<a name="sms_stats"></a>

您可以透過監控簡訊活動來追蹤目標電話號碼、成功或失敗的傳送、失敗的原因、成本和其他資訊。Amazon SNS 透過在主控台中摘要統計資料、傳送訊息至 Amazon CloudWatch 和傳送每日簡訊用量報告到您指定的 Amazon S3 儲存貯體來提供協助。

# 檢視 Amazon SNS SMS 交付統計資料
<a name="sms_stats_console"></a>

您可以使用 Amazon SNS 主控台檢視最近簡訊傳遞的統計。

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

1. 在主控台選單中，設定區域選擇器為[支援簡訊的區域](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html)。

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

1. 在 **Text messaging (SMS)** (簡訊 (SMS)) 頁面上，檢視 **Account stats** (帳戶統計資訊) 區段中的有關您的交易和宣傳簡訊傳遞的圖表。每個圖表顯示前面 15 天的下列資料：
   + 傳送率 (成功傳送的百分比)
   + 已傳送 (嘗試傳送的次數)
   + 已失敗 (傳送失敗的次數)

在此頁面上，您也可以選擇 **Usage** (用量) 按鈕，前往您存放每日用量報告的 Amazon S3 儲存貯體。如需詳細資訊，請參閱[訂閱 Amazon SNS 每日簡訊用量報告](sms_stats_usage.md)。

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

# 訂閱 Amazon SNS 每日簡訊用量報告
<a name="sms_stats_usage"></a>

您可以從 Amazon SNS 訂閱每日用量報告來監控 SMS 訊息傳送。如果您每天傳送至少一則 SMS 訊息，Amazon SNS 就會將用量報告 CSV 檔傳遞到指定的 Amazon S3 儲存貯體。Amazon S3 儲存貯體中需要 24 小時才能使用簡訊用量報告。

## 每日用量報告資訊
<a name="daily_usage_info"></a>

用量報告針對每則透過您的帳戶傳送的 SMS 訊息，包含下列資訊。

 此報告不包含收件人已停止接收的訊息。
+ 訊息的發佈時間 (以 UTC 表示)
+ 訊息 ID
+ 目的地電話號碼
+ 訊息類型
+ 傳遞狀態
+ 訊息價格 (USD)
+ 分段編號 (如果訊息內容太長，就會分成多個分段)
+ 分段總數

**注意**  
如果 Amazon SNS 沒有收到組件編號，我們將其值設定為零。

## 訂閱每日用量報告
<a name="subscribe-to-daily-usage-reports"></a>

若要訂閱每日用量報告，您必須使用適當的許可建立 Amazon S3 儲存貯體。

**為每日用量報告建立 Amazon S3 儲存貯體**

1. 從傳送簡訊 AWS 帳戶 的 ，登入 [Amazon S3 主控台](https://console.aws.amazon.com/s3/)。

1. 選擇 **Create Bucket** (建立儲存貯體)。

1. 針對 **Bucket Name** (儲存貯體名稱)，建議您輸入帳戶和組織唯一的名稱。例如，使用樣式 `<my-bucket-prefix>-<account_id>-<org-id>`。

   如需儲存貯體名稱慣例和限制的詳細資訊，請參閱 *Amazon Simple Storage Service 使用者指南*中的[儲存貯體命名規則](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html#bucketnamingrules)。

1. 選擇**建立**。

1. 在 **All Buckets** (所有儲存貯體) 表格中，選擇儲存貯體。

1. 在 **Permissions** (許可) 索引標籤中，選擇 **Bucket policy** (儲存貯體政策)。

1. 在 **Bucket Policy Editor** (儲存貯體政策編輯器) 視窗中，提供允許 Amazon SNS 服務委託人寫入您的儲存貯體的政策。如需範例，請參閱 [儲存貯體政策的範例](#example_bucket_policy)。

   如果您使用範例原則，請記得將 *my-s3-bucket* 取代為您在步驟 3 中選擇的儲存貯體名稱。

1. 選擇**儲存**。

**訂閱每日用量報告**

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

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

1. 在 **Text messaging (SMS)** (簡訊 (SMS)) 頁面上，於 **Text messaging preference** (簡訊喜好設定) 區段中，選擇 **Edit** (編輯)。  
![\[Amazon SNS 主控台中的簡訊偏好設定區段\]](http://docs.aws.amazon.com/zh_tw/sns/latest/dg/images/daily-usage-report1.png)

1. 在 **Edit text messaging preferences** (編輯文字簡訊喜好設定) 頁面上，於 **Details** (詳細資訊) 區段中，指定 **Amazon S3 bucket name for usage reports** (用量報告的 Amazon S3 儲存貯體名稱)。  
![\[Amazon SNS 主控台中編輯簡訊偏好設定頁面的詳細資訊區段\]](http://docs.aws.amazon.com/zh_tw/sns/latest/dg/images/daily-usage-report2.png)

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

### 儲存貯體政策的範例
<a name="example_bucket_policy"></a>

下列政策允許 Amazon SNS 服務委託人執行 `s3:PutObject`、`s3:GetBucketLocation` 和 `s3:ListBucket` 動作。

AWS 為具有服務主體的所有 服務提供工具，這些主體已獲得您帳戶中資源的存取權。當 Amazon S3 儲存貯體政策陳述式中的委託人是[混淆代理人問題](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)時。若要限制儲存貯體可以接收每日用量報告報告的區域和帳戶，請使用 `aws:SourceArn`（如以下範例所示）。如果您不希望限制可以產生這些報告的區域，請使用 `aws:SourceAccount` 來根據產生報告的帳戶進行限制。如果您不知道資源的 ARN，請使用 `aws:SourceAccount`。

在建立用以接收來自 Amazon SNS 每日 SMS 用量報告的 Amazon S3 儲存貯體時，請使用下列包含混淆代理人保護的範例。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPutObject",
            "Effect": "Allow",
            "Principal": {
                "Service": "sns.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "account_id"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:sns:us-west-1:123456789012:*"
                }
            }
        },
        {
            "Sid": "AllowGetBucketLocation",
            "Effect": "Allow",
            "Principal": {
                "Service": "sns.amazonaws.com"
            },
            "Action": "s3:GetBucketLocation",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "account_id"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:sns:us-west-1:123456789012:*"
                }
            }
        },
        {
            "Sid": "AllowListBucket",
            "Effect": "Allow",
            "Principal": {
                "Service": "sns.amazonaws.com"
            },
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "account_id"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:sns:us-west-1:123456789012:*"
                }
            }
        }
    ]
}
```

------

**注意**  
您可以發佈用量報告到 Amazon S3 政策中 `Condition` 元素指定的 AWS 帳戶 所擁有的 Amazon S3 儲存貯體。若要將用量報告發佈至另一個 AWS 帳戶 擁有的 Amazon S3 儲存貯體，請參閱[如何從另一個儲存貯體複製 Amazon S3 物件 AWS 帳戶？](https://aws.amazon.com/premiumsupport/knowledge-center/copy-s3-objects-account/)。

### 每日用量報告的範例
<a name="example_report"></a>

在您訂閱每日用量報告後，Amazon SNS 每天都會將具有用量資料的 CSV 檔案存放在下列位置：

```
<my-s3-bucket>/SMSUsageReports/<region>/YYYY/MM/DD/00x.csv.gz
```

每個檔案可包含最多 50,000 筆記錄。如果一日的記錄量超過此配額，Amazon SNS 會新增多個檔案。報告範例如下所示：

```
PublishTimeUTC,MessageId,DestinationPhoneNumber,MessageType,DeliveryStatus,PriceInUSD,PartNumber,TotalParts
2016-05-10T03:00:29.476Z,96a298ac-1458-4825-a7eb-7330e0720b72,1XXX5550100,Promotional,Message has been accepted by phone carrier,0.90084,0,1
2016-05-10T03:00:29.561Z,1e29d394-d7f4-4dc9-996e-26412032c344,1XXX5550100,Promotional,Message has been accepted by phone carrier,0.34322,0,1
2016-05-10T03:00:30.769Z,98ba941c-afc7-4c51-ba2c-56c6570a6c08,1XXX5550100,Transactional,Message has been accepted by phone carrier,0.27815,0,1
```