この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
CloudFormationのスタックのパラメータをCLIで出力する機会がありました。AWS CLIコマンドとRainコマンドで出力した結果を紹介させていただきます。
管理コンソールからだとここで確認できる値です。これをCLIで出力します。
AWS CLIコマンド
AWS CLIコマンドならなんとなくできそうな気がしますよね?jq
でフィルタすれば見やすく出力できます。
スタック名一覧を出力。
aws cloudformation describe-stacks | jq '.Stacks[].StackName'
一覧から確認できたスタック名blog-test-vpc-stack
のパラメータを出力してみます。
実行結果
"blog-test-vpc-stack"
"a-stack"
"b-stack"
特定のスタック名からパラメータを出力。
aws cloudformation describe-stacks --stack-name 'blog-test-vpc-stack' | jq '.Stacks[].Parameters'
JSON形式で出力できました。
出力結果
[
{
"ParameterKey": "PublicSubnetCidr1",
"ParameterValue": "10.0.1.0/24"
},
{
"ParameterKey": "ProjectName",
"ParameterValue": "blog"
},
{
"ParameterKey": "VPCCidr",
"ParameterValue": "10.0.0.0/16"
},
{
"ParameterKey": "EnableNatGateway",
"ParameterValue": "false"
},
{
"ParameterKey": "Environment",
"ParameterValue": "dev"
},
{
"ParameterKey": "PrivateSubnetCidr1",
"ParameterValue": "10.0.17.0/24"
},
{
"ParameterKey": "PrivateSubnetCidr2",
"ParameterValue": "10.0.18.0/24"
},
{
"ParameterKey": "PublicSubnetCidr2",
"ParameterValue": "10.0.2.0/24"
}
]
Rainコマンド
blog-test-vpc-stack
スタックはもともとRainでデプロイしたスタックではありません。それでもRainならいい感じに出力できるのではないかと興味本位で試します。
Version 1.2.0で試します。
$ rain -v
Rain v1.2.0 darwin/amd64
スタック名一覧出力。覚えやすいコマンドでいいですね。
rain ls
スタック名とステータスも確認できます。
出力結果
CloudFormation stacks in ap-northeast-1:
blog-test-vpc-stack: UPDATE_COMPLETE
a-stack: CREATE_COMPLETE
b-stack: CREATE_COMPLETE
rain ls -a
にすると全リージョンを対象にスタック名一覧を出力してくれます、便利。
特定のスタック名からパラメータを出力。-a
をつけないとOutputsの内容しか出力されませんでした。
rain ls -a blog-test-vpc-stack
YAML形式で出力できました。Parametes
以下の値だけの出力は難しい。
出力結果
Stack blog-test-vpc-stack: UPDATE_COMPLETE
Parameters:
PublicSubnetCidr1: 10.0.1.0/24
ProjectName: blog
VPCCidr: 10.0.0.0/16
EnableNatGateway: false
Environment: dev
PrivateSubnetCidr1: 10.0.17.0/24
PrivateSubnetCidr2: 10.0.18.0/24
PublicSubnetCidr2: 10.0.2.0/24
Resources:
AttachGateway: CREATE_COMPLETE
blog-Attac-10ZSXM0NAA8S7
--- snip ---
Outputs:
ExportPublicSubnet2: subnet-09ee813780b84b083 # exported as blog-test-vpc-stack-PublicSubnet2
おわりに
出力した結果を再利用するのであればJSON形式で出力されるAWS CLIを使ったほうが便利でした。