テンプレートの検証
テンプレートファイルの構文エラーをチェックするには、aws cloudformation validate-template
コマンドを使用できます。
注記
aws cloudformation validate-template
コマンドは、テンプレートの構文のみをチェックするように設計されています。リソースに対して指定したプロパティ値が、そのリソースに対して有効であるかどうかは保証されません。また、スタックの作成時に存在するリソースの数も決定しません。
動作の妥当性を確認するには、スタックの作成を試みる必要があります。AWS CloudFormation スタックにはサンドボックスやテスト領域がないため、テスト中に作成したリソースに対して課金されます。
検証中に、AWS CloudFormation はテンプレートが有効な JSON であるかどうかをまず確認します。そうでない場合は、CloudFormation はテンプレートが有効な YAML であるかどうかを確認します。両方のチェックが失敗すると、CloudFormation はテンプレートの検証エラーを返します。--template-body
パラメーターを使用してローカルで、または --template-url
パラメーターでリモートでテンプレートを検証できます。
有効なテンプレート
以下の例は、リモートの場所でテンプレートを検証するために、--template-url
パラメータを渡します。
aws cloudformation validate-template --template-url https://s3.amazonaws.com/cloudformation-templates-us-east-1/S3_Bucket.template
以下は、前のコマンドの出力です。
{
"Description": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket.
You will be billed for the AWS resources used if you create a stack from this template.",
"Parameters": [],
"Capabilities": []
}
問題がなければ、エラーメッセージが返されず、指定されたすべてのパラメーターについての情報が返されます。
検証エラー
このセクションでは、aws cloudformation validate-template
コマンドを実行すると検証エラーが発生します。
次の例は合格では、--template-body
パラメータを使用して、テンプレートをローカルで検証します。
aws cloudformation validate-template --template-body file:///home/local/test/sampletemplate.json
以下は、前のコマンドの出力です。
{ "ResponseMetadata": { "RequestId": "4ae33ec0-1988-11e3-818b-e15a6df955cd" }, "Errors": [ { "Message": "Template format error: JSON not well-formed. (line 11, column 8)", "Code": "ValidationError", "Type": "Sender" } ], "Capabilities": [], "Parameters": [] } A client error (ValidationError) occurred: Template format error: JSON not well-formed. (line 11, column 8)
予想される結果は、エラーに関する情報がリストされたエラーメッセージです。