

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

# 透過復原觸發條件，在警示違規時復原您的 CloudFormation 堆疊
<a name="using-cfn-rollback-triggers"></a>

透過轉返觸發條件，您可以在堆疊建立和更新期間 CloudFormation 監控應用程式的狀態，並在應用程式超過您指定的警示閾值時轉返該操作。對於建立的每個復原觸發條件，您都要指定 CloudFormation 應監控的 Cloudwatch 警示。CloudFormation 會在堆疊建立或更新操作期間，以及所有資源部署後一段指定的時間量內，監控指定的警示。如有任何警示在堆疊操作或監控期間進入 `ALARM` 狀態，CloudFormation 將會復原整個堆疊操作。

您可以設定監控時間，從預設的 0 分鐘到最長 180 分鐘。在這段期間，CloudFormation 會在堆疊建立或更新操作部署所有必要的資源之後，監控所有復原觸發條件。如有任何警示在此堆疊操作或監控期間進入 `ALARM` 狀態，CloudFormation 將會復原整個堆疊操作。接著，以更新操作而言，如果監控期間過期，而且沒有任何警示進入 `ALARM` 狀態，CloudFormation 會繼續照常處置舊資源。如果您設定監控時間，但未指定任何復原觸發條件，CloudFormation 仍會等待指定的期間，然後再清理更新操作的舊資源。您可以使用此監控期間來執行任何手動堆疊驗證，以及視需要手動取消堆疊建立或更新。如果您設定 0 分鐘的監控時間，CloudFormation 仍會在堆疊建立和更新操作期間監控復原觸發條件；如有警示進入 `ALARM` 狀態，將會復原操作。接著，對於未發生警示的更新操作，將會在操作完成後立即開始處置舊資源。

在預設情況下，如果警示進入 `ALARM` 狀態 (而非 `INSUFFICIENT_DATA` 狀態)，CloudFormation 只會復原堆疊操作。若要在警示進入 `INSUFFICIENT_DATA` 狀態時，也讓 CloudFormation 復原堆疊操作，請編輯 CloudWatch 警示，將缺少資料視為 `breaching`。如需詳細資訊，請參閱「Amazon CloudWatch 使用者指南」**中的[設定 CloudWatch 警示如何處理遺失資料](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data)。

CloudFormation 在更新操作期間復原堆疊時，不會監控復原觸發條件。

您最多可以新增 5 個復原觸發條件。若要新增復原觸發條件，請指定 CloudWatch 警示的 Amazon Resource Name (ARN)。目前，`AWS::CloudWatch::Alarm` 和 `AWS::CloudWatch::CompositeAlarm` 類型可用作復原觸發條件。如需有關 CloudWatch 警示的詳細資訊，請參閱《*Amazon CloudWatch 使用者指南*》中的[使用 Amazon CloudWatch 警示](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)。

如果找不到指定的 Cloudwatch 警示，整個堆疊操作將會失敗並復原。

請注意，存取 CloudWatch 需要憑證。這些登入資料必須具有存取 AWS 資源的許可，例如擷取有關資源的 CloudWatch 指標資料。如需詳細資訊，請參閱 *Amazon CloudWatch 使用者指南*中的 [CloudWatch 身分驗證和存取控制](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/auth-and-access-control-cw.html)。

## 新增堆疊建立或更新期間的復原觸發條件
<a name="using-cfn-rollback-triggers-create"></a>

**新增堆疊建立或更新期間的復原觸發條件 (主控台)**

1. 在建立或更新堆疊期間，在**設定堆疊選項**頁面的**進階選項**下，展開**復原組態**區段。

1. 請輸入介於 `0` – `180` 分鐘的監控時間。預設值為 `0`。

1. 指定您想要用作復原觸發條件的 Cloudwatch 警示或複合警示 ARN，然後選擇**新增 CloudWatch 警示 ARN**。

   例如，以下是 CloudWatch 警示或複合警示的 ARN：`arn:aws:cloudwatch:{{us-east-1}}:{{123456789012}}:alarm:{{MyAlarmName}}`。

1. 選擇**下一步** 並檢閱堆疊詳細資訊。

1. 準備就緒時，請選擇**提交**，以建立或更新堆疊。

**新增堆疊建立或更新期間的復原觸發條件 (AWS CLI)**  
使用 [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html) 或 [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/update-stack.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/update-stack.html) 命令搭配 `--rollback-configuration` 選項。

例如，下列 **update-stack** 命令會將 {{MyCompositeAlarm}} 設定為復原觸發條件，監控時間為 5 分鐘：

```
aws cloudformation update-stack --stack-name {{MyStack}} \
  --use-previous-template \
  --rollback-configuration \
  "RollbackTriggers=[{Arn=arn:aws:cloudwatch:{{us-east-1}}:{{123456789012}}:alarm:{{MyCompositeAlarm}},Type={{AWS::CloudWatch::CompositeAlarm}}}],MonitoringTimeInMinutes={{5}}"
```

## 將復原觸發條件新增至變更集
<a name="using-cfn-rollback-triggers-change-set"></a>

將復原觸發條件新增至變更集 (主控台)

1. 在建立變更集時，在**設定堆疊選項**頁面的**進階選項**下，展開**復原組態**區段。

1. 請輸入介於 `0` – `180` 分鐘的監控時間。預設值為 `5`。

1. 指定您想要用作復原觸發條件的 Cloudwatch 警示或複合警示 ARN，然後選擇**新增 CloudWatch 警示 ARN**。

   例如，以下是 CloudWatch 警示或複合警示的 ARN：`arn:aws:cloudwatch:{{us-east-1}}:123456789012:alarm:{{MyAlarmName}}`。

1. 選擇**下一步**，並檢閱變更集的詳細資訊。

1. 準備就緒時，請選擇**建立變更集**，以建立變更集。

**將復原觸發條件新增至變更集 (AWS CLI)**  
使用 [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-change-set.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-change-set.html) 命令搭配 `--rollback-configuration` 選項。

## 檢視堆疊的復原觸發條件
<a name="using-cfn-rollback-triggers-view"></a>

若要檢視堆疊的復原觸發條件，請參閱 **Rollback configuration** (復原組態) 區段。

1. 在**堆疊**頁面上，從左側清單選擇您希望檢視的堆疊。

1. 在**堆疊資訊**索引標籤上，展開**復原組態**區段以檢視復原觸發條件。

## 檢視變更集的復原觸發條件
<a name="using-cfn-rollback-triggers-view-change-set"></a>

若要檢視變更集的復原觸發條件，請參閱**復原組態**區段。

1. 在**堆疊**頁面上，從左側清單選擇您希望檢視的堆疊。

1. 選擇**變更集**索引標籤，然後選擇要檢視的變更集。

1. 選擇**輸入**索引標籤，然後檢視**復原組態**區段。