在 AWS CloudFormation 中使用 CloudFormation CLI 运行 cfn generate 命令时,如何解决“资源规范无效”这一错误?

上次更新时间:2020 年 8 月 17 日

使用 CloudFormation 命令行界面 (CloudFormation CLI) 运行 cfn generate 命令时,我在 AWS CloudFormation 中收到 “资源规范无效”这一错误。如何解决此错误?

简短描述

cfn generate命令基于项目及资源提供程序 schema生成代码。您的资源的资源提供程序 schema 无效时,您会收到“资源规范无效”这一错误。您还会收到关于语法或命名空间无效的错误消息。

如果您遇到与使用资源提供程序有关的其他错误的问题,请参阅以下文章,以获取更多排查故障步骤:

如何解决 AWS CloudFormation 中的 “模型验证失败(#:不允许无关密钥 )”这一错误? 在 AWS CloudFormation 中使用资源提供程序类型创建资源时,如何解决“等待创建物理资源时资源超时”这一错误? 在 AWS CloudFormation 的资源提供程序资源上使用 Fn::GetAtt 函数时,如何解决“属性‘密钥’不存在”这一错误? 如何解决 AWS CloudFormation 中的“ java.lang.ClassNotFoundException:com.example.package.resource.HandlerWrapper”这一错误?

解决方法
    在执行cfn init命令的项目的根目录中,找到资源提供程序 schema。
    注意:资源提供程序 schema 文件为 JSON 文件,格式为Organization-service-resource.json。 确认您的organization-service-resource.json文件遵循的是正确的 JSON 格式。 将资源的命名空间与资源提供程序 schema 中的命名空间进行比较,然后解决您发现的任何差异。

如果上述步骤未能解决问题,请使用cfn init创建一个新项目,并逐步更新资源提供程序 schema 文件organization-service-resource.json,直至您找到导致“资源规范无效”这一错误的更改为止。