具有自我管理許可的 Create AWS CloudFormation StackSets - AWS CloudFormation

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

具有自我管理許可的 Create AWS CloudFormation StackSets

本主題說明如何建立具有自我管理許可的 StackSets,以跨 AWS 帳戶 和 區域部署堆疊。

注意

在繼續之前,請建立 StackSets 所需的 IAM 服務角色,在您管理 StackSet 的帳戶與您要部署堆疊的帳戶之間建立信任關係。如需詳細資訊,請參閱授與自我管理許可

建立具有自我管理許可的 StackSet (主控台)

建立 StackSet
  1. 登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/cloudformation 開啟 AWS CloudFormation 主控台。

  2. 在畫面頂端的導覽列上,選擇 AWS 區域 您要從中管理 StackSet 的 。

  3. 從導覽窗格選擇 StackSets

  4. StackSets 頁面頂端,選擇建立 StackSet

  5. 許可下,選擇自助式許可,然後選擇您建立的 IAM 角色。

  6. 先決條件 - 準備範本下,選擇範本已就緒

  7. Specify template (指定範本) 下,選擇指定堆疊範本所在 S3 儲存貯體的 URL,或上傳堆疊範本檔案。然後選擇下一步

  8. 指定 StackSet 詳細資訊頁面上,提供 StackSet 的名稱、指定任何參數,然後選擇下一步

  9. 選擇 Next (下一步) 繼續。

  10. Configure StackSet options (設定 StackSet 選項) 頁面的 Tags (標籤) 下,指定任何標籤以套用至堆疊中的資源。如需如何在 中使用標籤的詳細資訊 AWS,請參閱AWS 帳單與成本管理 《 使用者指南》中的使用成本分配標籤組織和追蹤 AWS 成本

  11. 針對執行組態,選擇作用中以啟用 CloudFormation 的最佳化操作處理:

    • 非衝突操作會同時執行,以加快部署時間。

    • 衝突操作會根據請求的順序自動排入佇列和處理。

    當操作正在執行或排入佇列時,CloudFormation 會將所有傳入操作排入佇列,即使它們沒有衝突。您無法在此期間變更執行設定。

  12. 如果您的範本包含 IAM 資源,對於功能,請選擇我確認此範本可能會建立 IAM 資源,以指定您想要在範本中使用 IAM 資源。如需詳細資訊,請參閱確認 CloudFormation 範本中的 IAM 資源

  13. 選擇下一步

  14. 設定部署選項頁面上,針對將堆疊新增至 StackSet,選擇部署新的堆疊

  15. 針對 Accounts (帳戶),選擇 Deploy stacks in accounts (在帳戶中部署堆疊)。在文字方塊中貼上您的目標 AWS 帳戶 號碼,以逗號分隔多個號碼。

    注意

    如果您想要在該帳戶中部署堆疊,也可以包含您的管理員帳戶 ID。

  16. 指定區域下,選擇您要部署堆疊的區域。

  17. 對於部署選項,請執行下列動作:

    • 針對最大並行帳戶,指定同時處理的帳戶數量。

    • 針對容錯能力,指定每個區域允許的帳戶失敗數目上限。達到此限制後,操作將停止且不會繼續前往其他區域。

    • 對於區域並行,選擇如何處理區域:循序 (一次一個區域) 或平行 (同時多個區域)。

    • 針對並行模式,選擇並行在操作執行期間的行為方式。

      • 嚴格容錯能力 – 降低發生故障時的帳戶並行層級,保持在容錯能力 +1 內。

      • 軟性容錯能力 – 維持您指定的並行層級 (最大並行帳戶的值),無論失敗為何。

  18. 選擇下一步

  19. Review (檢閱) 頁面上,檢視您的選擇。若要進行變更,請在相關區段中選擇編輯

  20. 當您準備好建立 StackSet 時,請選擇提交

    CloudFormation 會開始建立您的 StackSet。在選擇提交時開啟的 StackSet 詳細資訊頁面中,檢視 StackSet 中堆疊建立的進度和狀態。

建立具有自我管理許可的 StackSet (AWS CLI)

請依照本節中的步驟使用 AWS CLI 來:

  • 建立 StackSet 容器。

  • 部署堆疊執行個體。

建立 StackSet
  1. 使用 create-stack-set命令來建立新的 StackSet,名為 my-stackset。下列範例使用存放在 S3 儲存貯體中的範本,並包含 參數,其會設定值KeyPairName為 的 TestKey

    aws cloudformation create-stack-set \ --stack-set-name my-stackset \ --template-url https://s3.region-code.amazonaws.com/amzn-s3-demo-bucket/MyApp.template \ --parameters ParameterKey=KeyPairName,ParameterValue=TestKey
  2. create-stack-set 命令完成後,請執行 list-stack-sets命令,查看您的 StackSet 是否已建立。您應該會在結果中看到新的 StackSet。

    aws cloudformation list-stack-sets
  3. 使用 create-stack-instances命令在 StackSet 中部署堆疊。下列範例會在兩個區域 AWS 帳戶 (account_ID_1account_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 \ --accounts account_ID_1 account_ID_2 \ --regions us-west-2 us-east-1 \ --operation-preferences MaxConcurrentCount=1,FailureToleranceCount=0

    如需詳細資訊,請參閱 AWS CloudFormation API 參考中的 CreateStackInstances

  4. 使用 describe-stack-set-operation命令來確認您的堆疊已成功建立。針對 --operation-id選項,指定作為create-stack-instances輸出的一部分傳回的操作 ID。

    aws cloudformation describe-stack-set-operation \ --stack-set-name my-stackset \ --operation-id operation_ID