掌握在使用 AWS CloudFormation來部署 AWS 資源的時候,出現(xiàn)失敗或者故障的情況下的處理思路和對應方法。本次動手實驗模擬,使用 AWS CloudFormation 創(chuàng)建 Amazon EC2 的時候無法成功創(chuàng)建的情景,以及相應的解決方案。
使用 CloudFormation 控制臺查看堆棧的狀態(tài)。在控制臺中,可以在創(chuàng)建、更新或刪除堆棧時查看堆棧事件、錯誤消息、日志列表。通過該列表,可以找到相關的失敗事件,以及該事件的狀態(tài)原因;然后根據提修改 CloudFormation 文件進行下一步測試和修改。
步驟一:創(chuàng)建 CloudFormation 模板文件
采用 YAML 文件格式,并且保存到本地。本模板將會在美國東部一區(qū)(us-east-1a)創(chuàng)建一個 64 位的Amazon Linux EC2 實例。模板文件內容如下所示,
Resources:
Ec2Instance:
Type: AWS::EC2::Instance
Properties:
AvailabilityZone: us-east-1a
ImageId: ami-06b21ccaeff8cd68
InstanceType: t2.micro
步驟二:創(chuàng)建 CloudFormation 堆棧
1. 打開 AWS CloudFormation 控制臺,選擇 AWS 區(qū)域以在其中創(chuàng)建堆棧。
2. 在堆棧頁面,選擇右上角的堆棧,然后選擇使用新資源(標準),選擇使用現(xiàn)有模板
3. 驗證模板,并配置堆棧選項。
4. 選擇創(chuàng)建 Linux EC2 實例堆棧。
步驟三:確定 CloudFormation 堆棧創(chuàng)建失敗,查找失敗原因
1. 在 CloudFormation控制臺中,查看失敗堆棧的事件列表

2. 明確堆棧創(chuàng)建失敗可能的原因為 AMI ID 無效
Resource handler returned message: "Invalid id: "ami-06b21ccaeff8cd6" (expecting "ami-...")
3. 在美國東部一區(qū)中的 EC2 控制臺中,打開 AMI 目錄面板,確認正確的 AMI ID
錯誤的 AMI ID:ami-06b21ccaeff8cd68
正確的AMI ID:ami-0085e579c65d43668
步驟四:修改 CloudFormation 文件,再次執(zhí)行堆棧創(chuàng)建
1. 在美國東部一區(qū)中的 CloudFormation 控制臺中,可以看到堆棧創(chuàng)建成功
2. 在美國東部一區(qū)中的 EC2 控制臺中,查看創(chuàng)建成功的 EC2 實例
3. 測試結束后,在 CloudFormation 控制臺中刪除該 CloudFormation 堆棧
4. 在 EC2 控制臺中,確認該 EC2 實例以及被刪除
5. 在 S3 控制臺中,刪除用來保存 CloudFormation 模板文件的 S3 存儲桶