クラウドツール

CloudFormationテンプレート検証— デプロイ前に範囲を確認

JSONまたはYAMLのテンプレートを1件入力し、診断と同形式の整形結果を確認します。

CloudFormationテンプレート検証

テンプレート入力

診断とプレビュー

対象の検査では問題が見つかりませんでした。

ブラウザー内で処理し、AWSへ送信しません。

検証オプション

テンプレートを入力するか例を読み込んでください。

入力上限:300000文字。

YAMLとして正しくても、!Refが未定義だったりResourcesの配置が誤っていたりするとスタック作成は失敗します。CloudFormationテンプレート検証では構文と参照を別々に示します。

CloudFormation YAML構文エラーを直した後も、結果の対象範囲を見てください。CloudFormationテンプレートの検証をAWS側で行う前に、ローカルで分かる問題だけを整理できます。 CloudFormationテンプレート形式エラーなら表示された行から修正し、CloudFormationパラメータ参照が見つからない場合は宣言と綴りを確認します。整形プレビューは元のYAMLを置き換えず、短縮タグを維持します。

CloudFormationテンプレート検証を使う理由

構文と参照を分けて表示

同じYAMLでも解析エラーと未定義の!Refは直す場所が異なります。CloudFormationテンプレート検証は行とパスを添えて両者を区別します。

構文検査を通ったテンプレートの未解決参照が、次の検査で強調されている図。

未対応リソースも隠さない

S3・SQS・SNSの一次プロパティだけを静的に確認します。未知の型や動的な値は未確認として残し、AWSでの再確認が必要なことを明示します。

既知の3種類のリソースを確認し、未知の形状は未対応として分岐する図。

形式・版・確認範囲を先に読む

01

入力形式を固定する

自動判定が曖昧ならJSONかYAMLを指定します。指定した形式で解析できない場合は、別形式へ勝手に切り替えません。

02

版と件数を確認する

版の指定がなければ2010-09-09として扱います。診断の件数と未対応リソースを確認してから結果を判断してください。

03

最新の結果だけを書き出す

入力やインデントを変えると旧結果のコピーとダウンロードは無効になります。再検証後に診断JSONまたは元形式の整形ファイルを保存します。 なお、入力形式を切り替えた場合も古い診断は使わず、現在の内容で再検証してから保存してください。

テンプレートの構造を静的に確認

JSON・YAML構文

1件のテンプレートを解析し、失敗した行列を示します。!Refや!Subの短縮タグは整形プレビューでも保持します。

ローカル参照

Ref、Fn::GetAtt、単純なFn::Subを同じテンプレートのパラメータ、リソース、疑似パラメータと照合します。

限定した型チェック

AWS::S3::Bucket、AWS::SQS::Queue、AWS::SNS::Topicの一次プロパティだけを確認し、ネストした値はAWSでの確認事項として残します。

静的な結果の境界

単一テンプレートが対象
JSONまたはYAMLを1件だけ受け付けます。Resourcesがない場合や論理IDが不正な場合は報告し、ネストしたスタックは展開しません。
スキーマは一部のみ
未知のリソースや属性は未対応として表示します。CloudFormationテンプレート検証の結果は全AWS仕様の判定ではありません。 未対応項目はエラー数と混ぜず、結果画面の件数から区別できます。
関数は評価しない
Refの名前は調べますが、条件、マクロ、アカウント内の値は計算しません。デプロイ時の値を推測して型エラーにしません。
AWSへの操作なし
資格情報もRegionも要求せず、スタックを作成しません。権限やクォータはAWS側で確認してください。

CloudFormationテンプレート検証のよくある質問

CloudFormationのテンプレートの検証エラーまたは形式エラーの解決策は?

まず表示された構文の行を直し、次にセクションと参照の診断を確認します。AWS側の検証とは対象が異なります。

YAML not well-formedエラーを解決するには?

インデントやコロン、短縮タグの付近を確認してください。解析に失敗した入力から整形ファイルは生成しません。

未解決のリソース依存関係はなぜ起きる?

Ref、GetAtt、Subの名前がこのテンプレートに見つからない状態です。宣言と綴りを確認してください。

無効なテンプレートプロパティをどう直す?

Resourcesの階層と属性名を確認します。未収録の属性は未対応と表示するため、必ずしもAWSで無効とは限りません。

パラメータの検証に失敗した場合は?

いいえ。ここでは公開したローカル規則だけを検査します。アカウントやサービスの条件はAWSで確認してください。

解決しませんでしたか?

変更後のテンプレートをもう一度確認

変更後に再検証し、最新の診断をデプロイレビューへ渡してください。