ローカルにあるCloudFormationテンプレートを利用して、PowershellからCloudFormationスタックを作成するコマンド。地味にハマったので、メモ。
CloudFormationスタック作成用のコマンドレットはこちら。
AWS CloudFormation: New-CFNStack Cmdlet | AWS Tools for PowerShell
"TemplateBody"というオプションがあるので、これを利用すればいいのだなあ、とコマンドを実行しても上手くいかない。以下エラーメッセージが返ってくる。
PS > New-CFNStack -StackName TestStack -TemplateBody file://C:/temp/Test.template
Template format error: unsupported structure
「テンプレートの構造が違う」って?!いやいや、コンソールからは、そのテンプレート使って処理できるから。などと困惑していたら、stack overflow が教えてくれました。偉大ですね。
"TemplateBody"にローカルファイルのURIを指定しても駄目らしいです。以下みたいに、変数へ一度読み込まないとっ、て話らしいです。
PS > $template = "C:/temp/Test.template" PS > $content = [IO.File]::ReadAllText($template) PS > Test-CFNTemplate -TemplateBody $content
Test-CFNTemplate は、テンプレートの構造を確認してくれるコマンドレット。テンプレート確認の都度、スタック実行するのは、お金もかかっちゃうし、だるいしで、検証作業にお薦めとのこと。