🔎

CloudFormation テンプレートの構文エラーを自動チェックする

2021/06/24に公開

こんにちは、Masuyama です。

私は普段から CloudFormation のテンプレートをよく書くのですが、
yml 形式で書いているとちょっとした余計なスペースやタブを見逃しがちなので、スタック作成時にエラーに気づくことがよくありました。

ですが、今更ながら テンプレートの検証 を AWS CLI で出来ることを知ったので、備忘も兼ねて簡単に紹介します。
→参考:公式ドキュメント

コマンド

コマンドは一行で済みます。
ここでは、実行するディレクトリ直下に "template.yml" というテンプレートファイルがあるという例で示します。

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

ファイル名より前の部分はお決まりの定型文となるのですが、ポイントは file:// に続いてファイルを指定する必要があるという点です。

実行結果

問題がなければ、エラーメッセージが返されず、指定されたすべてのパラメーターについての情報が返されます。

$ aws cloudformation validate-template --template-body file://template.yml
{
    "Parameters": [
        {
            "ParameterKey": "Ec2InstanceType",
            "DefaultValue": "t3.nano",
            "NoEcho": false
        },
        {
...

スクリプト化

コマンドを思い出すためにドキュメントを見返したりするのも面倒なので、私は bash でスクリプト化しています。

valid.sh

#!/bin/bash
aws cloudformation validate-template --template-body file://$1

呼び出し時に第1引数としてテンプレートファイルのパスを指定してあげるだけです。
簡単ですね。

Discussion