2017-02-02 5 views
2

AWS Cloudformを使用して稼働しようとしていますが、使用しようとしているすべてのテンプレートに対して同じ、有用でないエラーメッセージが表示されます。そのほとんどはAWS Webサイトから直接コピーされています。AWS cloudformコマンドが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ファイル、作業テンプレートのスーパー簡単な例としてcloudformationを使用するAWSガイドから直接来る:http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/gettingstarted.templatebasics.html

このリンクは言う:

はのは非常に見てみましょう基本テンプレート。次のテンプレートは、名前がHelloBucketのAWS :: S3 :: Bucketタイプの単一リソースを宣言しています。

YAML

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

あなたがスタックを作成するには、このテンプレートを使用する場合は、AWS CloudFormationは、Amazon S3バケットを作成します。 AWS CloudFormationではデフォルト設定のバケットを作成できるため、バケットの作成は簡単です。

しかし、動作しません。構造がサポートされていないと言っているときに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

私のテストでは、 'file://'が含まれている限り、ファイルへの相対パスはコマンドラインから動作することが示されています – Jon

+0

正しいので、 'file://./ my.yaml' –

関連する問題