私たちのCFテンプレートの一部を更新し、それが参照するスタックを更新しようとしていました。いくつかのデフォルト値を追加してCloudWatchアラームを追加し、m4.xlargeからm4.largeにインスタンスをダウングレードする予定です。更新スタックw。 "置換:条件付き";それは置き換えますか?
私は既にEC2-GUIのインスタンスをダウングレードしており、うまくいっています。私は元のテンプレート、すなわちm4.xlargeのようにデフォルト状態に戻しました。 しかし、instancetypeのテンプレートのデフォルト値を変更すると、変更されたテンプレートをCloudFormationにアップロードしても反映されません。 デフォルト値はまだm4.xlargeなので、テンプレートに指定されているようにm4.largeを選択するにはドロップダウンメニューを使用する必要があります。
instancetypeを変更しないと、私は "Replacement:False"と表示されますが、instancetypeを更新すると "Replacement:Conditional"と表示されます。
私は「詳細は」私が見る「チェンジ詳細」の下でより多くを読み、そして場合:
[
{
"resourceChange": {
"logicalResourceId": "CPUAlarm",
"action": "Add",
"physicalResourceId": null,
"resourceType": "AWS::CloudWatch::Alarm",
"replacement": null,
"details": [],
"scope": []
},
"type": "Resource"
},
{
"resourceChange": {
"logicalResourceId": "myInstanceName",
"action": "Modify",
"physicalResourceId": "<masked>",
"resourceType": "AWS::EC2::Instance",
"replacement": "Conditional",
"details": [
{
"target": {
"name": null,
"requiresRecreation": "Never",
"attribute": "Tags"
},
"causingEntity": null,
"evaluation": "Dynamic",
"changeSource": "DirectModification"
},
{
"target": {
"name": null,
"requiresRecreation": "Never",
"attribute": "Tags"
},
"causingEntity": "Project",
"evaluation": "Static",
"changeSource": "ParameterReference"
},
{
"target": {
"name": null,
"requiresRecreation": "Never",
"attribute": "Tags"
},
"causingEntity": null,
"evaluation": "Static",
"changeSource": null
},
{
"target": {
"name": "InstanceType",
"requiresRecreation": "Conditionally",
"attribute": "Properties"
},
"causingEntity": "InstanceType",
"evaluation": "Static",
"changeSource": "ParameterReference"
},
{
"target": {
"name": "InstanceType",
"requiresRecreation": "Conditionally",
"attribute": "Properties"
},
"causingEntity": null,
"evaluation": "Dynamic",
"changeSource": "DirectModification"
}
],
"scope": [
"Properties",
"Tags"
]
},
"type": "Resource"
},
{
それでは、私が見ることができることはつまり: 「名前」:「InstanceType」、「requiresRecreation」: "条件付き "は、より制限的な値を持つ唯一の値であるため、スタック全体が「置換:条件付き」になります。
AWSごとに: "AWS CloudFormationは、変更セットを実行した後にのみ値を判断することができます。AWS CloudFormationは、動的評価としてこれらの変更をラベル付けします。たとえば、条件付きで置き換えられた更新されたリソースAWS CloudFormationでは、更新されたリソースへの参照が変更されるかどうかを判断できません。
私の知る限り「交換:条件」正しい、すなわち、順番に、関連のSGなどを変更するために私を強制的にそれはまた、それをしないかもしれない新しいphysicalResourceIDを作成するリソースを置き換える「かもしれませんか」?
ご協力いただきありがとうございます。