AWS CloudFormation 使用 的範例 AWS CLI - AWS SDK 程式碼範例

文件 AWS SDK AWS 範例 SDK 儲存庫中有更多可用的 GitHub 範例。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS CloudFormation 使用 的範例 AWS CLI

下列程式碼範例示範如何使用 AWS Command Line Interface 搭配 來執行動作和實作常見案例 AWS CloudFormation。

Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然 動作會示範如何呼叫個別服務函數,但您可以在其相關案例中查看內容中的動作。

每個範例都包含完整原始程式碼的連結,您可以在其中找到如何在內容中設定和執行程式碼的指示。

主題

動作

下列程式碼範例示範如何使用 activate-type

AWS CLI

啟用類型

下列activate-type範例會啟用公有第三方延伸模組,使其可用於堆疊範本。

aws cloudformation activate-type \ --region us-west-2 \ --type RESOURCE \ --type-name Example::Test::1234567890abcdef0 \ --type-name-alias Example::Test::Alias

輸出:

{ "Arn": "arn:aws:cloudformation:us-west-2:123456789012:type/resource/Example-Test-Alias" }

如需詳細資訊,請參閱 AWS CloudFormation 使用者指南中的使用 Word 登錄檔。 AWS CloudFormation

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 ActivateType

下列程式碼範例示範如何使用 batch-describe-type-configurations

AWS CLI

批次描述類型組態

下列batch-describe-type-configurations範例會設定 類型的資料。

aws cloudformation batch-describe-type-configurations \ --region us-west-2 \ --type-configuration-identifiers TypeArn="arn:aws:cloudformation:us-west-2:123456789012:type/resource/Example-Test-Type,TypeConfigurationAlias=MyConfiguration"

輸出:

{ "Errors": [], "UnprocessedTypeConfigurations": [], "TypeConfigurations": [ { "Arn": "arn:aws:cloudformation:us-west-2:123456789012:type/resource/Example-Test-Type", "Alias": "MyConfiguration", "Configuration": "{\n \"Example\": {\n \"ApiKey\": \"examplekey\",\n \"ApplicationKey\": \"examplekey1\",\n \"ApiURL\": \"exampleurl\"\n }\n}", "LastUpdated": "2021-10-01T15:25:46.210000+00:00", "TypeArn": "arn:aws:cloudformation:us-east-1:123456789012:type/resource/Example-Test-Type" } ] }

如需詳細資訊,請參閱 AWS CloudFormation 使用者指南中的使用 Word 登錄檔。 AWS CloudFormation

下列程式碼範例示範如何使用 cancel-update-stack

AWS CLI

若要取消正在進行的堆疊更新

下列cancel-update-stack命令會取消堆疊上的myteststack堆疊更新:

aws cloudformation cancel-update-stack --stack-name myteststack
  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 CancelUpdateStack

下列程式碼範例示範如何使用 continue-update-rollback

AWS CLI

若要重試更新復原

下列continue-update-rollback範例會從先前失敗的堆疊更新繼續復原操作。

aws cloudformation continue-update-rollback \ --stack-name my-stack

此命令不會產生輸出。

下列程式碼範例示範如何使用 create-change-set

AWS CLI

若要建立變更集

下列create-change-set範例會建立具有 CAPABILITY_IAM功能的變更集。檔案template.yaml是目前資料夾中的 AWS CloudFormation 範本,定義包含 IAM 資源的堆疊。

aws cloudformation create-change-set \ --stack-name my-application \ --change-set-name my-change-set \ --template-body file://template.yaml \ --capabilities CAPABILITY_IAM

輸出:

{ "Id": "arn:aws:cloudformation:us-west-2:123456789012:changeSet/my-change-set/bc9555ba-a949-xmpl-bfb8-f41d04ec5784", "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-application/d0a825a0-e4cd-xmpl-b9fb-061c69e99204" }
  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 CreateChangeSet

下列程式碼範例示範如何使用 create-stack-instances

AWS CLI

若要建立堆疊執行個體

下列create-stack-instances範例會在兩個帳戶和四個區域中建立堆疊集的執行個體。容錯能力設定可確保在所有帳戶和區域中嘗試更新,即使無法建立某些堆疊。

aws cloudformation create-stack-instances \ --stack-set-name my-stack-set \ --accounts 123456789012 223456789012 \ --regions us-east-1 us-east-2 us-west-1 us-west-2 \ --operation-preferences FailureToleranceCount=7

輸出:

{ "OperationId": "d7995c31-83c2-xmpl-a3d4-e9ca2811563f" }

若要建立堆疊集,請使用 create-stack-set命令。

下列程式碼範例示範如何使用 create-stack-set

AWS CLI

建立堆疊集

下列create-stack-set範例使用指定的 YAML 檔案 temlplate 建立堆疊集。 template.yaml是目前資料夾中定義堆疊的 AWS CloudFormation 範本。

aws cloudformation create-stack-set \ --stack-set-name my-stack-set \ --template-body file://template.yaml \ --description "SNS topic"

輸出:

{ "StackSetId": "my-stack-set:8d0f160b-d157-xmpl-a8e6-c0ce8e5d8cc1" }

若要將堆疊執行個體新增至堆疊集,請使用 create-stack-instances命令。

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 CreateStackSet

下列程式碼範例示範如何使用 create-stack

AWS CLI

若要建立 AWS CloudFormation 堆疊

下列create-stacks命令myteststack會使用 sampletemplate.json 範本建立名稱為 的堆疊:

aws cloudformation create-stack --stack-name myteststack --template-body file://sampletemplate.json --parameters ParameterKey=KeyPairName,ParameterValue=TestKey ParameterKey=SubnetIDs,ParameterValue=SubnetID1\\,SubnetID2

輸出:

{ "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896" }

如需詳細資訊,請參閱 AWS CloudFormation 使用者指南中的堆疊。

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 CreateStack

下列程式碼範例示範如何使用 deactivate-type

AWS CLI

若要停用類型

下列deactivate-type範例會停用此帳戶和區域中先前啟用的公有延伸模組。

aws cloudformation deactivate-type \ --region us-west-2 \ --type MODULE \ --type-name Example::Test::Type::MODULE

此命令不會產生輸出。

如需詳細資訊,請參閱 AWS CloudFormation 使用者指南中的使用 Word 登錄檔。 AWS CloudFormation

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DeactivateType

下列程式碼範例示範如何使用 delete-change-set

AWS CLI

若要刪除變更集

下列delete-change-set範例會指定變更集名稱和堆疊名稱,以刪除變更集。

aws cloudformation delete-change-set \ --stack-name my-stack \ --change-set-name my-change-set

此命令不會產生輸出。

下列delete-change-set範例會透過指定變更集的完整 ARN 來刪除變更集。

aws cloudformation delete-change-set \ --change-set-name arn:aws:cloudformation:us-east-2:123456789012:changeSet/my-change-set/4eca1a01-e285-xmpl-8026-9a1967bfb4b0

此命令不會產生輸出。

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DeleteChangeSet

下列程式碼範例示範如何使用 delete-stack-instances

AWS CLI

若要刪除堆疊執行個體

下列delete-stack-instances範例會刪除兩個區域中兩個帳戶中設定的堆疊執行個體,並終止堆疊。

aws cloudformation delete-stack-instances \ --stack-set-name my-stack-set \ --accounts 123456789012 567890123456 \ --regions us-east-1 us-west-1 \ --no-retain-stacks

輸出:

{ "OperationId": "ad49f10c-fd1d-413f-a20a-8de6e2fa8f27" }

若要刪除空堆疊集,請使用 delete-stack-set命令。

下列程式碼範例示範如何使用 delete-stack-set

AWS CLI

若要刪除堆疊集

下列命令會刪除指定的空堆疊集。堆疊集必須是空的。

aws cloudformation delete-stack-set \ --stack-set-name my-stack-set

此命令不會產生輸出。

若要從堆疊集刪除執行個體,請使用 delete-stack-instances命令。

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DeleteStackSet

下列程式碼範例示範如何使用 delete-stack

AWS CLI

若要刪除堆疊

下列delete-stack範例會刪除指定的堆疊。

aws cloudformation delete-stack \ --stack-name my-stack

此命令不會產生輸出。

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DeleteStack

下列程式碼範例示範如何使用 deploy

AWS CLI

下列命令會將名為 的範本部署template.json到名為 的堆疊my-new-stack

aws cloudformation deploy --template-file /path_to_template/template.json --stack-name my-new-stack --parameter-overrides Key1=Value1 Key2=Value2 --tags Key1=Value1 Key2=Value2
  • 如需 API 詳細資訊,請參閱在AWS CLI 命令參考部署

下列程式碼範例示範如何使用 deregister-type

AWS CLI

若要取消註冊類型版本

下列deregister-type範例會將指定的類型版本從 CloudFormation 登錄檔中的作用中使用中移除,使其無法再用於 in CloudFormation 操作。

aws cloudformation deregister-type \ --type RESOURCE \ --type-name My::Logs::LogGroup \ --version-id 00000002

此命令不會產生輸出。

如需詳細資訊,請參閱 CloudFormation 使用者指南中的使用 Word 登錄檔。 AWS CloudFormation

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DeregisterType

下列程式碼範例示範如何使用 describe-account-limits

AWS CLI

取得帳戶限制的相關資訊

下列命令會擷取目前帳戶的區域限制清單。

aws cloudformation describe-account-limits

輸出:

{ "AccountLimits": [ { "Name": "StackLimit", "Value": 200 }, { "Name": "StackOutputsLimit", "Value": 60 }, { "Name": "ConcurrentResourcesLimit", "Value": 2500 } ] }

下列程式碼範例示範如何使用 describe-change-set

AWS CLI

若要取得變更集的相關資訊

下列describe-change-set範例顯示變更集名稱和堆疊名稱所指定的變更集詳細資訊。

aws cloudformation describe-change-set \ --change-set-name my-change-set \ --stack-name my-stack

下列describe-change-set範例顯示變更集完整 ARN 所指定的變更集詳細資訊:

aws cloudformation describe-change-set \ --change-set-name arn:aws:cloudformation:us-west-2:123456789012:changeSet/my-change-set/bc9555ba-a949-xmpl-bfb8-f41d04ec5784

輸出:

{ "Changes": [ { "Type": "Resource", "ResourceChange": { "Action": "Modify", "LogicalResourceId": "function", "PhysicalResourceId": "my-function-SEZV4XMPL4S5", "ResourceType": "AWS::Lambda::Function", "Replacement": "False", "Scope": [ "Properties" ], "Details": [ { "Target": { "Attribute": "Properties", "Name": "Timeout", "RequiresRecreation": "Never" }, "Evaluation": "Static", "ChangeSource": "DirectModification" } ] } } ], "ChangeSetName": "my-change-set", "ChangeSetId": "arn:aws:cloudformation:us-west-2:123456789012:changeSet/my-change-set/4eca1a01-e285-xmpl-8026-9a1967bfb4b0", "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "StackName": "my-stack", "Description": null, "Parameters": null, "CreationTime": "2019-10-02T05:20:56.651Z", "ExecutionStatus": "AVAILABLE", "Status": "CREATE_COMPLETE", "StatusReason": null, "NotificationARNs": [], "RollbackConfiguration": {}, "Capabilities": [ "CAPABILITY_IAM" ], "Tags": null }
  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DescribeChangeSet

下列程式碼範例示範如何使用 describe-publisher

AWS CLI

描述發佈者

下列describe-publisher範例會設定發佈者的資訊。

aws cloudformation describe-publisher \ --region us-west-2 \ --publisher-id 000q6TfUovXsEMmgKowxDZLlwqr2QUsh

輸出:

{ "PublisherId": "000q6TfUovXsEMmgKowxDZLlwqr2QUshd2e75c8c", "PublisherStatus": "VERIFIED", "IdentityProvider": "AWS_Marketplace", "PublisherProfile": "https://aws.amazon.com/marketplace/seller-profile?id=2c5dc1f0-17cd-4259-8e46-822a83gdtegd" }

如需詳細資訊,請參閱 AWS CloudFormation 使用者指南中的使用 Word 登錄檔。 AWS CloudFormation

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DescribePublisher

下列程式碼範例示範如何使用 describe-stack-drift-detection-status

AWS CLI

檢查偏離偵測操作的狀態

下列describe-stack-drift-detection-status範例顯示偏離偵測操作的狀態。依執行 detect-stack-drift命令的 ID 取得 。

aws cloudformation describe-stack-drift-detection-status \ --stack-drift-detection-id 1a229160-e4d9-xmpl-ab67-0a4f93df83d4

輸出:

{ "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "StackDriftDetectionId": "1a229160-e4d9-xmpl-ab67-0a4f93df83d4", "StackDriftStatus": "DRIFTED", "DetectionStatus": "DETECTION_COMPLETE", "DriftedStackResourceCount": 1, "Timestamp": "2019-10-02T05:54:30.902Z" }

下列程式碼範例示範如何使用 describe-stack-events

AWS CLI

描述堆疊事件

下列describe-stack-events範例顯示指定堆疊的 2 個最近事件。

aws cloudformation describe-stack-events \ --stack-name my-stack \ --max-items 2 { "StackEvents": [ { "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "EventId": "4e1516d0-e4d6-xmpl-b94f-0a51958a168c", "StackName": "my-stack", "LogicalResourceId": "my-stack", "PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "ResourceType": "AWS::CloudFormation::Stack", "Timestamp": "2019-10-02T05:34:29.556Z", "ResourceStatus": "UPDATE_COMPLETE" }, { "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "EventId": "4dd3c810-e4d6-xmpl-bade-0aaf8b31ab7a", "StackName": "my-stack", "LogicalResourceId": "my-stack", "PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "ResourceType": "AWS::CloudFormation::Stack", "Timestamp": "2019-10-02T05:34:29.127Z", "ResourceStatus": "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS" } ], "NextToken": "eyJOZXh0VG9XMPLiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAyfQ==" }

下列程式碼範例示範如何使用 describe-stack-instance

AWS CLI

描述堆疊執行個體

下列命令描述指定帳戶和區域中設定的指定堆疊執行個體。堆疊集位於目前 區域和 帳戶,而執行個體位於 帳戶中的 us-west-2區域123456789012。:

aws cloudformation describe-stack-instance \ --stack-set-name my-stack-set \ --stack-instance-account 123456789012 \ --stack-instance-region us-west-2

輸出:

{ "StackInstance": { "StackSetId": "enable-config:296a3360-xmpl-40af-be78-9341e95bf743", "Region": "us-west-2", "Account": "123456789012", "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/StackSet-enable-config-e6cac20f-xmpl-46e9-8314-53e0d4591532/4287f9a0-e615-xmpl-894a-12b31d3117be", "ParameterOverrides": [], "Status": "OUTDATED", "StatusReason": "ResourceLogicalId:ConfigBucket, ResourceType:AWS::S3::Bucket, ResourceStatusReason:You have attempted to create more buckets than allowed (Service: Amazon S3; Status Code: 400; Error Code: TooManyBuckets; Request ID: F7F21CXMPL580224; S3 Extended Request ID: egd/Fdt89BXMPLyiqbMNljVk55Yqqvi3NYW2nKLUVWhUGEhNfCmZdyj967lhriaG/dWMobSO40o=)." } }

下列程式碼範例示範如何使用 describe-stack-resource-drifts

AWS CLI

若要取得偏離堆疊定義之資源的相關資訊

下列命令會顯示指定堆疊的漂移資源相關資訊。若要啟動偏離偵測,請使用 detect-stack-drift命令。:

aws cloudformation describe-stack-resource-drifts \ --stack-name my-stack

輸出顯示已修改的 AWS Lambda 函數 out-of-band:

{ "StackResourceDrifts": [ { "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "LogicalResourceId": "function", "PhysicalResourceId": "my-function-SEZV4XMPL4S5", "ResourceType": "AWS::Lambda::Function", "ExpectedProperties": "{\"Description\":\"Write a file to S3.\",\"Environment\":{\"Variables\":{\"bucket\":\"my-stack-bucket-1vc62xmplgguf\"}},\"Handler\":\"index.handler\",\"MemorySize\":128,\"Role\":\"arn:aws:iam::123456789012:role/my-functionRole-HIZXMPLEOM9E\",\"Runtime\":\"nodejs10.x\",\"Tags\":[{\"Key\":\"lambda:createdBy\",\"Value\":\"SAM\"}],\"Timeout\":900,\"TracingConfig\":{\"Mode\":\"Active\"}}", "ActualProperties": "{\"Description\":\"Write a file to S3.\",\"Environment\":{\"Variables\":{\"bucket\":\"my-stack-bucket-1vc62xmplgguf\"}},\"Handler\":\"index.handler\",\"MemorySize\":256,\"Role\":\"arn:aws:iam::123456789012:role/my-functionRole-HIZXMPLEOM9E\",\"Runtime\":\"nodejs10.x\",\"Tags\":[{\"Key\":\"lambda:createdBy\",\"Value\":\"SAM\"}],\"Timeout\":22,\"TracingConfig\":{\"Mode\":\"Active\"}}", "PropertyDifferences": [ { "PropertyPath": "/MemorySize", "ExpectedValue": "128", "ActualValue": "256", "DifferenceType": "NOT_EQUAL" }, { "PropertyPath": "/Timeout", "ExpectedValue": "900", "ActualValue": "22", "DifferenceType": "NOT_EQUAL" } ], "StackResourceDriftStatus": "MODIFIED", "Timestamp": "2019-10-02T05:54:44.064Z" } ] }

下列程式碼範例示範如何使用 describe-stack-resource

AWS CLI

取得堆疊資源的相關資訊

下列describe-stack-resource範例顯示指定堆疊MyFunction中名為 之資源的詳細資訊。

aws cloudformation describe-stack-resource \ --stack-name MyStack \ --logical-resource-id MyFunction

輸出:

{ "StackResourceDetail": { "StackName": "MyStack", "StackId": "arn:aws:cloudformation:us-east-2:123456789012:stack/MyStack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "LogicalResourceId": "MyFunction", "PhysicalResourceId": "my-function-SEZV4XMPL4S5", "ResourceType": "AWS::Lambda::Function", "LastUpdatedTimestamp": "2019-10-02T05:34:27.989Z", "ResourceStatus": "UPDATE_COMPLETE", "Metadata": "{}", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } } }

下列程式碼範例示範如何使用 describe-stack-resources

AWS CLI

取得堆疊資源的相關資訊

下列describe-stack-resources範例顯示指定堆疊中資源的詳細資訊。

aws cloudformation describe-stack-resources \ --stack-name my-stack

輸出:

{ "StackResources": [ { "StackName": "my-stack", "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "LogicalResourceId": "bucket", "PhysicalResourceId": "my-stack-bucket-1vc62xmplgguf", "ResourceType": "AWS::S3::Bucket", "Timestamp": "2019-10-02T04:34:11.345Z", "ResourceStatus": "CREATE_COMPLETE", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } }, { "StackName": "my-stack", "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "LogicalResourceId": "function", "PhysicalResourceId": "my-function-SEZV4XMPL4S5", "ResourceType": "AWS::Lambda::Function", "Timestamp": "2019-10-02T05:34:27.989Z", "ResourceStatus": "UPDATE_COMPLETE", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } }, { "StackName": "my-stack", "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "LogicalResourceId": "functionRole", "PhysicalResourceId": "my-functionRole-HIZXMPLEOM9E", "ResourceType": "AWS::IAM::Role", "Timestamp": "2019-10-02T04:34:06.350Z", "ResourceStatus": "CREATE_COMPLETE", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } } ] }

下列程式碼範例示範如何使用 describe-stack-set-operation

AWS CLI

取得堆疊集操作的相關資訊

下列 describe-stack-set-operation` 範例顯示指定堆疊集上更新操作的詳細資訊。

aws cloudformation describe-stack-set-operation \ --stack-set-name enable-config \ --operation-id 35d45ebc-ed88-xmpl-ab59-0197a1fc83a0

輸出:

{ "StackSetOperation": { "OperationId": "35d45ebc-ed88-xmpl-ab59-0197a1fc83a0", "StackSetId": "enable-config:296a3360-xmpl-40af-be78-9341e95bf743", "Action": "UPDATE", "Status": "SUCCEEDED", "OperationPreferences": { "RegionOrder": [ "us-east-1", "us-west-2", "eu-west-1", "us-west-1" ], "FailureToleranceCount": 7, "MaxConcurrentCount": 2 }, "AdministrationRoleARN": "arn:aws:iam::123456789012:role/AWSCloudFormationStackSetAdministrationRole", "ExecutionRoleName": "AWSCloudFormationStackSetExecutionRole", "CreationTimestamp": "2019-10-03T16:28:44.377Z", "EndTimestamp": "2019-10-03T16:42:08.607Z" } }

下列程式碼範例示範如何使用 describe-stack-set

AWS CLI

若要取得堆疊集的相關資訊

下列 describe-stack-set` 範例會顯示指定堆疊集的詳細資訊。

aws cloudformation describe-stack-set \ --stack-set-name my-stack-set

輸出:

{ "StackSet": { "StackSetName": "my-stack-set", "StackSetId": "my-stack-set:296a3360-xmpl-40af-be78-9341e95bf743", "Description": "Create an Amazon SNS topic", "Status": "ACTIVE", "TemplateBody": "AWSTemplateFormatVersion: '2010-09-09'\nDescription: An AWS SNS topic\nResources:\n topic:\n Type: AWS::SNS::Topic", "Parameters": [], "Capabilities": [], "Tags": [], "StackSetARN": "arn:aws:cloudformation:us-west-2:123456789012:stackset/enable-config:296a3360-xmpl-40af-be78-9341e95bf743", "AdministrationRoleARN": "arn:aws:iam::123456789012:role/AWSCloudFormationStackSetAdministrationRole", "ExecutionRoleName": "AWSCloudFormationStackSetExecutionRole" } }
  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DescribeStackSet

下列程式碼範例示範如何使用 describe-stacks

AWS CLI

描述 AWS CloudFormation 堆疊

下列describe-stacks命令顯示myteststack堆疊的摘要資訊:

aws cloudformation describe-stacks --stack-name myteststack

輸出:

{ "Stacks": [ { "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896", "Description": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.", "Tags": [], "Outputs": [ { "Description": "Name of S3 bucket to hold website content", "OutputKey": "BucketName", "OutputValue": "myteststack-s3bucket-jssofi1zie2w" } ], "StackStatusReason": null, "CreationTime": "2013-08-23T01:02:15.422Z", "Capabilities": [], "StackName": "myteststack", "StackStatus": "CREATE_COMPLETE", "DisableRollback": false } ] }

如需詳細資訊,請參閱 AWS CloudFormation 使用者指南中的堆疊。

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DescribeStacks

下列程式碼範例示範如何使用 describe-type-registration

AWS CLI

顯示類型註冊資訊

下列describe-type-registration範例顯示指定類型註冊的相關資訊,包括該類型的目前狀態、類型和版本。

aws cloudformation describe-type-registration \ --registration-token a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

輸出:

{ "ProgressStatus": "COMPLETE", "TypeArn": "arn:aws:cloudformation:us-west-2:123456789012:type/resource/My-Logs-LogGroup", "Description": "Deployment is currently in DEPLOY_STAGE of status COMPLETED; ", "TypeVersionArn": "arn:aws:cloudformation:us-west-2:123456789012:type/resource/My-Logs-LogGroup/00000001" }

如需詳細資訊,請參閱 CloudFormation 使用者指南中的使用 Word 登錄檔。 AWS CloudFormation

下列程式碼範例示範如何使用 describe-type

AWS CLI

顯示類型資訊

下列describe-type範例顯示指定類型的資訊。

aws cloudformation describe-type \ --type-name My::Logs::LogGroup \ --type RESOURCE

輸出:

{ "SourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-logs.git", "Description": "Customized resource derived from AWS::Logs::LogGroup", "TimeCreated": "2019-12-03T23:29:33.321Z", "Visibility": "PRIVATE", "TypeName": "My::Logs::LogGroup", "LastUpdated": "2019-12-03T23:29:33.321Z", "DeprecatedStatus": "LIVE", "ProvisioningType": "FULLY_MUTABLE", "Type": "RESOURCE", "Arn": "arn:aws:cloudformation:us-west-2:123456789012:type/resource/My-Logs-LogGroup/00000001", "Schema": "[details omitted]" }

如需詳細資訊,請參閱 CloudFormation 使用者指南中的使用 Word 登錄檔。 AWS CloudFormation

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DescribeType

下列程式碼範例示範如何使用 detect-stack-drift

AWS CLI

若要偵測漂移的資源

下列detect-stack-drift範例會啟動指定堆疊的偏離偵測。

aws cloudformation detect-stack-drift \ --stack-name my-stack

輸出:

{ "StackDriftDetectionId": "1a229160-e4d9-xmpl-ab67-0a4f93df83d4" }

然後,您可以將此 ID 與 describe-stack-resource-drifts命令搭配使用,以描述漂移的資源。

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 DetectStackDrift

下列程式碼範例示範如何使用 detect-stack-resource-drift

AWS CLI

偵測資源的偏離

下列detect-stack-resource-drift範例會檢查名為 的堆疊MyFunction中名為 的資源,MyStack該堆疊名為 的 漂移:

aws cloudformation detect-stack-resource-drift \ --stack-name MyStack \ --logical-resource-id MyFunction

輸出顯示已修改的 AWS Lambda 函數 out-of-band:

{ "StackResourceDrift": { "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/MyStack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "LogicalResourceId": "MyFunction", "PhysicalResourceId": "my-function-SEZV4XMPL4S5", "ResourceType": "AWS::Lambda::Function", "ExpectedProperties": "{\"Description\":\"Write a file to S3.\",\"Environment\":{\"Variables\":{\"bucket\":\"my-stack-bucket-1vc62xmplgguf\"}},\"Handler\":\"index.handler\",\"MemorySize\":128,\"Role\":\"arn:aws:iam::123456789012:role/my-functionRole-HIZXMPLEOM9E\",\"Runtime\":\"nodejs10.x\",\"Tags\":[{\"Key\":\"lambda:createdBy\",\"Value\":\"SAM\"}],\"Timeout\":900,\"TracingConfig\":{\"Mode\":\"Active\"}}", "ActualProperties": "{\"Description\":\"Write a file to S3.\",\"Environment\":{\"Variables\":{\"bucket\":\"my-stack-bucket-1vc62xmplgguf\"}},\"Handler\":\"index.handler\",\"MemorySize\":256,\"Role\":\"arn:aws:iam::123456789012:role/my-functionRole-HIZXMPLEOM9E\",\"Runtime\":\"nodejs10.x\",\"Tags\":[{\"Key\":\"lambda:createdBy\",\"Value\":\"SAM\"}],\"Timeout\":22,\"TracingConfig\":{\"Mode\":\"Active\"}}", "PropertyDifferences": [ { "PropertyPath": "/MemorySize", "ExpectedValue": "128", "ActualValue": "256", "DifferenceType": "NOT_EQUAL" }, { "PropertyPath": "/Timeout", "ExpectedValue": "900", "ActualValue": "22", "DifferenceType": "NOT_EQUAL" } ], "StackResourceDriftStatus": "MODIFIED", "Timestamp": "2019-10-02T05:58:47.433Z" } }

下列程式碼範例示範如何使用 detect-stack-set-drift

AWS CLI

偵測堆疊集和所有相關堆疊執行個體上的偏離

下列detect-stack-set-drift範例會在指定的堆疊集上啟動偏離偵測操作,包括與該堆疊集相關聯的所有堆疊執行個體,並傳回可用於追蹤偏離操作狀態的操作 ID。

aws cloudformation detect-stack-set-drift \ --stack-set-name stack-set-drift-example

輸出:

{ "OperationId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }

如需詳細資訊,請參閱 AWS CloudFormation 使用者指南中的偵測堆疊集中的未受管組態變更

下列程式碼範例示範如何使用 estimate-template-cost

AWS CLI

估算範本成本

下列estimate-template-cost範例會為template.yaml目前資料夾中名為 的範本產生成本估算。

aws cloudformation estimate-template-cost \ --template-body file://template.yaml

輸出:

{ "Url": "http://calculator.s3.amazonaws.com/calc5.html?key=cloudformation/7870825a-xmpl-4def-92e7-c4f8dd360cca" }

下列程式碼範例示範如何使用 execute-change-set

AWS CLI

執行變更集

下列execute-change-set範例會執行由變更集名稱和堆疊名稱指定的變更集。

aws cloudformation execute-change-set \ --change-set-name my-change-set \ --stack-name my-stack

下列execute-change-set範例會執行變更集的完整 ARN 所指定的變更集。

aws cloudformation execute-change-set \ --change-set-name arn:aws:cloudformation:us-west-2:123456789012:changeSet/my-change-set/bc9555ba-a949-xmpl-bfb8-f41d04ec5784
  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 ExecuteChangeSet

下列程式碼範例示範如何使用 get-stack-policy

AWS CLI

檢視堆疊政策

下列get-stack-policy範例顯示指定堆疊的堆疊政策。若要將政策連接至堆疊,請使用 set-stack-policy命令。

aws cloudformation get-stack-policy \ --stack-name my-stack

輸出:

{ "StackPolicyBody": "{\n \"Statement\" : [\n {\n \"Effect\" : \"Allow\",\n \"Action\" : \"Update:*\",\n \"Principal\": \"*\",\n \"Resource\" : \"*\"\n },\n {\n \"Effect\" : \"Deny\",\n \"Action\" : \"Update:*\",\n \"Principal\": \"*\",\n \"Resource\" : \"LogicalResourceId/bucket\"\n }\n ]\n}\n" }
  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 GetStackPolicy

下列程式碼範例示範如何使用 get-template-summary

AWS CLI

顯示範本摘要

下列命令會顯示指定範本檔案的資源和中繼資料的摘要資訊。

aws cloudformation get-template-summary \ --template-body file://template.yaml

輸出:

{ "Parameters": [], "Description": "A VPC and subnets.", "ResourceTypes": [ "AWS::EC2::VPC", "AWS::EC2::Subnet", "AWS::EC2::Subnet", "AWS::EC2::RouteTable", "AWS::EC2::VPCEndpoint", "AWS::EC2::SubnetRouteTableAssociation", "AWS::EC2::SubnetRouteTableAssociation", "AWS::EC2::VPCEndpoint" ], "Version": "2010-09-09" }

下列程式碼範例示範如何使用 get-template

AWS CLI

檢視 a AWS CloudFormation 堆疊的範本內文

下列get-template命令顯示myteststack堆疊的範本:

aws cloudformation get-template --stack-name myteststack

輸出:

{ "TemplateBody": { "AWSTemplateFormatVersion": "2010-09-09", "Outputs": { "BucketName": { "Description": "Name of S3 bucket to hold website content", "Value": { "Ref": "S3Bucket" } } }, "Description": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.", "Resources": { "S3Bucket": { "Type": "AWS::S3::Bucket", "Properties": { "AccessControl": "PublicRead" } } } } }
  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 GetTemplate

下列程式碼範例示範如何使用 list-change-sets

AWS CLI

列出變更集

下列list-change-sets範例顯示指定堆疊的待處理變更集清單。

aws cloudformation list-change-sets \ --stack-name my-stack

輸出:

{ "Summaries": [ { "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "StackName": "my-stack", "ChangeSetId": "arn:aws:cloudformation:us-west-2:123456789012:changeSet/my-change-set/70160340-7914-xmpl-bcbf-128a1fa78b5d", "ChangeSetName": "my-change-set", "ExecutionStatus": "AVAILABLE", "Status": "CREATE_COMPLETE", "CreationTime": "2019-10-02T05:38:54.297Z" } ] }
  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 ListChangeSets

下列程式碼範例示範如何使用 list-exports

AWS CLI

列出匯出

下列list-exports範例顯示目前區域中堆疊的匯出清單。

aws cloudformation list-exports

輸出:

{ "Exports": [ { "ExportingStackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/private-vpc/99764070-b56c-xmpl-bee8-062a88d1d800", "Name": "private-vpc-subnet-a", "Value": "subnet-07b410xmplddcfa03" }, { "ExportingStackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/private-vpc/99764070-b56c-xmpl-bee8-062a88d1d800", "Name": "private-vpc-subnet-b", "Value": "subnet-075ed3xmplebd2fb1" }, { "ExportingStackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/private-vpc/99764070-b56c-xmpl-bee8-062a88d1d800", "Name": "private-vpc-vpcid", "Value": "vpc-011d7xmpl100e9841" } ] }
  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 ListExports

下列程式碼範例示範如何使用 list-imports

AWS CLI

列出匯入

下列list-imports範例列出匯入指定匯出的堆疊。若要取得可用匯出的清單,請使用 list-exports命令。

aws cloudformation list-imports \ --export-name private-vpc-vpcid

輸出:

{ "Imports": [ "my-database-stack" ] }
  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 ListImports

下列程式碼範例示範如何使用 list-stack-instances

AWS CLI

列出堆疊的執行個體

下列list-stack-instances範例列出從指定堆疊集建立的執行個體。

aws cloudformation list-stack-instances \ --stack-set-name enable-config

範例輸出包含因錯誤而無法更新堆疊的詳細資訊:

{ "Summaries": [ { "StackSetId": "enable-config:296a3360-xmpl-40af-be78-9341e95bf743", "Region": "us-west-2", "Account": "123456789012", "StackId": "arn:aws:cloudformation:ap-northeast-1:123456789012:stack/StackSet-enable-config-35a6ac50-d9f8-4084-86e4-7da34d5de4c4/a1631cd0-e5fb-xmpl-b474-0aa20f14f06e", "Status": "CURRENT" }, { "StackSetId": "enable-config:296a3360-xmpl-40af-be78-9341e95bf743", "Region": "us-west-2", "Account": "123456789012", "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/StackSet-enable-config-e6cac20f-xmpl-46e9-8314-53e0d4591532/eab53680-e5fa-xmpl-ba14-0a522351f81e", "Status": "OUTDATED", "StatusReason": "ResourceLogicalId:ConfigDeliveryChannel, ResourceType:AWS::Config::DeliveryChannel, ResourceStatusReason:Failed to put delivery channel 'StackSet-enable-config-e6cac20f-xmpl-46e9-8314-53e0d4591532-ConfigDeliveryChannel-1OJWJ7XD59WR0' because the maximum number of delivery channels: 1 is reached. (Service: AmazonConfig; Status Code: 400; Error Code: MaxNumberOfDeliveryChannelsExceededException; Request ID: d14b34a0-ef7c-xmpl-acf8-8a864370ae56)." } ] }

下列程式碼範例示範如何使用 list-stack-resources

AWS CLI

列出堆疊中的資源

下列命令會顯示指定堆疊中的資源清單。

aws cloudformation list-stack-resources \ --stack-name my-stack

輸出:

{ "StackResourceSummaries": [ { "LogicalResourceId": "bucket", "PhysicalResourceId": "my-stack-bucket-1vc62xmplgguf", "ResourceType": "AWS::S3::Bucket", "LastUpdatedTimestamp": "2019-10-02T04:34:11.345Z", "ResourceStatus": "CREATE_COMPLETE", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } }, { "LogicalResourceId": "function", "PhysicalResourceId": "my-function-SEZV4XMPL4S5", "ResourceType": "AWS::Lambda::Function", "LastUpdatedTimestamp": "2019-10-02T05:34:27.989Z", "ResourceStatus": "UPDATE_COMPLETE", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } }, { "LogicalResourceId": "functionRole", "PhysicalResourceId": "my-functionRole-HIZXMPLEOM9E", "ResourceType": "AWS::IAM::Role", "LastUpdatedTimestamp": "2019-10-02T04:34:06.350Z", "ResourceStatus": "CREATE_COMPLETE", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } } ] }

下列程式碼範例示範如何使用 list-stack-set-operation-results

AWS CLI

若要列出堆疊集操作結果

下列命令會顯示指定堆疊集中執行個體的更新操作結果。

aws cloudformation list-stack-set-operation-results \ --stack-set-name enable-config \ --operation-id 35d45ebc-ed88-xmpl-ab59-0197a1fc83a0

輸出:

{ "Summaries": [ { "Account": "223456789012", "Region": "us-west-2", "Status": "SUCCEEDED", "AccountGateResult": { "Status": "SKIPPED", "StatusReason": "Function not found: arn:aws:lambda:eu-west-1:223456789012:function:AWSCloudFormationStackSetAccountGate" } }, { "Account": "223456789012", "Region": "ap-south-1", "Status": "CANCELLED", "StatusReason": "Cancelled since failure tolerance has exceeded" } ] }

注意:除非您建立帳戶閘道函數,否則 SKIPPED的狀態AccountGateResult預期會是成功的操作。

下列程式碼範例示範如何使用 list-stack-set-operations

AWS CLI

若要列出堆疊集操作

下列list-stack-set-operations範例顯示指定堆疊集上最新操作的清單。

aws cloudformation list-stack-set-operations \ --stack-set-name my-stack-set

輸出:

{ "Summaries": [ { "OperationId": "35d45ebc-ed88-xmpl-ab59-0197a1fc83a0", "Action": "UPDATE", "Status": "SUCCEEDED", "CreationTimestamp": "2019-10-03T16:28:44.377Z", "EndTimestamp": "2019-10-03T16:42:08.607Z" }, { "OperationId": "891aa98f-7118-xmpl-00b2-00954d1dd0d6", "Action": "UPDATE", "Status": "FAILED", "CreationTimestamp": "2019-10-03T15:43:53.916Z", "EndTimestamp": "2019-10-03T15:45:58.925Z" } ] }

下列程式碼範例示範如何使用 list-stack-sets

AWS CLI

列出堆疊集

下列list-stack-sets範例顯示目前區域和帳戶中的堆疊集清單。

aws cloudformation list-stack-sets

輸出:

{ "Summaries": [ { "StackSetName": "enable-config", "StackSetId": "enable-config:296a3360-xmpl-40af-be78-9341e95bf743", "Description": "Enable AWS Config", "Status": "ACTIVE" } ] }
  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 ListStackSets

下列程式碼範例示範如何使用 list-stacks

AWS CLI

列出 AWS CloudFormation 堆疊

下列list-stacks命令顯示狀態為 的所有堆疊摘要CREATE_COMPLETE

aws cloudformation list-stacks --stack-status-filter CREATE_COMPLETE

輸出:

[ { "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896", "TemplateDescription": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.", "StackStatusReason": null, "CreationTime": "2013-08-26T03:27:10.190Z", "StackName": "myteststack", "StackStatus": "CREATE_COMPLETE" } ]
  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 ListStacks

下列程式碼範例示範如何使用 list-type-registrations

AWS CLI

若要列出已完成的 類型註冊

下列list-type-registrations範例顯示指定類型已完成類型註冊的清單。

aws cloudformation list-type-registrations \ --type RESOURCE \ --type-name My::Logs::LogGroup \ --registration-status-filter COMPLETE

輸出:

{ "RegistrationTokenList": [ "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333" ] }

如需詳細資訊,請參閱 CloudFormation 使用者指南中的使用 Word 登錄檔。 AWS CloudFormation

下列程式碼範例示範如何使用 list-type-versions

AWS CLI

若要列出延伸模組的版本

下列list-type-versions範例會傳回有關擴充功能的版本摘要資訊。

aws cloudformation list-type-versions \ --endpoint https://example.com \ --region us-west-2 \ --type RESOURCE \ --type-name My::Resource::Example \ --publisher-id 123456789012

此命令不會產生輸出。

如需詳細資訊,請參閱 AWS CloudFormation 使用者指南中的使用 Word 登錄檔。 AWS CloudFormation

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 ListTypeVersions

下列程式碼範例示範如何使用 list-types

AWS CLI

列出帳戶中的私有資源類型

下列list-types範例顯示目前在目前 AWS 帳戶中註冊的私有資源類型清單。

aws cloudformation list-types

輸出:

{ "TypeSummaries": [ { "Description": "WordPress blog resource for internal use", "LastUpdated": "2019-12-04T18:28:15.059Z", "TypeName": "My::WordPress::BlogExample", "TypeArn": "arn:aws:cloudformation:us-west-2:123456789012:type/resource/My-WordPress-BlogExample", "DefaultVersionId": "00000005", "Type": "RESOURCE" }, { "Description": "Customized resource derived from AWS::Logs::LogGroup", "LastUpdated": "2019-12-04T18:28:15.059Z", "TypeName": "My::Logs::LogGroup", "TypeArn": "arn:aws:cloudformation:us-west-2:123456789012:type/resource/My-Logs-LogGroup", "DefaultVersionId": "00000003", "Type": "RESOURCE" } ] }

如需詳細資訊,請參閱 CloudFormation 使用者指南中的使用 Word 登錄檔。 AWS CloudFormation

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 ListTypes

下列程式碼範例示範如何使用 package

AWS CLI

下列命令會將名為 template.json 的範本匯出至 S3 儲存貯體,bucket-name並將匯出的範本寫入 packaged-template.json

aws cloudformation package --template-file /path_to_template/template.json --s3-bucket bucket-name --output-template-file packaged-template.json --use-json
  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的封裝

下列程式碼範例示範如何使用 publish-type

AWS CLI

若要發佈延伸模組

下列publish-type範例會將指定的延伸項目發佈至 CloudFormation 登錄檔,作為此區域中的公有延伸項目。

aws cloudformation publish-type \ --region us-west-2 \ --type RESOURCE \ --type-name Example::Test::1234567890abcdef0

輸出:

{ "PublicTypeArn":"arn:aws:cloudformation:us-west-2::type/resource/000q6TfUovXsEMmgKowxDZLlwqr2QUshd2e75c8c/Example-Test-1234567890abcdef0/1.0.0" }

如需詳細資訊,請參閱 AWS CloudFormation 使用者指南中的使用 Word 登錄檔。 AWS CloudFormation

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 PublishType

下列程式碼範例示範如何使用 register-publisher

AWS CLI

註冊發佈者

下列register-publisher範例會註冊發佈者並接受 條款與條件參數。

aws cloudformation register-publisher \ --region us-west-2 \ --accept-terms-and-conditions

輸出:

{ "PublisherId": "000q6TfUovXsEMmgKowxDZLlwqr2QUshd2e75c8c" }

如需詳細資訊,請參閱 AWS CloudFormation 使用者指南中的使用 Word 登錄檔。 AWS CloudFormation

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 RegisterPublisher

下列程式碼範例示範如何使用 register-type

AWS CLI

註冊資源類型

下列register-type範例會將指定的資源類型註冊為使用者帳戶中的私有資源類型。

aws cloudformation register-type \ --type-name My::Organization::ResourceName \ --schema-handler-package s3://bucket_name/my-organization-resource_name.zip \ --type RESOURCE

輸出:

{ "RegistrationToken": "f5525280-104e-4d35-bef5-8f1f1example" }

如需詳細資訊,請參閱 CloudFormation Command Line Interface 類型開發使用者指南中的註冊資源提供者

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 RegisterType

下列程式碼範例示範如何使用 set-stack-policy

AWS CLI

若要套用堆疊政策

下列set-stack-policy範例會停用指定堆疊中指定資源的更新。 stack-policy.json 是 JSON 文件,用於定義堆疊中資源允許的操作。

aws cloudformation set-stack-policy \ --stack-name my-stack \ --stack-policy-body file://stack-policy.json

輸出:

{ "Statement" : [ { "Effect" : "Allow", "Action" : "Update:*", "Principal": "*", "Resource" : "*" }, { "Effect" : "Deny", "Action" : "Update:*", "Principal": "*", "Resource" : "LogicalResourceId/bucket" } ] }
  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 SetStackPolicy

下列程式碼範例示範如何使用 set-type-configuration

AWS CLI

設定資料

下列set-type-configuration範例指定指定指定帳戶和區域中已註冊 CloudFormation 延伸模組的組態資料。

aws cloudformation set-type-configuration \ --region us-west-2 \ --type RESOURCE \ --type-name Example::Test::Type \ --configuration-alias default \ --configuration "{\"CredentialKey\": \"testUserCredential\"}"

輸出:

{ "ConfigurationArn": "arn:aws:cloudformation:us-west-2:123456789012:type-configuration/resource/Example-Test-Type/default" }

如需詳細資訊,請參閱 AWS CloudFormation 使用者指南中的使用 Word 登錄檔。 AWS CloudFormation

下列程式碼範例示範如何使用 set-type-default-version

AWS CLI

設定類型的預設版本

下列set-type-default-version範例會將指定的類型版本設定為此類型的預設值。

aws cloudformation set-type-default-version \ --type RESOURCE \ --type-name My::Logs::LogGroup \ --version-id 00000003

此命令不會產生輸出。

如需詳細資訊,請參閱 CloudFormation 使用者指南中的使用 Word 登錄檔。 AWS CloudFormation

下列程式碼範例示範如何使用 signal-resource

AWS CLI

發出資源訊號

下列signal-resource範例會發出訊號,success以完成名為 的堆疊MyWaitCondition中名為 的等待條件my-stack

aws cloudformation signal-resource \ --stack-name my-stack \ --logical-resource-id MyWaitCondition \ --unique-id 1234 \ --status SUCCESS

此命令不會產生輸出。

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 SignalResource

下列程式碼範例示範如何使用 stop-stack-set-operation

AWS CLI

停止堆疊集操作

下列stop-stack-set-operation範例會停止指定堆疊集的進行中更新操作。

aws cloudformation stop-stack-set-operation \ --stack-set-name my-stack-set \ --operation-id 1261cd27-490b-xmpl-ab42-793a896c69e6

此命令不會產生輸出。

下列程式碼範例示範如何使用 test-type

AWS CLI

測試延伸模組

下列test-type範例會測試已註冊的延伸模組,以確保其符合在 CloudFormation 登錄檔中發佈的所有必要要求。

aws cloudformation test-type \ --arn arn:aws:cloudformation:us-west-2:123456789012:type/resource/Sample-Test-Resource123/00000001

輸出:

{ "TypeVersionArn": "arn:aws:cloudformation:us-west-2:123456789012:type/resource/Sample-Test-Resource123/00000001" }

如需詳細資訊,請參閱 AWS CloudFormation 使用者指南中的使用 Word 登錄檔。 AWS CloudFormation

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 TestType

下列程式碼範例示範如何使用 update-stack-instances

AWS CLI

更新堆疊執行個體

下列update-stack-instances範例會使用最新的設定,重試兩個區域中兩個帳戶中堆疊執行個體的更新。指定的容錯能力設定可確保在所有帳戶和區域中嘗試更新,即使無法更新某些堆疊。

aws cloudformation update-stack-instances \ --stack-set-name my-stack-set \ --accounts 123456789012 567890123456 \ --regions us-east-1 us-west-2 \ --operation-preferences FailureToleranceCount=3

輸出:

{ "OperationId": "103ebdf2-21ea-xmpl-8892-de5e30733132" }

下列程式碼範例示範如何使用 update-stack-set

AWS CLI

若要更新堆疊集

下列update-stack-set範例會將具有金鑰名稱Owner和 值的標籤新增至指定IT堆疊集中的堆疊執行個體。

aws cloudformation update-stack-set \ --stack-set-name my-stack-set \ --use-previous-template \ --tags Key=Owner,Value=IT

輸出:

{ "OperationId": "e2b60321-6cab-xmpl-bde7-530c6f47950e" }
  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 UpdateStackSet

下列程式碼範例示範如何使用 update-stack

AWS CLI

更新 AWS CloudFormation 堆疊

下列update-stack命令會更新mystack堆疊的範本和輸入參數:

aws cloudformation update-stack --stack-name mystack --template-url https://s3.amazonaws.com/sample/updated.template --parameters ParameterKey=KeyPairName,ParameterValue=SampleKeyPair ParameterKey=SubnetIDs,ParameterValue=SampleSubnetID1\\,SampleSubnetID2

下列update-stack命令只會更新mystack堆疊的SubnetIDs參數值。如果您未指定參數值,則會使用範本中指定的預設值:

aws cloudformation update-stack --stack-name mystack --template-url https://s3.amazonaws.com/sample/updated.template --parameters ParameterKey=KeyPairName,UsePreviousValue=true ParameterKey=SubnetIDs,ParameterValue=SampleSubnetID1\\,UpdatedSampleSubnetID2

下列update-stack命令會將兩個堆疊通知主題新增至mystack堆疊:

aws cloudformation update-stack --stack-name mystack --use-previous-template --notification-arns "arn:aws:sns:use-east-1:123456789012:mytopic1" "arn:aws:sns:us-east-1:123456789012:mytopic2"

如需詳細資訊,請參閱 AWS CloudFormation 使用者指南中的 Word 堆疊更新AWS CloudFormation

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 UpdateStack

下列程式碼範例示範如何使用 update-termination-protection

AWS CLI

若要啟用終止保護

下列update-termination-protection範例會在指定的堆疊上啟用終止保護。

aws cloudformation update-termination-protection \ --stack-name my-stack \ --enable-termination-protection

輸出:

{ "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204" }

下列程式碼範例示範如何使用 validate-template

AWS CLI

驗證 a AWS CloudFormation 範本

下列validate-template命令會驗證sampletemplate.json範本:

aws cloudformation validate-template --template-body file://sampletemplate.json

輸出:

{ "Description": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.", "Parameters": [], "Capabilities": [] }

如需詳細資訊,請參閱 AWS CloudFormation AWS 使用者指南中的使用 CloudFormation 範本。

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 ValidateTemplate