AWS CloudFormation は AWS CLI から CloudFormation のスタック作成などができますが、ターミナルでコマンドを実行した後にブラウザで進捗や結果を確認するのが辛かったので、ターミナルで実行と進捗確認ができるスクリプトを書いてみました。
コードは GitHub に置いておきます。
https://github.com/karakaram/aws-cloudformation-helper
ターミナルで実行すると、こんな感じでイベントの出力を眺めながら終了を待つことができるようになります。
$ my-cfn create-stack \
--template ec2.yaml \
--parameter ec2.json \
--region us-east-1
{
"StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/ec2/48d58b40-9a8e-11eb-ac25-0e211a4ad657"
}
"Timestamp" "Logical Id" "Status" "Status reason"
"2021-05-19T06:22:26.346" "ec2" "CREATE_IN_PROGRESS" "User Initiated"
"2021-05-19T06:22:31.609" "EC2Instance" "CREATE_IN_PROGRESS"
"2021-05-19T06:22:33.863" "EC2Instance" "CREATE_IN_PROGRESS" "Resource creation Initiated"
"2021-05-19T06:22:49.731" "EC2Instance" "CREATE_COMPLETE"
"2021-05-19T06:22:51.016" "ec2" "CREATE_COMPLETE"
内部では CloudFormation を実行し終了を待ち、数秒おきにスタックのイベントをポーリングして jq で整形して出力をしています。今は CDK があるので新規に CloudFormation テンプレートを書く機会は減っているかと思いますが、参考にどうぞ。
使い方
AWS CLI と jq のインストールと設定を済ませておきます。
スクリプトをダウンロードして PATH が通った場所に置きます。
curl https://raw.githubusercontent.com/karakaram/aws-cloudformation-helper/main/my-cfn -o /usr/local/bin/my-cfn
スクリプトに実行権限を与えます。
chmod +x /usr/local/bin/my-cfn
実行します。
my-cfn create-stack \
-t ec2.yaml \
--region us-east-1
このほか、update-stack
や delete-stack
などもあります。細かいことは README やヘルプをご確認ください。
コマンドの実行終了を通知する
CloudFormation の実行は結構時間がかかります。Mac の iTerm2 をお使いのかたは、こちらの方法で終了を通知することができます。
-
MacのiTerm2でコマンドが終了したら通知する
Mac の iTerm2 でコマンドが終了したら通知する方法を紹介します。時間がかかるコマンドを実行しながら、別の作業を ...
続きを見る