You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CloudFormation栈模板报错:无法识别指定Hook资源类型

问题分析

你遇到的报错核心原因是:AWS::CloudFormation::Hook和AWSSamples::LambdaFunctionInvoker::Hook不属于CloudFormation栈模板的资源类型,不能直接放在模板的Resources块中定义。CloudFormation Hook是用于合规验证的扩展机制,需要通过「注册Hook类型+栈部署时指定配置」的方式使用,而非作为栈内资源创建。

修正步骤

1. 确认Hook类型已注册到目标AWS账户/区域

如果还未注册AWSSamples::LambdaFunctionInvoker::Hook类型,执行以下CLI命令完成注册(需提供Hook的schema handler包,可从AWS Samples相关资源获取):

aws cloudformation register-type \
  --type HOOK \
  --type-name AWSSamples::LambdaFunctionInvoker::Hook \
  --schema-handler-package s3://<你的存储桶路径>/hook-package.zip

若该Hook是AWS公共可用类型,可添加--public-version参数引用官方发布的版本。

2. 清理原模板的错误定义

修改你的CloudFormation模板,删除Resources块内的LambdaFunctionInvokerHook部分(因为Hook不属于栈资源范畴),保留模板中原本需要创建的其他资源内容。

3. 部署栈时指定Hook配置

CLI部署方式

使用aws cloudformation create-stack命令时,通过--hooks参数传入Hook配置:

aws cloudformation create-stack \
  --stack-name 你的目标栈名称 \
  --template-body file://清理后的模板文件路径.yml \
  --hooks '[
    {
      "Type": "AWSSamples::LambdaFunctionInvoker::Hook",
      "Properties": {
        "LambdaFunctions": ["arn:aws:lambda:us-east-1:account_id:function:function_name"]
      }
    }
  ]'

控制台部署方式

在CloudFormation控制台创建/更新栈的流程中,找到配置选项 -> 钩子板块,点击「添加钩子」,选择AWSSamples::LambdaFunctionInvoker::Hook类型,然后填入对应的LambdaFunctions配置即可。

内容的提问来源于stack exchange,提问作者Lalana Nagaraj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 05:59:53