

# 按操作查看堆栈事件
<a name="view-stack-events-by-operation"></a>

您可以查看按操作分组的堆栈事件，以更好地了解对您的堆栈所做更改的顺序和范围。基于操作的分组可帮助您一起跟踪相关事件，从而更轻松地监控进度并在问题发生时对其进行故障排查。

每个堆栈操作（创建、更新、删除、回滚）都会被分配一个唯一的操作 ID，用于对所有相关事件进行分组。这使您能够专注于特定的操作，并迅速找出故障的根本原因。

**Topics**
+ [先决条件](#view-stack-events-by-operation-prerequisites)
+ [按操作查看堆栈事件（控制台）](#view-stack-events-by-operation-console)
+ [按操作查看堆栈事件（Amazon CLI）](#view-stack-events-by-operation-cli)
+ [堆栈状态代码](#stack-status-codes)

## 先决条件
<a name="view-stack-events-by-operation-prerequisites"></a>

要使用 `DescribeEvents` API，您必须具有必要 IAM 权限：`DescribeEvents`。

## 按操作查看堆栈事件（控制台）
<a name="view-stack-events-by-operation-console"></a>

**要查看按操作分组的堆栈事件**

1. 登录到 Amazon Web Services 管理控制台 并打开 Amazon CloudFormation 控制台 [https://console.aws.amazon.com/cloudformation](https://console.amazonaws.cn/cloudformation/)。

1. 在屏幕顶部的导航栏中，选择您在其中创建了堆栈的 Amazon Web Services 区域。

1. 在**堆栈**页面上，选择堆栈名称。CloudFormation 将显示选定堆栈的堆栈详细信息。

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

1. 事件会按照操作 ID 自动进行分组。每个操作都会以可展开的部分呈现，该部分会显示操作类型、状态以及时间戳。

1. 单击**操作 ID** 可打开详细视图，该视图仅显示与该特定操作相关的事件。

1. 在操作详细信息视图中，选中**仅显示故障**复选框，以仅显示用于根本原因分析的失败事件。

CloudFormation 每分钟自动刷新堆栈事件。新堆栈事件发生时显示**新堆栈事件可用**徽章。选择“刷新”图标可将这些事件加载到列表中。

通过查看按操作分组的堆栈事件，您可以了解每个操作的事件顺序，并快速确定哪个特定操作导致了问题（如果您正在调试堆栈）。

当您的堆栈操作正在运行时，其会被列出 `CREATE_IN_PROGRESS`、`UPDATE_IN_PROGRESS` 或 `DELETE_IN_PROGRESS` 状态。成功完成操作后，其状态将更改为 `CREATE_COMPLETE`、`UPDATE_COMPLETE` 或 `DELETE_COMPLETE`。

有关更多信息，请参阅[了解 CloudFormation 堆栈创建事件](stack-resource-configuration-complete.md)和[监控堆栈更新的进度](using-cfn-updating-stacks-monitor-stack.md)。

## 按操作查看堆栈事件（Amazon CLI）
<a name="view-stack-events-by-operation-cli"></a>

您可以使用带有操作 ID 筛选功能的 `describe-events` 命令，以查看特定操作的事件。

### 获取上次操作 ID
<a name="get-last-operation-ids"></a>

通过 describe-stacks API 提供的堆栈描述现在包括显示最近的操作 ID 及其类型的 LastOperations 信息。这使得您能够迅速确定哪些操作已经完成以及它们的当前状态，而无需通过事件日志进行解析。

```
aws cloudformation describe-stacks --stack-name MyStack
```

以下是响应示例，显示最后一个操作是更新操作失败后的回滚。

```
{  
    "Stacks": [  
        {  
            "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/MyStack/07580010-bb79-11f0-8f6c-0289bb5c804f",  
            "StackName": "MyStack",  
            "Description": "A simple CloudFormation template to create an S3 bucket.",  
            "CreationTime": "2025-11-07T01:28:13.778000+00:00",  
            "LastUpdatedTime": "2025-11-07T01:43:39.838000+00:00",  
            "RollbackConfiguration": {},  
            "StackStatus": "UPDATE_ROLLBACK_COMPLETE",  
            "DisableRollback": false,  
            "NotificationARNs": [],  
            "Tags": [],  
            "EnableTerminationProtection": false,  
            "DriftInformation": {  
                "StackDriftStatus": "NOT_CHECKED"  
            },  
            "LastOperations": [  
                {  
                    "OperationType": "ROLLBACK",  
                    "OperationId": "d0f12313-7bdb-414d-a879-828a99b36f29"  
                },  
                {  
                    "OperationType": "UPDATE_STACK",  
                    "OperationId": "1c211b5a-4538-4dc9-bfed-e07734371e57"  
                }  
            ]  
        }  
    ]  
}
```

### 按操作 ID 筛选事件
<a name="filter-events-by-operation-id"></a>

下面的 `describe-events` 命令描述了特定操作 ID 的事件：

```
aws cloudformation describe-events \
  --operation-id 1c211b5a-4538-4dc9-bfed-e07734371e57
```

要仅查看失败事件以进行故障排除，请使用 `--filter FailedEvents=true` 参数：

```
aws cloudformation describe-events \
  --operation-id 1c211b5a-4538-4dc9-bfed-e07734371e57 \
  --filter FailedEvents=true
```

新的操作 ID 筛选功能使您能够专注于特定操作及其相关事件。此功能特别适用于：
+ **对特定故障进行故障排除：**将事件与失败的操作隔离开来，以了解出了什么问题。
+ **监控长期运行的操作：**跟踪复杂的更新或大型堆栈部署的进度。
+ **审计更改：**审核与特定更新操作相关的所有事件。
+ **根本原因分析：**使用故障筛选器快速确定部署问题的根源。

## 堆栈状态代码
<a name="stack-status-codes"></a>

下表列出了 `describe-events` 命令在使用操作 ID 筛选时返回的字段：


| 字段 | 说明 | 
| --- | --- | 
| EventId | 事件标识符。 | 
| OperationId | 生成此事件的操作的唯一标识符。 | 
| StackName | 事件对应的堆栈名称。 | 
| StackId | 事件对应的堆栈标识符。 | 
| LogicalResourceId | 资源的逻辑标识符。 | 
| PhysicalResourceId | 资源的物理标识符。 | 
| ResourceProperties | 资源的属性。 | 
| ResourceType | 资源类型。 | 
| Timestamp | 事件发生的时间。 | 
| ResourceStatus | 资源的状态（CREATE\$1COMPLETE、UPDATE\$1FAILED 等）。 | 
| DetailedStatus | 堆栈的具体状态。如果 CONFIGURATION\$1COMPLETE 存在，则堆栈资源配置阶段已完成，资源的稳定化正在进行中。 | 
| ResourceStatusReason | 有关状态的更多信息。 | 