本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立具有自我管理許可的 CloudFormation StackSets
本主題說明如何建立具有自我管理許可的 StackSets,以跨 AWS 帳戶 和區域部署堆疊。
注意
繼續之前,建立 StackSets 所需 IAM 服務角色,才能在您用來管理 StackSet 的帳戶與堆疊部署目的地帳戶之間建立信任關係。如需更多詳細資訊,請參閱 授與自我管理許可。
建立具有自我管理許可的 StackSet (主控台)
建立 StackSet
請登入 AWS 管理主控台,開啟位於 https://console.aws.amazon.com/cloudformation
的 CloudFormation 主控台。 -
在畫面頂端的導覽列上,選擇您要從中管理 StackSet 的 AWS 區域。
-
從導覽窗格選擇 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。TestKeyaws cloudformation create-stack-set \ --stack-set-namemy-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。對於以百分比為基礎的設定,請使用FailureTolerancePercentage或MaxConcurrentPercentage。aws cloudformation create-stack-instances \ --stack-set-namemy-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-namemy-stackset\ --operation-idoperation_ID