cloudformation:CreateStack のオプションを整理する
create-stack — AWS CLI 1.18.78 Command Reference
--stack-name
スタック名。必須。
英数字またはハイフンのみ。
最大128文字で、先頭は英文字でなければならない。
また、リージョン内でユニークという制約がある。
--template-body | --template-url
テンプレートファイルの指定。
どちらか片方でよい。
S3に配置されたファイルを使う場合は、--template-url
にURLを指定する。
ローカルのファイルを使う場合は、--template-body file://{path}
のような形で指定する。
--parameters
パラメータの受け渡し。 JSON文字列を指定するか、以下のようなショートハンドでも書ける。
ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=string ...
UsePreviousValue
は作成時は使えない。更新時に、前回渡したパラメータを引き継ぐかどうか。
ResolvedValue
はパラメータストア(ssm)の参照っぽいんですが、ドキュメントが薄くサンプルも見つからないため具体的な挙動は確認できていません。
Read-only. The value that corresponds to a Systems Manager parameter key. This field is returned only for SSM parameter types in the template.
--disable-rollback | --no-disable-rollback
スタックの作成に失敗した時ロールバックするかどうか。
デフォルトではするので、それを無効にしたい場合に--disable-rollback
を渡すような使い方しかないと思う。
また、このオプションは次の--on-failure
と競合する。
--on-failure
スタックの作成に失敗した時の挙動を決める。
デフォルトではROLLBACK
で、以下の3つから指定できる。
- DO_NOTHING
- ROLLBACK
- DELETE
--disable-rollback
とは併用できない。
明記はないが--disable-rollback
はDO_NOTHING
と同じ挙動っぽい。
DELETE
はスタックを自動で削除してしまう。削除されるとなんでエラーになったのかイベントが見れなくなるのでおすすめしない。
--rollback-configuration
ロールバックをトリガーするための詳細条件を設定できる。
CloudWatchと連携して各リソースごとに閾値を設定し、アラーム状態になったらオペレーションを中止してロールバックする、みたいなことを実現する。
使ったことがないので想定するケースがよくわからない。
--timeout-in-minutes
スタックの作成ステータスを失敗とするまでのタイムアウト値
--notification-arns
Cloudformationのイベントの通知先のSNSのトピックのARN。
オペレーションの実行 IAM がSNS:Publish
権限を有している必要がある。
--capabilities
スタックに特定のIAM関連のリソースがある場合、確認用に渡す必要があるちょっと特殊なオプション。
「IAMに関する操作あるけど大丈夫?認識してる?意図通り?」っていう確認。
値としては CAPABILITY_IAM
,CAPABILITY_NAMED_IAM
,CAPABILITY_AUTO_EXPAND
の3種類がある。
基本的にはCAPABILITY_IAM
, 名前付きのIAMリソースがある場合はCAPABILITY_NAMED_IAM
, マクロでテンプレートを生成する場合はCAPABILITY_AUTO_EXPAND
が必要になる。
とりあえず全部わっとまとめて渡しておけば通せる。
--resource-types
これもcapabilities
っぽい動きをするオプションで、意図せぬリソースが含まれていないかを確認するような仕組み。
AWS::EC2::Instance, AWS::EC2::*,
のような値を渡して、このリストに含まれていないリソースを作ろうとしていたらオペレーションを失敗させるみたいな。
これも使ったことない。
--role-arn
オペレーションの実行IAMロールを指定できる。
サービスロールを使う場合ですね。
なんでサービスロールを使ったほうがいいの?という点に関しては拙著ですが以下をお読みください。 bluepixel.hatenablog.com
--stack-policy-body | --stack-policy-url
作成されたスタックの更新許可を制御する仕組み。
デフォルトでは全てのリソースが更新可能になっているが、ポリシーベースで柔軟に制御をかけられる。
例えばデータベースの更新など物理的なリソースの置換を伴いデータが吹っ飛ぶような危険な操作をできないようにするとかだろうか。
テンプレートの時と同じく、S3のURLを指定してファイルを読み込ませることもできる。
--tags
解説不要ですね。
スタックに対してタグを指定すると管理下のリソースに対して一括でタグを付与してくれるのでとても便利。
--client-request-token
一意の値を指定してオペレーションを識別できるようにするトークン。
マネコンではデフォルト非表示っぽい?けど歯車から表示するように設定できる。
--enable-termination-protection | --no-enable-termination-protection
削除保護。
デフォルトは無効。
以上です。