gpt4 book ai didi

amazon-web-services - 预提交钩子(Hook)获取 "E0000 Template needs to be an object."

转载 作者:行者123 更新时间:2023-12-03 07:34:21 28 4
gpt4 key购买 nike

cfn-lint 版本:0.53.0

问题描述。

我的 Ubuntu 机器上有以下设置

  1. cfn-lint
  2. cfn-python-lint via pre-commit

情况 1:如果我从项目根文件夹的终端运行 cfn-lint ./**/*.yml 则不会出现错误

情况 2:如果我现在尝试在安装了预提交的情况下 git 提交代码,则会出现以下错误“E0000 模板需要是一个对象”。参数 JSON 文件。

参数 JSON 看起来像这样:

[
{
"ParameterKey": "XKey",
"ParameterValue": "XValue"
},
{
"ParameterKey": "YKey",
"ParameterValue": "YValue"
},
..
..
..
..
]

.pre-commit-config.yaml 文件看起来像

repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.4.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-added-large-files
- id: pretty-format-json
args:
- --autofix
- repo: https://github.com/awslabs/cfn-python-lint
rev: v0.53.0
hooks:
- id: cfn-python-lint
files: ./.*\.(json|yml|yaml)$

最佳答案

在情况 1 中,您仅匹配具有 *.yml 扩展名的文件,而不是 JSON 扩展名。然而,在案例 2 中,作为您的预提交 Hook ,您也包含 json 文件。这意味着它可能会尝试将您的参数 JSON 文件解释为 CloudFormation 文件。

您的参数文件不是 CloudFormation,但它是一个包含一些值的简单 JSON 数组。 CloudFormation 文件始终是一个对象,而不是顶层的数组。这可以解释错误消息。解决方案:仅在 cfn-python-lint 扫描中包含实际上是 CloudFormation 文件的文件。

关于amazon-web-services - 预提交钩子(Hook)获取 "E0000 Template needs to be an object.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68664454/

28 4 0