

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 查看 Hook 的调用 CloudFormation 结果
<a name="hooks-view-invocations"></a>

本主题介绍如何查看 CloudFormation Hook 的调用结果。查看调用结果可以帮助您了解 Hook 如何评估您的资源，并解决 Hook 验证资源时检测到的任何问题。

调用是您的验证逻辑（无论是 AWS Control Tower 主动控制、Guard 规则还是 Lambda 函数）在资源的生命周期中运行的特定实例。

## 在控制台中查看调用结果
<a name="hooks-view-invocations-console"></a>

您可以通过三种方式在控制台中查看调用结果：通过 **Invocation 摘要**页面、查看单个 Hook 的调用历史记录，或者查看堆栈特定调用的单个堆栈事件。

### 查看所有 Hook 的结果
<a name="hooks-view-invocations-summary-page"></a>

**调用摘要**页面提供了过去 90 天内您的账户和地区内所有 Hook 调用的全面视图。

**查看所有 Hook 的结果**

1. 登录 AWS 管理控制台 并在 [https://console.aws.amazon.com/cloudformat](https://console.aws.amazon.com/cloudformation/) ion 上打开 CloudFormation 控制台。

1. 在屏幕顶部的导航栏上，选择要查看 Hook 调用的 AWS 区域 位置。

1. 在导航窗格中，选择**调用摘要**。

1. 该页面显示了过去 90 天内所有 Hook 调用的列表，包括：
   + 调用 ID
   + Hook
   + Target
   + 模式（`Warn`或`Fail`）
   + 结果 (`Warning`,`Pass`,`Failed`,`In progress`)
   + 调用时间
   + 结果消息

1. 您可以使用表格顶部的搜索栏筛选列表以查找特定的调用。

1. 选择一个特定的调用以查看有关调用结果的更多其他详细信息，包括失败的 Hook 调用的补救指南。

### 查看单个 Hook 的调用历史记录
<a name="hooks-view-hook-specific-invocation-history"></a>

您还可以通过单个 Hook 的调用历史记录查看调用结果。

**查看特定 Hook 的挂钩调用**

1. 登录 AWS 管理控制台 并在 [https://console.aws.amazon.com/cloudformat](https://console.aws.amazon.com/cloudformation/) ion 上打开 CloudFormation 控制台。

1. 在屏幕顶部的导航栏上，选择要查看 Hook 调用的 AWS 区域 位置。

1. 从导航窗格中选择 **Hooks**。

1. 选择要查看其的 Hook 调用次数的 Hook。

1. 选择一个特定的调用以查看有关调用结果的更多其他详细信息，包括失败的 Hook 调用的补救指南。

### 查看特定于堆栈的调用的结果
<a name="hooks-view-stack-specific-invocations"></a>

您还可以通过堆栈**事件**页面查看特定堆栈的调用结果。

**查看特定堆栈的 Hook 调用**

1. 登录 AWS 管理控制台 并在 [https://console.aws.amazon.com/cloudformat](https://console.aws.amazon.com/cloudformation/) ion 上打开 CloudFormation 控制台。

1. 在屏幕顶部的导航栏上，选择堆栈操作发生 AWS 区域 的位置。

1. 从导航窗格中，选择**堆栈**。

1. 选择要查看其的 Hook 调用的堆栈。

1. 选择**堆栈事件**选项卡。

1. 在事件列表中，在 “**状态原因**” 列中查找 **Hook 调用已完成**的事件。

1. 要查看特定的 Hook 调用详细信息，请查看 **Hook 调用**列，然后选择带下划线的文本以打开包含更多详细信息的弹出窗口。
**注意**  
要显示隐藏的列，请选择该部分右上角的齿轮图标以打开 “**首选项**” 模式，根据需要更新设置，然后选择 “**确认**”。

## 使用查看调用结果 AWS CLI
<a name="hooks-view-invocations-cli"></a>

使用[https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-hook-results.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-hook-results.html)命令检索有关 Hook 调用的信息。此命令支持以下过滤选项：
+ 获取所有 Hook 调用结果（无需参数） 
+ 按挂钩筛选 ARN（使用）`--type-arn`
+ 按挂钩 ARN 和状态筛选（使用`--type-arn`和）`--status`
+ 搜索特定目标（使用`--target-type`和`--target-id`）

**按 Hook ARN 筛选结果**  
以下命令列出了特定 Hook 的所有 Hook 调用结果。

```
aws cloudformation list-hook-results \
  --type-arn {{arn:aws:cloudformation:us-west-2:123456789012:type/hook/MyOrg-Security-ComplianceHook}} \
  --region {{us-west-2}}
```

输出示例：

```
{
  "HookResults": [
    {
      "TypeArn": "arn:aws:cloudformation:us-west-2:123456789012:type/hook/MyOrg-Security-ComplianceHook",
      "HookResultId": "59ef501c-0ac4-47c0-a193-e071cabf748d",
      "TypeName": "MyOrg::Security::ComplianceHook",
      "TypeVersionId": "00000001",
      "HookExecutionTarget": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/39f29d10-73ed-11f0-abc1-0affdfe4aebb",
      "InvokedAt": "2025-08-08T00:18:39.651Z",
      "FailureMode": "WARN",
      "HookStatusReason": "...",
      "InvocationPoint": "PRE_PROVISION",
      "Status": "HOOK_COMPLETE_FAILED"
    },
    ...
  ]
}
```

有关响应中字段的描述，请参阅 *AWS CloudFormation API 参考[HookResultSummary](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_HookResultSummary.html)*中的。

**按挂钩 ARN 和状态筛选结果**  
要筛选结果中的常见状态，请在命令中指定`--status`选项。有效值为：
+ `HOOK_IN_PROGRESS`: Hook 当前正在运行。
+ `HOOK_COMPLETE_SUCCEEDED`: Hook 成功完成。
+ `HOOK_COMPLETE_FAILED`: Hook 已完成但验证失败。
+ `HOOK_FAILED`: Hook 在执行过程中遇到了错误。

```
aws cloudformation list-hook-results \
  --type-arn {{arn:aws:cloudformation:us-west-2:123456789012:type/hook/MyOrg-Security-ComplianceHook}} \ 
  --status {{HOOK_COMPLETE_FAILED}} \
  --region {{us-west-2}}
```

输出示例：

```
{
  "HookResults": [
    {
      "TypeArn": "arn:aws:cloudformation:us-west-2:123456789012:type/hook/MyOrg-Security-ComplianceHook",
      "HookResultId": "59ef501c-0ac4-47c0-a193-e071cabf748d",
      "TypeName": "MyOrg::Security::ComplianceHook",
      "TypeVersionId": "00000001",
      "HookExecutionTarget": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/39f29d10-73ed-11f0-abc1-0affdfe4aebb",
      "InvokedAt": "2025-08-08T00:18:39.651Z",
      "FailureMode": "WARN",
      "HookStatusReason": "...",
      "InvocationPoint": "PRE_PROVISION",
      "Status": "HOOK_COMPLETE_FAILED"
    },
    ...
  ]
}
```

有关响应中字段的描述，请参阅 *AWS CloudFormation API 参考[HookResultSummary](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_HookResultSummary.html)*中的。

**按目标类型和目标 ID 筛选结果**  
以下命令列出了特定 Cloud Control API 请求的所有 Hook 调用结果。

```
aws cloudformation list-hook-results \
  --target-type {{CLOUD_CONTROL}} \
  --target-id {{d417b05b-9eff-46ef-b164-08c76aec1801}} \
  --region {{us-west-2}}
```

输出示例：

```
{
  "HookResults": [
    {
      "TargetType": "CLOUD_CONTROL",
      "TargetId": "d417b05b-9eff-46ef-b164-08c76aec1801",
      "HookResults": [
        {
          "TypeArn": "arn:aws:cloudformation:us-west-2:123456789012:type/hook/MyOrg-Security-ComplianceHook",
          "HookResultId": "4e7f4766-d8fe-44e5-8587-5b327a148abe",
          "TypeName": "MyOrg::Security::ComplianceHook",
          "TypeVersionId": "00000001",
          "FailureMode": "WARN",
          "HookStatusReason": "...",
          "InvocationPoint": "PRE_PROVISION",
          "Status": "HOOK_COMPLETE_FAILED"
        },
        ...
      ]
    }
  ]
}
```

有关响应中字段的描述，请参阅 *AWS CloudFormation API 参考[HookResultSummary](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_HookResultSummary.html)*中的。

**获取特定调用的详细结果**  
使用[https://docs.aws.amazon.com/cli/latest/reference/cloudformation/get-hook-result.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/get-hook-result.html)命令检索有关特定 Hook 调用的详细信息，包括带有合规性检查结果的注释和补救指南。

```
aws cloudformation get-hook-result \
  --hook-result-id {{59ef501c-0ac4-47c0-a193-e071cabf748d}} \
  --region {{us-west-2}}
```

输出示例：

```
{
  "HookResultId": "59ef501c-0ac4-47c0-a193-e071cabf748d",
  "InvocationPoint": "PRE_PROVISION",
  "FailureMode": "WARN",
  "TypeName": "MyOrg::Security::ComplianceHook",
  "TypeVersionId": "00000001",
  "TypeArn": "arn:aws:cloudformation:us-west-2:123456789012:type/hook/MyOrg-Security-ComplianceHook",
  "Status": "HOOK_COMPLETE_FAILED",
  "HookStatusReason": "Hook completed with failed validations",
  "InvokedAt": "2025-08-08T00:18:39.651Z",
  "Target": {
    "TargetType": "RESOURCE",
    "TargetTypeName": "AWS::S3::Bucket",
    "TargetId": "my-s3-bucket",
    "Action": "CREATE"
  },
  "Annotations": [
    {
      "AnnotationName": "BlockPublicAccessCheck",
      "Status": "FAILED",
      "StatusMessage": "Bucket does not block public access",
      "RemediationMessage": "Enable block public access settings on the S3 bucket",
      "SeverityLevel": "HIGH"
    },
    {
      "AnnotationName": "BucketEncryptionCheck", 
      "Status": "PASSED",
      "StatusMessage": "Bucket has encryption configured correctly"
    }
  ]
}
```

有关响应中字段的描述，请参阅 *AWS CloudFormation API 参考[GetHookResult](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_GetHookResult.html)*中的。