はじめに
備忘録として、自分がよく使う&使ったaws-cliコマンドを書きます。
今回はCloudFormation編です。長めになりそうなので、一旦create-stackのみでわけました。
注意
- 公式ドキュメントがちゃんとあります
- 前述の通り自分がよく使う&使ったものしか書いてないので、すべては網羅しておりません
スタック作成
①テンプレートがローカルにあるバージョン
aws cloudformation create-stack --stack-name スタック名 --template-body file://テンプレートのパス
②テンプレートがS3にあるバージョン
aws cloudformation create-stack --stack-name スタック名 --template-url テンプレートのURL
上記①、もしくは②に、いろいろオプション指定していきます。
IAMリソースが含まれる場合
--capabilities CAPABILITY_NAMED_IAM
マネコンから操作する時に、作成確認のチェックボックスみたいなのが出るかと思うのですが、そのチェックを入れるのと同等かと認識しております。
以下リソース作成時に出るそうです。
- AWS::IAM::AccessKey
- AWS::IAM::Group
- AWS::IAM::InstanceProfile
- AWS::IAM::Policy
- AWS::IAM::Role
- AWS::IAM::User
- AWS::IAM::UserToGroupAddition
※custom nameを持たないIAMリソースは「CAPABILITY_IAM」でもよいそうです。
削除保護有効化
--enable-termination-protection
スタックにタグつける時
--tags Key=キー,Value=値
ちなみに個々リソースに同一Keyのタグが指定してあると、そっちが優先されます。
同一Keyタグ指定をしてないと、ここで指定した値が個々リソースにも付与されます。
パラメータをjsonで渡す時
--cli-input-json file://パス
そもそもパラメータを指定する時は別途オプションがあるのですが(後述)
- より操作ミス発生の可能性を減らしたい
- パラメータがいっぱいある
ということで、あらかじめjsonファイルを作り、それを渡す方式をとることになりました。
タグなどほかオプションも、この方式で指定することができます。
パラメータ指定
--parameters ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=string ...
前述の通りパラメータ指定はjson渡してやってましたが、こんな感じのようです。
おわりに
CloudFormationの検証をしていたので、いちばん馴染み深いのがおそらくCloudFormationのコマンドかな〜と思い、これから書いてみました。
(Qiita投稿初めてなので、何か不手際があったらごめんなさい。)