Ошибка формата шаблона: в AWS CloudFormation обнаружена неподдерживаемая структура

Я пытаюсь проверить пример шаблона CloudFormation AWS с помощью такой команды:

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

Это приводит к следующему сообщению об ошибке:

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

Я пробовал это на многих шаблонах, включая примеры шаблонов из документации AWS. Так что я знаю, что с шаблонами все в порядке.

Что я делаю неправильно?


person bgenchel    schedule 02.02.2017    source источник
comment
Близким избирателям ... Этот вопрос явно не не по теме для SO. AWS CloudFormation - это инструмент, используемый разработчиками для развертывания приложений в облаке; например Бессерверные приложения на Amazon; AWS CFN - это декларативный DSL с функциями программирования; Люди из научной фантастики, не обладающие знаниями в области программирования, не могли ответить на этот вопрос и не имели бы в нем никакой пользы.   -  person Alex Harvey    schedule 27.03.2019


Ответы (2)


По-видимому, это очень бесполезное сообщение об ошибке появляется в результате неправильного форматирования в команде CLI.

Аргумент --template-body должен быть указан как URI файла.

Таким образом, правильная исполняемая форма приведенной выше команды:

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

См. это сообщение в блоге для получения дополнительной информации.

person bgenchel    schedule 02.02.2017
comment
ошибка sys в том, что строка hellobucket.yml не является правильным шаблоном облачной информации, что верно;) - person hellomichibye; 02.02.2017
comment
Мой тест показывает, что относительный путь к файлу работает из командной строки, если включен file:// - person Jon; 16.06.2017
comment
Небольшое пояснение для будущих читателей ... Параметр --template-body CLI принимает аргумент string, т.е. шаблон в виде строки. Использование file:// позволяет предоставить локальный файл вместо строки. - person Les; 21.10.2020
comment
Если предполагается, что это один uri, тогда было бы лучше показать предполагаемую схему в сообщении об ошибке, таким образом, если я вижу http: // template.yml, я знаю, что мне нужно изменить http: by file: - person yucer; 23.02.2021
comment
Без этого ответа я бы не смог это понять! У тебя есть особое место в убежище ... - person Benjamin; 17.05.2021
comment
Те же комментарии, что и у @Benjamin .. Ты спас мне день. AWS действительно следует улучшить это сообщение об ошибке. Я написал свой шаблон снова и снова, но по-прежнему получал ошибку. - person Vishal; 11.06.2021

В случае, если вы используете файловую систему Windows, вы можете использовать это так:

--template-body файл: // c: /Windows/myfile.json

or

--template-body файл: //localhost/c$/Windows/myfile.json

person jelongpark    schedule 18.02.2021