AWS CloudFormation 使用範例 AWS CLI - AWS Command Line Interface

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

AWS CloudFormation 使用範例 AWS CLI

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

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

Scenarios (案例) 是向您展示如何呼叫相同服務中的多個函數來完成特定任務的程式碼範例。

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

主題

動作

下列程式碼範例會示範如何使用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 用 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 用 AWS CloudFormation 登錄

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

AWS CLI

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

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

aws cloudformation cancel-update-stack --stack-name myteststack

下列程式碼範例會示範如何使用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 檔案樣板建立堆疊集。 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範例會停用先前在此帳戶和 Region 中啟用的公用擴充功能。

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

此命令不會產生輸出。

若要取得更多資訊,請參閱《使用指南》中的〈使AWS CloudFormation 用 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 登錄中的使用中移除指定的類型版本,因此無法再用於 CloudFormation 作業。

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

此命令不會產生輸出。

如需詳細資訊,請參閱《使用指南》中的〈使AWS CloudFormation 用 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 }

下列程式碼範例會示範如何使用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 用 AWS CloudFormation 登錄

下列程式碼範例會示範如何使用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" }

如需詳細資訊,請參閱《使用指南》中的〈使AWS CloudFormation 用 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]" }

如需詳細資訊,請參閱《使用指南》中的〈使AWS CloudFormation 用 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範例會檢查名MyStack為漂移MyFunction的堆疊中名為的資源:

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

若要檢視 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" ] }

如需詳細資訊,請參閱《使用指南》中的〈使AWS CloudFormation 用 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 用 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" } ] }

如需詳細資訊,請參閱《使用指南》中的〈使AWS CloudFormation 用 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

下列程式碼範例會示範如何使用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 用 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 用 AWS CloudFormation 登錄

下列程式碼範例會示範如何使用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 命令列介面使用者指南 > 中的 < 註冊資源提供者 >。

  • 如需 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範例會在指定帳戶和 Region 中指定已註冊 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 用 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

此命令不會產生輸出。

如需詳細資訊,請參閱《使用指南》中的〈使AWS CloudFormation 用 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 用 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 使用指南》中的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

驗證 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中的。