AWS示例模板上的AWS cloudformation命令失败

bge*_*hel 9 amazon-web-services aws-cloudformation

我正在尝试启动并运行AWS Cloudformation,但是对于我尝试使用的每个模板都获得相同的,没有帮助的错误消息,其中大部分都是直接从AWS网站复制的.

我跑

? aws cloudformation validate-template --template-body template.yml
Run Code Online (Sandbox Code Playgroud)

并得到错误

An error occurred (ValidationError) when calling the ValidateTemplate operation:
  Template format error: unsupported structure. 
Run Code Online (Sandbox Code Playgroud)

无论我用什么文件作为模板.例如,hellobucket.yml文件直接来自AWS指南,使用cloudformation作为工作模板的一个非常简单的示例:http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/gettingstarted.templatebasics . HTML

这个链接说:

我们来看一个非常基本的模板.以下模板声明了AWS :: S3 :: Bucket类型的单个资源:名称为HelloBucket.

YAML

? aws cloudformation validate-template --template-body template.yml
Run Code Online (Sandbox Code Playgroud)

如果您使用此模板创建堆栈,AWS CloudFormation将创建Amazon S3存储桶.创建存储桶很简单,因为AWS CloudFormation可以使用默认设置创建存储桶.

但是不起作用.当它说结构不受支持并且我没有关于如何修复它的线索时,不知道什么是cli意味着什么.

任何指导赞赏.谢谢!

bge*_*hel 20

显然,这个非常无用的错误消息是由于cli命令中的格式不正确而导致的.

对于--template-body标志,必须将系统上的完整文件路径与--template-body前缀一起包括在模板文件中.

上面命令的正确,可运行的形式是

? aws cloudformation validate-template --template-body file://template.yml
Run Code Online (Sandbox Code Playgroud)

更多信息:https://randops.org/2016/11/11/confusing-syntax-error-with-aws-cli-and-cf-templates/

  • 如果没有这个答案,我将无法弄清楚这一点!你在避风港有一个特殊的地方...... (3认同)
  • 我的测试表明,只要包含`file://`,文件的相对路径就可以从命令行使用 (2认同)
  • 为未来的读者做一些澄清... `--template-body` CLI 参数采用一个 `string` 参数,即模板作为字符串。使用“file://”允许提供本地文件而不是字符串。 (2认同)

小智 6

如果您使用的是 Windows 文件系统,您可以这样使用:

--template-body file://c:/Windows/myfile.json
Run Code Online (Sandbox Code Playgroud)

或者

--template-body file://localhost/c$/Windows/myfile.json
Run Code Online (Sandbox Code Playgroud)