StackSet は個別のスタックインスタンスのパラメータを上書きすることができます。
上書きした後のそのスタックインスタンスのパラメータは、StackSet の更新からは変更ができません。
パラメータ値の上書きは、選択されたアカウントとリージョンのスタックインスタンスに適用されます。スタックセットの更新中、スタックインスタンスで上書きされたすべてのパラメータ値は更新されず、上書きされた値を保持します。
https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/stackinstances-override.html
実際に変更できないか挙動を確認してみました。
利用したテンプレートは以下で、SNS を作成するテンプレートです。
AWSTemplateFormatVersion: "2010-09-09"
Parameters:
Tag:
Type: String
Resources:
SNS:
Type: AWS::SNS::Topic
Properties:
TopicName: stackset-sns
Tags:
- Key: parameter
Value: !Ref Tag
試した結果を記載していきます。
StackSet 作成
- StackSet パラメータ:test1
- 東京・大阪リージョンにスタックをデプロイ
- 東京
- パラメータ:test1
- 大阪
- パラメータ:test1
StackSet 更新(StackSet の詳細の編集)
- StackSet パラメータ:test2
- 東京・大阪リージョンにデプロイ
- 東京
- パラメータ:test2
- 大阪
- パラメータ:test2
StackSet 更新(StackSet の詳細の編集)
- StackSet パラメータ:test3
- 東京リージョンにデプロイ
- 東京
- パラメータ:test3
- 大阪
- パラメータ:test2
StackSet パラメータの上書き
- パラメータの上書き:test4
- 大阪リージョンにデプロイ
- 東京
- パラメータ:test3
- 大阪
- パラメータ:test4(上書き)
StackSet にスタックを追加
- パラメータ変更せず( test3 のまま)
- シンガポールリージョンにデプロイ
- 東京
- パラメータ:test3
- 大阪
- パラメータ:test4(上書き)
- シンガポール
- パラメータ:test3
StackSet にスタックを追加
- パラメータ変更せず(test 3 のまま)
- 東京・大阪・シンガポール・シドニーリージョンにデプロイ
- 既存スタックインスタンスに対してデプロイしたらエラーにならないか検証
- 結論:エラーにならない
- 東京
- パラメータ:test3
- 大阪
- パラメータ:test4(上書き)
- シンガポール
- パラメータ:test3
- シドニー
- パラメータ:test3
StackSet にスタックを追加
- パラメータの上書き: test5
- シドニーリージョンにデプロイ
- 東京
- パラメータ:test3
- 大阪
- パラメータ:test4(上書き)
- シンガポール
- パラメータ:test3
- シドニー
- パラメータ:test5(上書き)
StackSet の更新(StackSet の詳細を編集)
- StackSet パラメータ:test6
- 東京・大阪・シンガポール・シドニーリージョンにデプロイ
- 東京
- パラメータ:test6
- 大阪
- パラメータ:test4(上書き)
- シンガポール
- パラメータ:test6
- シドニー
- パラメータ:test5(上書き)
まとめ
当たり前のことですが、ドキュメントのとおり上書きしたパラメータは StackSet の更新からは変更できないことを確認できました。