查看 Hook 的调用 CloudFormation 结果 - CloudFormation

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

查看 Hook 的调用 CloudFormation 结果

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

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

在控制台中查看调用结果

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

查看所有 Hook 的结果

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

查看所有 Hook 的结果
  1. 登录 AWS 管理控制台 并在 https://console.aws.amazon.com/cloudformat ion 上打开 CloudFormation 控制台。

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

  3. 在导航窗格中,选择调用摘要

  4. 该页面显示了过去 90 天内所有 Hook 调用的列表,包括:

    • 调用 ID

    • Hook

    • Target

    • 模式(WarnFail

    • 结果 (Warning,Pass,Failed,In progress)

    • 调用时间

    • 结果消息

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

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

查看单个 Hook 的调用历史记录

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

查看特定 Hook 的挂钩调用
  1. 登录 AWS 管理控制台 并在 https://console.aws.amazon.com/cloudformat ion 上打开 CloudFormation 控制台。

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

  3. 从导航窗格中选择 Hooks

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

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

查看特定于堆栈的调用的结果

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

查看特定堆栈的 Hook 调用
  1. 登录 AWS 管理控制台 并在 https://console.aws.amazon.com/cloudformat ion 上打开 CloudFormation 控制台。

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

  3. 从导航窗格中,选择堆栈

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

  5. 选择堆栈事件选项卡。

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

  7. 要查看特定的 Hook 调用详细信息,请查看 Hook 调用列,然后选择带下划线的文本以打开包含更多详细信息的弹出窗口。

    注意

    要显示隐藏的列,请选择该部分右上角的齿轮图标以打开 “首选项” 模式,根据需要更新设置,然后选择 “确认”。

使用查看调用结果 AWS CLI

使用list-hook-results命令检索有关 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中的。

按挂钩 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中的。

按目标类型和目标 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中的。

获取特定调用的详细结果

使用get-hook-result命令检索有关特定 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中的。