本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
具有自我管理許可的 Create AWS CloudFormation StackSets
本主題說明如何建立具有自我管理許可的 StackSets,以跨 AWS 帳戶 和 區域部署堆疊。
注意
在繼續之前,請建立 StackSets 所需的 IAM 服務角色,在您管理 StackSet 的帳戶與您要部署堆疊的帳戶之間建立信任關係。如需詳細資訊,請參閱授與自我管理許可。
建立具有自我管理許可的 StackSet (主控台)
建立 StackSet
登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/cloudformation
開啟 AWS CloudFormation 主控台。 -
在畫面頂端的導覽列上,選擇 AWS 區域 您要從中管理 StackSet 的 。
-
從導覽窗格選擇 StackSets。
-
從 StackSets 頁面頂端,選擇建立 StackSet。
-
在許可下,選擇自助式許可,然後選擇您建立的 IAM 角色。
-
在先決條件 - 準備範本下,選擇範本已就緒。
-
在 Specify template (指定範本) 下,選擇指定堆疊範本所在 S3 儲存貯體的 URL,或上傳堆疊範本檔案。然後選擇下一步。
-
在指定 StackSet 詳細資訊頁面上,提供 StackSet 的名稱、指定任何參數,然後選擇下一步。
-
選擇 Next (下一步) 繼續。
-
在 Configure StackSet options (設定 StackSet 選項) 頁面的 Tags (標籤) 下,指定任何標籤以套用至堆疊中的資源。如需如何在 中使用標籤的詳細資訊 AWS,請參閱AWS 帳單與成本管理 《 使用者指南》中的使用成本分配標籤組織和追蹤 AWS 成本。
-
針對執行組態,選擇作用中以啟用 CloudFormation 的最佳化操作處理:
-
非衝突操作會同時執行,以加快部署時間。
-
衝突操作會根據請求的順序自動排入佇列和處理。
當操作正在執行或排入佇列時,CloudFormation 會將所有傳入操作排入佇列,即使它們沒有衝突。您無法在此期間變更執行設定。
-
-
如果您的範本包含 IAM 資源,對於功能,請選擇我確認此範本可能會建立 IAM 資源,以指定您想要在範本中使用 IAM 資源。如需詳細資訊,請參閱確認 CloudFormation 範本中的 IAM 資源。
-
選擇下一步。
-
在設定部署選項頁面上,針對將堆疊新增至 StackSet,選擇部署新的堆疊。
-
針對 Accounts (帳戶),選擇 Deploy stacks in accounts (在帳戶中部署堆疊)。在文字方塊中貼上您的目標 AWS 帳戶 號碼,以逗號分隔多個號碼。
注意
如果您想要在該帳戶中部署堆疊,也可以包含您的管理員帳戶 ID。
-
在指定區域下,選擇您要部署堆疊的區域。
-
對於部署選項,請執行下列動作:
-
針對最大並行帳戶,指定同時處理的帳戶數量。
-
針對容錯能力,指定每個區域允許的帳戶失敗數目上限。達到此限制後,操作將停止且不會繼續前往其他區域。
-
對於區域並行,選擇如何處理區域:循序 (一次一個區域) 或平行 (同時多個區域)。
-
針對並行模式,選擇並行在操作執行期間的行為方式。
-
嚴格容錯能力 – 降低發生故障時的帳戶並行層級,保持在容錯能力 +1 內。
-
軟性容錯能力 – 維持您指定的並行層級 (最大並行帳戶的值),無論失敗為何。
-
-
-
選擇下一步。
-
在 Review (檢閱) 頁面上,檢視您的選擇。若要進行變更,請在相關區段中選擇編輯。
-
當您準備好建立 StackSet 時,請選擇提交。
CloudFormation 會開始建立您的 StackSet。在選擇提交時開啟的 StackSet 詳細資訊頁面中,檢視 StackSet 中堆疊建立的進度和狀態。
建立具有自我管理許可的 StackSet (AWS CLI)
請依照本節中的步驟使用 AWS CLI 來:
-
建立 StackSet 容器。
-
部署堆疊執行個體。
建立 StackSet
-
使用 create-stack-set命令來建立新的 StackSet,名為
。下列範例使用存放在 S3 儲存貯體中的範本,並包含 參數,其會設定值my-stackset
為 的KeyPairName
。TestKey
aws cloudformation create-stack-set \ --stack-set-name
my-stackset
\ --template-urlhttps://s3.region-code.amazonaws.com/amzn-s3-demo-bucket/MyApp.template
\ --parametersParameterKey=KeyPairName,ParameterValue=TestKey
-
create-stack-set 命令完成後,請執行 list-stack-sets命令,查看您的 StackSet 是否已建立。您應該會在結果中看到新的 StackSet。
aws cloudformation list-stack-sets
-
使用 create-stack-instances命令在 StackSet 中部署堆疊。下列範例會在兩個區域 AWS 帳戶 (
和account_ID_1
) 的兩個 (account_ID_2
和 ) 中部署堆疊us-west-2
。us-east-1
使用
--operation-preferences
選項設定並行帳戶處理和其他部署偏好設定。此範例使用計數型設定。請注意,MaxConcurrentCount
不得超過FailureToleranceCount
+ 1。對於以百分比為基礎的設定,請MaxConcurrentPercentage
改用FailureTolerancePercentage
或 。aws cloudformation create-stack-instances \ --stack-set-name
my-stackset
\ --accountsaccount_ID_1 account_ID_2
\ --regionsus-west-2 us-east-1
\ --operation-preferencesMaxConcurrentCount=1,FailureToleranceCount=0
如需詳細資訊,請參閱 AWS CloudFormation API 參考中的 CreateStackInstances。
-
使用 describe-stack-set-operation命令來確認您的堆疊已成功建立。針對
--operation-id
選項,指定作為create-stack-instances輸出的一部分傳回的操作 ID。aws cloudformation describe-stack-set-operation \ --stack-set-name
my-stackset
\ --operation-idoperation_ID