質問: ローカルでテンプレートファイルを管理しているLambdaのスタックを、 `aws cloudformation package` `aws cloudformation deloy` で更新しようとしました。 実際にデプロイは成功し、スタックのテンプレートも更新されております。しかし、パラメータの値が変更されていないので不思議に思っています。 以下のような変更を加えました。 main.yml(変更前): ``` Parameters: MyKey: Type: String Default: ABC ``` main.yml(変更後): ``` Parameters: MyKey: Type: String Default: DEF ``` デプロイ後、コンソール画面から `Template` を確認すると、Defaultには更新後の `DEF` という値が表示されています。 しかし、スタックの `Parameter` を参照すると、更新前の `ABC` という値が表示されています。 スタックが更新されていること、ステータスが直近時刻の `UPDATE_COMPLETE` であることから、スタックの更新自体は行われたものと推測しています。であれば、スタックのパラメータが更新されない理由がわかりません。 どなたかお知恵をお貸しいただければ幸いです。 [環境] aws cli: aws-cli/1.15.83 Python/3.6.5 Darwin/18.0.0 botocore/1.10.82 REGION: ap-northeast-1
回答: チラホラと述べられていますが、CloudFormation のテンプレートのデフォルトパラメータは、 Stack 作成時に、明示的に指定がない場合、その値でもって引数パラメータとして環境の初期化を行うための仕組みの様子です。 一度初期化した後には、デフォルトからコピーされた値が CloudFormation 上で管理されることになり、その値がデフォルト利用なのかユーザーが明示的に指定したものなのかの管理は、 CloudFormation では行われない様子です。 ですので、デフォルトパラメータを更新した際に、それを既存の Stack に適用するためには明示的に Stack のパラメータ更新を行う必要がある様子です。 参考: @maya2250 さんのリンク