2017-02-02 2 views
2

Я пытаюсь встать и работать с облачной областью AWS, но получаю то же самое, а не полезное сообщение об ошибке для каждого шаблона, который я пытаюсь использовать, большинство из которых были скопированы непосредственно с веб-сайта AWS ,Ошибка команды облаков AWS на примерах шаблонов AWS

Я бегу

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

и получить ошибку

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

Независимо от того, какой файл я использую в качестве шаблона. Например, файл hellobucket.yml, поступает непосредственно от руководства AWS к использованию CloudFormation как супер простой пример рабочего шаблона: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/gettingstarted.templatebasics.html

Эта ссылка говорит:

Давайте посмотрим на очень базовый шаблон. Следующий шаблон объявляет единственный ресурс типа AWS :: S3 :: Bucket: с именем HelloBucket.

YAML

Resources: 
    HelloBucket: 
    Type: AWS::S3::Bucket 

Если вы используете этот шаблон, чтобы создать стек, AWS CloudFormation создаст ведро Amazon S3. Создание ведра прост, так как AWS CloudFormation может создавать ведро с настройками по умолчанию.

BUT не работает. Не знаю, что означает aws cli, когда он говорит, что структура не поддерживается, и у меня нет причин, как ее исправить.

Любое руководство оценено. Благодаря!

ответ

2

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

Для флага --template-body необходимо указать полный путь к файлу в системе в файл шаблона вместе с префиксом file://.

Правильно, запускаемая форма команды выше

aws cloudformation validate-template --template-body file://{path_to_file}/hellobucket.yml 

больше информации здесь: https://randops.org/2016/11/11/confusing-syntax-error-with-aws-cli-and-cf-templates/

+1

в SYS ошибок, что строка «hellobucket.yml» не является собственно шаблон CloudFormation, который является истинным;) – hellomichibye

+1

Мой тест показывает, что относительный путь к файлу работает из командной строки, если включен файл: // ' – Jon

+0

Правильно, поэтому это работает' file: //./ my.yaml' –