监控堆栈进度 - AWS CloudFormation

监控堆栈进度

本节介绍如何监控当前正在进行的堆栈部署。CloudFormation 提供了按时间顺序排列的详细部署事件列表,显示部署进度和部署过程中遇到的任何问题。

查看堆栈事件(控制台)

查看堆栈事件
  1. 打开 AWS CloudFormation 控制台,地址:https://console.aws.amazon.com/cloudformation

  2. 在屏幕顶部的导航栏中,选择您在其中创建了堆栈的 AWS 区域。

  3. 在 CloudFormation 控制台的 Stacks(堆栈)页面中,选择堆栈名称。CloudFormation 将显示选定堆栈的堆栈详细信息。

  4. 选择事件选项卡以查看 CloudFormation 为堆栈生成的堆栈事件。

CloudFormation 每分钟自动刷新堆栈事件。此外,CloudFormation 会在新堆栈事件发生时显示新事件可用徽章。选择“刷新”图标可将这些事件加载到列表中。通过查看堆栈创建事件,您可以了解导致堆栈创建(或失败,如果您正在调试堆栈)的事件的顺序。

创建堆栈时,该堆栈会在堆栈页面列出,其状态为 CREATE_IN_PROGRESS。堆栈创建成功后,其状态将变为 CREATE_COMPLETE

有关更多信息,请参阅了解 CloudFormation 堆栈创建事件监控堆栈更新的进度

查看堆栈事件(AWS CLI)

您也可以在创建堆栈时使用 describe-stack-events 命令查看所报告的事件。

以下 describe-stack-events 命令会描述 myteststack 堆栈事件。

aws cloudformation describe-stack-events --stack-name myteststack

以下为响应示例。

{ "StackEvents": [ { "StackId": "arn:aws:cloudformation:aws-region:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896", "EventId": "af67ef60-0b8f-11e3-8b8a-500150b352e0", "ResourceStatus": "CREATE_COMPLETE", "ResourceType": "AWS::CloudFormation::Stack", "Timestamp": "2013-08-23T01:02:30.070Z", "StackName": "myteststack", "PhysicalResourceId": "arn:aws:cloudformation:aws-region:123456789012:stack/myteststack/a69442d0-0b8f-11e3-8b8a-500150b352e0", "LogicalResourceId": "myteststack" }, { "StackId": "arn:aws:cloudformation:aws-region:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896", "EventId": "S3Bucket-CREATE_COMPLETE-1377219748025", "ResourceStatus": "CREATE_COMPLETE", "ResourceType": "AWS::S3::Bucket", "Timestamp": "2013-08-23T01:02:28.025Z", "StackName": "myteststack", "ResourceProperties": "{\"AccessControl\":\"PublicRead\"}", "PhysicalResourceId": "myteststack-s3bucket-jssofi1zie2w", "LogicalResourceId": "S3Bucket" }, { "StackId": "arn:aws:cloudformation:aws-region:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896", "EventId": "S3Bucket-CREATE_IN_PROGRESS-1377219746688", "ResourceStatus": "CREATE_IN_PROGRESS", "ResourceType": "AWS::S3::Bucket", "Timestamp": "2013-08-23T01:02:26.688Z", "ResourceStatusReason": "Resource creation Initiated", "StackName": "myteststack", "ResourceProperties": "{\"AccessControl\":\"PublicRead\"}", "PhysicalResourceId": "myteststack-s3bucket-jssofi1zie2w", "LogicalResourceId": "S3Bucket" }, { "StackId": "arn:aws:cloudformation:aws-region:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896", "EventId": "S3Bucket-CREATE_IN_PROGRESS-1377219743862", "ResourceStatus": "CREATE_IN_PROGRESS", "ResourceType": "AWS::S3::Bucket", "Timestamp": "2013-08-23T01:02:23.862Z", "StackName": "myteststack", "ResourceProperties": "{\"AccessControl\":\"PublicRead\"}", "PhysicalResourceId": null, "LogicalResourceId": "S3Bucket" }, { "StackId": "arn:aws:cloudformation:aws-region:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896", "EventId": "a69469e0-0b8f-11e3-8b8a-500150b352e0", "ResourceStatus": "CREATE_IN_PROGRESS", "ResourceType": "AWS::CloudFormation::Stack", "Timestamp": "2013-08-23T01:02:15.422Z", "ResourceStatusReason": "User Initiated", "StackName": "myteststack", "PhysicalResourceId": "arn:aws:cloudformation:aws-region:123456789012:stack/myteststack/a69442d0-0b8f-11e3-8b8a-500150b352e0", "LogicalResourceId": "myteststack" } ] }

最新发生的事件先报告。下表列出了 describe-stack-events 命令返回的字段:

字段 描述
EventId

事件标识符。

StackName

事件对应的堆栈名称。

StackId

事件对应的堆栈标识符。

LogicalResourceId

资源的逻辑标识符。

PhysicalResourceId

资源的物理标识符。

ResourceProperties

资源的属性。

ResourceType

资源类型。

Timestamp

事件发生的时间。

ResourceStatus

资源的状态,可以是以下状态代码之一:CREATE_COMPLETE | CREATE_FAILED | CREATE_IN_PROGRESS | DELETE_COMPLETE | DELETE_FAILED | DELETE_IN_PROGRESS | DELETE_SKIPPED | IMPORT_COMPLETE | IMPORT_IN_PROGRESS | IMPORT_ROLLBACK_COMPLETE | IMPORT_ROLLBACK_FAILED | IMPORT_ROLLBACK_IN_PROGRESS | REVIEW_IN_PROGRESS | ROLLBACK_COMPLETE | ROLLBACK_FAILED | ROLLBACK_IN_PROGRESS | UPDATE_COMPLETE | UPDATE_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_FAILED | UPDATE_IN_PROGRESS | UPDATE_ROLLBACK_COMPLETE | UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_ROLLBACK_FAILED | UPDATE_ROLLBACK_IN_PROGRESS

DELETE_SKIPPED 状态适用于带保留的删除策略属性的资源。

DetailedStatus

堆栈的具体状态。如果 CONFIGURATION_COMPLETE 存在,则堆栈资源配置阶段已完成,资源的稳定化正在进行中。

ResourceStatusReason

有关状态的更多信息。

堆栈状态代码

下表说明了堆栈状态代码:

堆栈状态和可选的详细状态 描述

CREATE_COMPLETE

成功创建一个或多个堆栈。

CREATE_IN_PROGRESS

正在创建一个或多个堆栈。

CREATE_FAILED

一个或多个堆栈创建失败。查看堆栈事件可了解所有相关错误消息。创建失败的可能原因包括:没有足够的权限使用堆栈中的所有资源,参数值被 AWS 服务拒绝,或者在资源创建期间超时。

DELETE_COMPLETE

成功删除一个或多个堆栈。已删除的堆栈在 90 天内保留可供查看。

DELETE_FAILED

一个或多个堆栈删除失败。由于删除失败,您可能有一些资源仍在运行,但是您无法使用或更新堆栈。再次删除堆栈或查看堆栈事件可了解所有相关错误消息。

DELETE_IN_PROGRESS

正在删除一个或多个堆栈。

REVIEW_IN_PROGRESS

正在创建一个或多个具有预期 StackId 但没有任何模板或资源的堆栈。
重要

具有此状态代码的堆栈将针对可能的最大堆栈数量进行计数。

ROLLBACK_COMPLETE

在堆栈创建失败或明确取消堆栈创建后成功删除一个或多个堆栈。堆栈返回到之前的工作状态。在创建堆栈操作期间创建的所有资源都被删除。

此状态仅在堆栈创建失败后存在。它表示已适当清除未完全创建的堆栈中的所有操作。在此状态下,只能执行删除操作。

ROLLBACK_FAILED

在堆栈创建失败或明确取消堆栈创建后删除一个或多个堆栈失败。删除堆栈或查看堆栈事件了解所有相关错误消息。

ROLLBACK_IN_PROGRESS

在堆栈创建失败或明确取消堆栈创建后正在删除一个或多个堆栈。

UPDATE_COMPLETE

成功更新一个或多个堆栈。

UPDATE_COMPLETE_CLEANUP_IN_PROGRESS

成功更新一个或多个堆栈后正在删除堆栈的旧资源。对于需要替换资源的堆栈更新,CloudFormation 首先创建新资源,然后删除旧资源,以帮助减少堆栈中断。在这种状态下,堆栈已更新并且可用,但 CloudFormation 仍然会删除旧资源。

UPDATE_FAILED

未成功更新一个或多个堆栈。查看堆栈事件可了解所有相关错误消息。

UPDATE_IN_PROGRESS

正在更新一个或多个堆栈。

UPDATE_ROLLBACK_COMPLETE

在堆栈更新失败后将一个或多个堆栈成功返回之前的工作状态。

UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS

堆栈更新失败后正在删除一个或多个堆栈的新资源。在这种状态下,堆栈已回滚到之前的工作状态并且可用,但 CloudFormation 仍会删除它在堆栈更新期间创建的所有新资源。

UPDATE_ROLLBACK_FAILED

在堆栈更新失败后将一个或多个堆栈返回之前的工作状态失败。在这种状态下,您可以删除堆栈或继续回滚。您可能需要修复错误,然后堆栈才能返回工作状态。您也可以联系 AWS Support 将堆栈恢复到可用状态。

UPDATE_ROLLBACK_IN_PROGRESS

堆栈更新失败后正在将一个或多个堆栈返回之前的工作状态。

IMPORT_IN_PROGRESS

当前正在执行导入操作。

IMPORT_COMPLETE

对于堆栈中支持 resource import 的所有资源,已成功完成导入操作。

IMPORT_ROLLBACK_IN_PROGRESS

导入将回滚到以前的模板配置。

IMPORT_ROLLBACK_FAILED

对于堆栈中的至少一个资源,导入回滚操作失败。将提供 CloudFormation 成功导入的资源的结果。

IMPORT_ROLLBACK_COMPLETE

导入成功回滚到以前的模板配置。