変更セットの作成後、実行前に目的の変更を確認できます。変更セットの表示には CloudFormation コンソール、AWS CLI、または CloudFormation API を使用できます。CloudFormation コンソールは、変更の概要、および JSON 形式の変更の詳細なリストを提供します。AWS CLI および AWS CloudFormation API は、JSON 形式の変更の詳細なリストを返します。
変更セットを表示するには
-
https://console.aws.amazon.com/cloudformation
で AWS CloudFormation コンソール を開きます。 -
画面上部にあるナビゲーションバーで、AWS リージョン を選択します。
-
[Stacks] ページで、表示する変更セットを含むスタックの名前を選択します。
-
ナビゲーションペインで、[変更セット] を選択して、スタックの変更セットのリストを表示します。
-
表示する変更セットの名前を選択します。
CloudFormation コンソールに変更セットの詳細ページが表示されます。ここで変更セットの作成時刻、ステータス、変更セットの生成に使用された入力、および変更の要約を確認できます。
[Changes] (変更) セクションの各行は、CloudFormation が追加、変更、削除するリソースを表します。
-
Add (追加) – スタックのテンプレートにリソースを追加すると、CloudFormation によってリソースが作成されます。
-
Modify (変更) – スタックのテンプレート内のリソースのプロパティを変更すると、CloudFormation はリソースを変更します。
-
Remove (削除) – スタックのテンプレートから既存のリソースを削除すると、CloudFormation によってリソースが削除されます。
注記
変更によってリソースが中断されたり置き換え (再作成) されたりすることがあります。リソースの更新動作の詳細については、スタックリソースの更新動作を理解するを参照してください。
特定の変更に注目するには、フィルタビューを使用します。たとえば、
AWS::EC2::Instance
などの特定のリソースタイプをフィルタリングします。特定のリソースをフィルタリングするには、myWebServer
やi-123abcd4
のような論理 ID または物理 ID を指定します。 -
-
[変更] セクションで、[プロパティレベルの変更] 列にある [詳細を表示] を選択して、リソースに対して行われたプロパティ値の変更を表示します。
-
CloudFormation コンソールがリソースのプロパティレベルの変更ページを表示します。このページでは、変更セットを実行する前のリソースのテンプレート設定と、変更セットを実行した後のテンプレート設定を確認できます。
[プロパティレベルの変更] セクションの表には、影響を受けるプロパティの [パス]、[変更タイプ]、[変更前の値]、および [変更後の値] が表示されます。この表で、テンプレートの [変更前] ビューと [変更後] ビューで強調表示したい各変更のチェックボックスを選択して、プロパティレベルでどのような変更が行われるのかを確認します。
-
追加 – 追加されたプロパティは緑色で強調表示されます。
-
変更 – 変更されたプロパティは青色で強調表示されます。
-
削除 – 削除されたプロパティは赤で強調表示されます。
-
変更セットを表示するには (AWS CLI)
-
変更セットの ID を取得するには、change-sets コマンドを実行します。
次の例のように、表示する変更セットがあるスタックの名前を指定します。
aws cloudformation list-change-sets --stack-name
MyStack
CloudFormation から、次のような変更セットのリストが返されます。
{ "Summaries": [ { "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/MyStack/1a2345b6-0000-00a0-a123-00abc0abc000", "Status": "CREATE_COMPLETE", "ChangeSetName": "SampleChangeSet", "CreationTime": "2020-11-18T20:44:05.889Z", "StackName": "MyStack", "ChangeSetId": "arn:aws:cloudformation:us-east-1:123456789012:changeSet/SampleChangeSet/1a2345b6-0000-00a0-a123-00abc0abc000" }, { "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/MyStack/1a2345b6-0000-00a0-a123-00abc0abc000", "Status": "CREATE_COMPLETE", "ChangeSetName": "SampleChangeSet-conditional", "CreationTime": "2020-11-18T21:15:56.398Z", "StackName": "MyStack", "ChangeSetId": "arn:aws:cloudformation:us-east-1:123456789012:changeSet/SampleChangeSet-conditional/1a2345b6-0000-00a0-a123-00abc0abc000" }, { "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/MyStack/1a2345b6-0000-00a0-a123-00abc0abc000", "Status": "CREATE_COMPLETE", "ChangeSetName": "SampleChangeSet-replacement", "CreationTime": "2020-11-18T21:03:37.706Z", "StackName": "MyStack", "ChangeSetId": "arn:aws:cloudformation:us-east-1:123456789012:changeSet/SampleChangeSet-replacement/1a2345b6-0000-00a0-a123-00abc0abc000" } ] }
-
表示する変更セットの ID を指定して describe-change-set コマンドを実行します。以下に例を示します。
aws cloudformation describe-change-set \ --change-set-name
arn:aws:cloudformation:us-east-1:123456789012:changeSet/SampleChangeSet/1a2345b6-0000-00a0-a123-00abc0abc000
CloudFormation から、指定された変更セットに関する情報が返されます。
{ "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/MyStack/1a2345b6-0000-00a0-a123-00abc0abc000", "Status": "CREATE_COMPLETE", "ChangeSetName": "SampleChangeSet-direct", "Parameters": [ { "ParameterValue": "testing", "ParameterKey": "Purpose" }, { "ParameterValue": "ellioty-useast1", "ParameterKey": "KeyPairName" }, { "ParameterValue": "t2.micro", "ParameterKey": "InstanceType" } ], "Changes": [ { "ResourceChange": { "ResourceType": "AWS::EC2::Instance", "PhysicalResourceId": "i-1abc23d4", "Details": [ { "ChangeSource": "DirectModification", "Evaluation": "Static", "Target": { "Attribute": "Tags", "RequiresRecreation": "Never" } } ], "Action": "Modify", "Scope": [ "Tags" ], "LogicalResourceId": "MyEC2Instance", "Replacement": "False" }, "Type": "Resource" } ], "CreationTime": "2020-11-18T23:35:25.813Z", "Capabilities": [], "StackName": "MyStack", "NotificationARNs": [], "ChangeSetId": "arn:aws:cloudformation:us-east-1:123456789012:changeSet/SampleChangeSet-direct/9edde307-960d-4e6e-ad66-b09ea2f20255" }
--include-property-values
を describe-change-set とともに使用して、プロパティレベルの変更を一覧表示します。Changes
キーリストはリソースを変更します。この変更セットを実行した場合、CloudFormation によってi-1abc23d4
EC2 インスタンスのタグが更新されます。各フィールドの説明については、「AWS CloudFormation API リファレンス」の「Change
データ型」を参照してください。変更セットのその他の例については、CloudFormation スタックの変更セットの例を参照してください。
変更セット内のプロパティレベルの変更を表示する (AWS CLI)
-
以下のコマンドは、
Ipv4Prefixes
プロパティを削除し、リソースのDescription
を変更して、Tag
を追加する、AWS::EC2::NetworkInterface
リソースの変更セットに関連するプロパティレベルの変更を一覧表示します。aws cloudformation describe-change-set --include-property-values \ --change-set-name
arn:aws:cloudformation:us-east-1:123456789012:changeSet/ExampleChangeSet/9f7b541b-126b-44f7-998e-932174557841
以下は出力例です。
"ChangeSetName": "ExampleChangeSet", "ChangeSetId": "arn:aws:cloudformation:us-east-1:803642222207:changeSet/ExampleChangeSet/9f7b541b-126b-44f7-998e-932174557841", "StackId": "arn:aws:cloudformation:us-east-1:803642222207:stack/ExampleStack/ab664180-f686-11ee-9e29-12cd92393671", "StackName": "ExampleStack", "Description": null, "Parameters": null, "CreationTime": "2024-04-09T18:04:59.935000+00:00", "ExecutionStatus": "AVAILABLE", "Status": "CREATE_COMPLETE", "StatusReason": null, "NotificationARNs": [], "RollbackConfiguration": { "RollbackTriggers": [] }, "Capabilities": [], "Tags": null, "ParentChangeSetId": null, "IncludeNestedStacks": true, "RootChangeSetId": null, "OnStackFailure": null, { "Changes": [ { "Type": "Resource", "ResourceChange": { "Action": "Modify", "LogicalResourceId": "EC2NetworkInterface00eni067fd35b649a05b7100Tpyls", "PhysicalResourceId": "eni-067fd35b649a05b71", "ResourceType": "AWS::EC2::NetworkInterface", "Replacement": "False", "Scope": [ "Properties", "Tags" ], "Details": [ { "Target": { "Attribute": "Properties", "Name": "Ipv4Prefixes", "RequiresRecreation": "Never", "Path": "/Properties/Ipv4Prefixes", "BeforeValue": "[]", "AttributeChangeType": "Remove" }, "Evaluation": "Static", "ChangeSource": "DirectModification" }, { "Target": { "Attribute": "Properties", "Name": "Description", "RequiresRecreation": "Never", "Path": "/Properties/Description", "BeforeValue": "", "AfterValue": "Description", "AttributeChangeType": "Modify" }, "Evaluation": "Static", "ChangeSource": "DirectModification" }, { "Target": { "Attribute": "Tags", "RequiresRecreation": "Never", "Path": "/Properties/Tags/0", "AfterValue": "{\"Key\":\"Test\",\"Value\":\"Test\"}", "AttributeChangeType": "Add" }, "Evaluation": "Static", "ChangeSource": "DirectModification" } ], "BeforeContext": "{\"Properties\":{\"Description\":\"\",\"PrivateIpAddress\":\"172.31.76.2\",\"PrivateIpAddresses\":[{\"PrivateIpAddress\":\"172.31.76.2\",\"Primary\":\"true\"}],\"SecondaryPrivateIpAddressCount\":\"0\",\"Ipv6PrefixCount\":\"0\",\"Ipv4Prefixes\":[],\"Ipv4PrefixCount\":\"0\",\"GroupSet\":[\"sg-05a45689b1059e82d\"],\"Ipv6Prefixes\":[],\"SubnetId\":\"subnet-455e8969\",\"SourceDestCheck\":\"true\",\"InterfaceType\":\"interface\",\"Tags\":[]},\"UpdateReplacePolicy\":\"Retain\",\"DeletionPolicy\":\"Retain\"}", "AfterContext": "{\"Properties\":{\"Description\":\"Description\",\"PrivateIpAddress\":\"172.31.76.2\",\"PrivateIpAddresses\":[{\"PrivateIpAddress\":\"172.31.76.2\",\"Primary\":\"true\"}],\"SecondaryPrivateIpAddressCount\":\"0\",\"Ipv6PrefixCount\":\"0\",\"Ipv4PrefixCount\":\"0\",\"GroupSet\":[\"sg-05a45689b1059e82d\"],\"Ipv6Prefixes\":[],\"SubnetId\":\"subnet-455e8969\",\"SourceDestCheck\":\"true\",\"InterfaceType\":\"interface\",\"Tags\":[{\"Value\":\"Test\",\"Key\":\"Test\"}]},\"UpdateReplacePolicy\":\"Retain\",\"DeletionPolicy\":\"Retain\"}" } } ], "ChangeSetName": "ExampleChangeSet", "ChangeSetId": "arn:aws:cloudformation:us-east-1:123456789012:changeSet/ExampleChangeSet/9f7b541b-126b-44f7-998e-932174557841", "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/ExampleStack/ab664180-f686-11ee-9e29-12cd92393671",