一位 DevOps 工程師部署了一個 CloudFormation 範本,該範本啟動了一個 Web 應用程式(ALB、目標群組、使用 Amazon Linux 2 AMI 的啟動範本、Auto Scaling group、security group 和一個 RDS MySQL DB)。啟動範本的 user data 執行一個指令碼來安裝和啟動應用程式。在將 user data 更新為新的應用程式版本並透過 CI/CD 管道重新部署後,ALB 健康檢查失敗,所有目標都顯示為 unhealthy。CloudFormation 堆疊顯示 UPDATE_COMPLETE,但 EC2 實例日誌顯示 Apache 因設定錯誤而無法啟動。工程師如何讓 CloudFormation 在 user data 指令碼未成功完成時使部署失敗?
選擇一個答案
點擊一個選項來檢查您的答案。
正確答案: 使用 cfn-signal 輔助程式向 CloudFormation 發送成功或失敗訊號。將 WaitOnResourceSignals 更新策略新增到 CloudFormation 範本中的資源,並為更新策略設定適當的逾時。.
為什麼這是答案
正確答案是使用 cfn-signal 輔助程式。cfn-signal 允許 EC2 實例在 user data 腳本完成後向 CloudFormation 發送成功或失敗信號。結合 WaitOnResourceSignals 更新策略,CloudFormation 會等待這些信號,如果未收到成功信號或超時,則會將堆疊更新標記為失敗。這能確保在應用程式啟動失敗時,CloudFormation 部署也會失敗。 其他選項不正確的原因: CloudWatch 警報基於指標,無法直接控制 CloudFormation 的堆疊狀態,且在應用程式啟動失敗時,警報可能無法及時觸發或提供足夠的控制。 Auto Scaling lifecycle hook 旨在暫停實例啟動以執行自定義操作,但它本身不直接向 CloudFormation 發送成功或失敗信號來影響堆疊狀態。 使用 CloudWatch 代理程式、訂閱篩選器和 Lambda 雖然可行,但過於複雜,且 cfn-signal 是專為此目的設計的更簡單、更直接的解決方案。
通過考試 — 無需無休止地尋找答案
集中一處獲取此考試的所有核實題目和解釋,節省數小時的準備時間。1,000 多種認證 · 20 多種語言 · 免費開始。
更快通過您的考試 → 無需信用卡