透過復原觸發條件,在警示違規時復原您的 CloudFormation 堆疊 - AWS CloudFormation

透過復原觸發條件,在警示違規時復原您的 CloudFormation 堆疊

透過復原觸發條件,您可讓 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 警示如何處理遺失資料

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

您最多可以新增 5 個復原觸發條件。若要新增復原觸發條件,請指定 CloudWatch 警示的 Amazon Resource Name (ARN)。目前,AWS::CloudWatch::AlarmAWS::CloudWatch::CompositeAlarm 類型可用作復原觸發條件。如需有關 CloudWatch 警示的詳細資訊,請參閱《Amazon CloudWatch 使用者指南》中的使用 Amazon CloudWatch 警示

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

請注意,存取 CloudWatch 需要憑證。這些憑證必須擁有許可以存取 AWS 資源,例如擷取有關您資源的 CloudWatch 指標資料。如需詳細資訊,請參閱 Amazon CloudWatch 使用者指南中的 CloudWatch 身分驗證和存取控制

新增堆疊建立或更新期間的復原觸發條件

新增堆疊建立或更新期間的復原觸發條件 (主控台)
  1. 在建立或更新堆疊期間,在設定堆疊選項頁面的進階選項下,展開復原組態區段。

  2. 請輸入介於 0180 分鐘的監控時間。預設值為 0

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

    例如,以下是 CloudWatch 警示或複合警示的 ARN:arn:aws:cloudwatch:us-east-1:123456789012:alarm:MyAlarmName

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

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

新增堆疊建立或更新期間的復原觸發條件 (AWS CLI)

使用 create-stackupdate-stack 命令搭配 --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"

將復原觸發條件新增至變更集

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

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

  2. 請輸入介於 0180 分鐘的監控時間。預設值為 5

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

    例如,以下是 CloudWatch 警示或複合警示的 ARN:arn:aws:cloudwatch:us-east-1:123456789012:alarm:MyAlarmName

  4. 選擇下一步,並檢閱變更集的詳細資訊。

  5. 準備就緒時,請選擇建立變更集,以建立變更集。

將復原觸發條件新增至變更集 (AWS CLI)

使用 create-change-set 命令搭配 --rollback-configuration 選項。

檢視堆疊的復原觸發條件

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

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

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

檢視變更集的復原觸發條件

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

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

  2. 選擇變更集索引標籤,然後選擇要檢視的變更集。

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