

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

# 在 DynamoDB 中建立 CloudWatch 警示
<a name="Monitoring-metrics-creating-cloudwatch-alarms"></a>

[CloudWatch 警示](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)會監看指定時段內的單一指標，並在一段時間內根據指標相對於閾值的值來執行一或多個指定動作。此動作是傳送到 Amazon SNS 主題或 Auto Scaling 政策的通知。您也可以將警示新增至儀表板，以便監控和接收跨多個區域的AWS資源和應用程式的提醒。您可建立的警示數量沒有限制。CloudWatch 警示不會只因處於特定狀態就調用動作，狀態必須已變更並已維持一段指定的時間。如需建議的 DynamoDB 警示清單，請參閱[建議的警示](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#DynamoDB)。

**注意**  
建立 CloudWatch 警示時，您必須指定所有必要的維度，因為 CloudWatch 不會彙總遺失維度的指標。在建立警示時，使用遺失維度建立 CloudWatch 警示不會造成錯誤。

假設您有一個佈建的資料表，其中包含五個讀取容量單位。您希望在用盡整個佈建的讀取容量之前收到通知，因此您決定建立 CloudWatch 警示，以便在使用的容量達到您為資料表佈建的 80% 時收到通知。您可以在 CloudWatch 主控台中或使用AWS CLI建立警示。

## 在 CloudWatch 主控台中建立警示
<a name="monitoring-metrics-creating-an-alarm-cw-console"></a>

**若要在 CloudWatch 主控台中建立警示**

1. 登入AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Alarms** (警示)、**All alarms** (所有警示)。

1. 選擇 **Create alarm** (建立警示)。

1. 尋找包含您要監控之資料表的資料列，並在**指標名稱**欄中尋找 **`ConsumeReadCapacityUnits`**。選取此資料列旁的核取方塊，然後選擇 **Select metric** (選取指標)。

1. 在**指定指標和條件**下，針對**統計資料**選擇**總和**。對於**期間**，選擇 **1 分鐘**。

1. 在 **Conditions (條件)** 下，指定以下內容：

   1. 對於**閾值類型**，選擇**靜態**。

   1. 對於**每當 `ConsumedReadCapacityUnits` 為**，選擇**大於/等於**，然後輸入 240 作為閾值。

1. 選擇 **Next** (下一步)。

1. 在**通知** 下，選擇 **`In alarm`**，然後選取當警示處於 `ALARM` 狀態時要通知的 SNS 主題。

1. 完成時，請選擇**下一步**。

1. 輸入警示的名稱和說明，然後選擇 **Next** (下一步)。

1. 在 **Preview and create (預覽及建立)** 下，請確認資訊和條件都是您希望的內容，然後選擇 **Create alarm (建立警示)**。

## 在 中建立警示AWS CLI
<a name="Monitoring-metrics-creating-an-alarm-cli"></a>

```
aws cloudwatch put-metric-alarm \
    -\-alarm-name ReadCapacityUnitsLimitAlarm \
    -\-alarm-description "Alarm when read capacity reaches 80% of my provisioned read capacity" \
    -\-namespace AWS/DynamoDB \
    -\-metric-name ConsumedReadCapacityUnits \
    -\-dimensions Name=TableName,Value=myTable \
    -\-statistic Sum \
    -\-threshold 240 \
    -\-comparison-operator GreaterThanOrEqualToThreshold \
    -\-period 60 \                           
    -\-evaluation-periods 1 \
    -\-alarm-actions arn:aws:sns:us-east-1:123456789012:capacity-alarm
```

測試警示。

```
aws cloudwatch set-alarm-state -\-alarm-name ReadCapacityUnitsLimitAlarm -\-state-reason "initializing" -\-state-value OK
```

```
aws cloudwatch set-alarm-state -\-alarm-name ReadCapacityUnitsLimitAlarm -\-state-reason "initializing" -\-state-value ALARM
```

## 更多AWS CLI範例
<a name="Monitoring-metrics-more-cli-examples"></a>

下列程序說明如何在請求超過資料表的佈建調節配額時收到通知。

1. 建立 Amazon SNS 主題 `arn:aws:sns:us-east-1:123456789012:requests-exceeding-throughput`。如需詳細資訊，請參閱[設定 Amazon Simple Notification Service](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html)。

1. 建立警示。

   ```
   aws cloudwatch put-metric-alarm \
           -\-alarm-name ReadCapacityUnitsLimitAlarm \
           -\-alarm-description "Alarm when read capacity reaches 80% of my provisioned read capacity" \
           -\-namespace AWS/DynamoDB \
           -\-metric-name ConsumedReadCapacityUnits \
           -\-dimensions Name=TableName,Value=myTable \
           -\-statistic Sum \
           -\-threshold 240 \
           -\-comparison-operator GreaterThanOrEqualToThreshold \
           -\-period 60 \                           
           -\-evaluation-periods 1 \
           -\-alarm-actions arn:aws:sns:us-east-1:123456789012:capacity-alarm
   ```

1. 測試警示。

   ```
   aws cloudwatch set-alarm-state --alarm-name RequestsExceedingThroughputAlarm --state-reason "initializing" --state-value OK
   ```

   ```
   aws cloudwatch set-alarm-state --alarm-name RequestsExceedingThroughputAlarm --state-reason "initializing" --state-value ALARM
   ```

下列程序說明如何在發生系統錯誤時收到通知。

1. 建立 Amazon SNS 主題 `arn:aws:sns:us-east-1:123456789012:notify-on-system-errors`。如需詳細資訊，請參閱[設定 Amazon Simple Notification Service](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html)。

1. 建立警示。

   ```
   aws cloudwatch put-metric-alarm \
       --alarm-name SystemErrorsAlarm \
       --alarm-description "Alarm when system errors occur" \
       --namespace AWS/DynamoDB \
       --metric-name SystemErrors \
       --dimensions Name=TableName,Value=myTable Name=Operation,Value=aDynamoDBOperation \
       --statistic Sum \
       --threshold 0 \
       --comparison-operator GreaterThanThreshold \
       --period 60 \
       --unit Count \
       --evaluation-periods 1 \
       --treat-missing-data breaching \
       --alarm-actions arn:aws:sns:us-east-1:123456789012:notify-on-system-errors
   ```

1. 測試警示。

   ```
   aws cloudwatch set-alarm-state --alarm-name SystemErrorsAlarm --state-reason "initializing" --state-value OK
   ```

   ```
   aws cloudwatch set-alarm-state --alarm-name SystemErrorsAlarm --state-reason "initializing" --state-value ALARM
   ```