Template format error: unsupported structure seen in AWS CloudFormation

I am trying to validate an AWS example CloudFormation template using a command like:

▶ aws cloudformation validate-template --template-body template.yml

This leads to the following error message:

An error occurred (ValidationError) when calling the ValidateTemplate operation:
Template format error: unsupported structure.

I tried this on many templates, including example templates from the AWS documentation. So I know the templates are okay.

What am I doing wrong?

27381 次浏览

Apparently, the very unhelpful error message comes as a result of improper formatting in the CLI command.

The --template-body argument must be specified as a file URI.

Thus, the correct, runnable form of the command above is:

▶ aws cloudformation validate-template --template-body file://template.yml

See this blog post for more information.

In case, you are using windows file system, you can use like this:

--template-body file://c:/Windows/myfile.json

or

--template-body file://localhost/c$/Windows/myfile.json
` aws cloudformation create-stack --region us-east-1 \
--stack-name c3-app -\
-template-body file:..//starter/c3-app.yml \
--capabilities CAPABILITY_IAM
`

the template-body must specified with file:"destination of the file from location you are now"