for AWS CloudFormation StackSets 的服務受管堆疊匯入 - AWS CloudFormation

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

for AWS CloudFormation StackSets 的服務受管堆疊匯入

CloudFormation 堆疊匯入操作可以將現有堆疊匯入新的或現有的 StackSets,讓您可以在一個操作中將現有堆疊遷移至 StackSet。StackSets 擴充了堆疊功能,讓您可以跨多個帳戶和區域使用單次操作建立、更新或刪除堆疊。

服務受管堆疊匯入的考量
  • 堆疊匯入操作需要管理帳戶或委派管理員帳戶,您可以在其中管理相關聯的 , AWS Organizations 例如使用 StackSets 啟用信任存取。

  • 目標帳戶必須是管理帳戶或委派管理員帳戶 AWS Organizations 所管理 的成員。

  • 目標堆疊會在其中一個目標 OU 中存在。

  • 目標帳戶應該是 的成員 AWS Organizations。

  • AWS Organizations 存取權應處於 Organizations ACTIVATED的狀態。

  • 匯入的堆疊應該出現在任何成員帳戶中,而不是管理帳戶中。

將服務受管堆疊匯入新的 StackSet (主控台)

使用 將堆疊匯入新的 StackSet AWS Management Console

若要將新堆疊匯入 StackSet,請識別包含您要匯入之資源的堆疊。

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

  2. 從導覽窗格選擇 StackSets

  3. 選擇 StackSets 頁面上方的 Create StackSet (建立 StackSet)

  4. 選擇範本頁面上,執行下列動作:

    1. 針對 StackSet 許可模型,選擇服務受管許可

    2. 針對先決條件 - 準備範本,選擇範本已就緒,然後使用下列其中一個選項選擇您的範本:

      • 對於 Amazon S3 URL,在 Amazon S3 URL 欄位中輸入您的 Amazon S3 URL

      • 針對上傳範本檔案,選擇本機電腦上的 CloudFormation 範本。

    接受您的設定並選擇 Next (下一步)。

  5. 指定 StackSet 詳細資訊頁面上,執行下列動作:

    1. 在 StackSet 名稱方塊中輸入 StackSet 名稱

    2. (選用) 在 StackSet description (StackSet 描述) 區段中輸入描述。

    設定 StackSet 選項頁面上,檢閱您的選擇,然後選擇下一步

  6. 設定部署選項頁面上,執行下列動作:

    1. 針對將堆疊新增至堆疊集,選擇將堆疊匯入堆疊集

    2. 對於 Stacks to import (要匯入的堆疊),選擇您的堆疊匯入方法。

      1. 對於 Stack ID (堆疊 ID),輸入您的堆疊 ID。

      2. 針對堆疊 URL,輸入 Amazon S3 URL。

  7. 關聯組織單位下,執行下列動作:

    1. 選擇與組織建立關聯以使用根 OU。

    2. 選擇與組織單位 (OUs) 建立關聯,為要匯入的堆疊輸入父 OU IDs。例如,如果 Stack 1Stack 2OU1 下方,並且 Stack 3OU2 下方,則輸入 OU1OU2

    接受您的設定並選擇 Next (下一步)。

  8. Review (檢閱) 頁面上,檢閱您的設定,然後選擇 Submit (提交)。

建立服務受管堆疊並將其匯入至現有的 StackSet (主控台)

若要將現有堆疊匯入新的 StackSet,請識別包含您要匯入之資源的堆疊。

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

  2. 從導覽窗格選擇 StackSets

  3. 選擇 StackSets 頁面上方的 Create StackSet (建立 StackSet)

  4. 選擇範本頁面上,執行下列動作:

    1. 針對 StackSet 許可模型,選擇服務受管許可

    2. 對於先決條件 - 準備範本,選擇範本已就緒,然後使用下列其中一個選項選擇您的範本:

      • 對於 Amazon S3 URL,在 Amazon S3 URL 欄位中輸入您的 Amazon S3 URL

      • 針對上傳範本檔案,選擇本機電腦上的 CloudFormation 範本。

    接受您的設定並選擇 Next (下一步)。

  5. 指定 StackSet 詳細資訊頁面上,執行下列動作:

    1. 在 StackSet 名稱方塊中輸入 StackSet 名稱

    2. (選用) 在 StackSet description (StackSet 描述) 區段中輸入描述。

    設定 StackSet 選項頁面上,檢閱您的選擇,然後選擇下一步

  6. 設定部署選項頁面上,執行下列動作:

    1. Add stacks to stack set (將堆疊新增至堆疊集) 中,選擇 Deploy new stacks (部署新堆疊)。

  7. 針對關聯組織單位區段,執行下列動作:

    1. 選擇與組織建立關聯以使用根 OU。

    2. 選擇與組織單位 (OUs) 建立關聯,為要匯入的堆疊輸入父 OU IDs。例如,如果 Stack 1Stack 2OU1 下方,並且 Stack 3OU2 下方,則輸入 OU1OU2

  8. 對於 Specify regions (指定區域) 和 Deployment options (部署選項),檢視您的選擇。

    接受您的設定並選擇 Next (下一步)。

  9. Review (檢閱) 頁面上,檢閱您的設定,然後選擇 Submit (提交)。

將服務受管堆疊匯入現有的 StackSet (主控台)

選擇您的 StackSet,並識別您要匯入的堆疊。

將堆疊匯入至現有的 StackSet
  1. 登入 AWS Management Console 並開啟位於 https://https://console.aws.amazon.com/cloudformation 的 AWS CloudFormation 主控台。

  2. 從導覽窗格選擇 StackSets

  3. 選擇您要匯入堆疊的 StackSet,然後從動作下拉式清單中選擇將堆疊新增至 StackSet

  4. 設定部署選項頁面上,執行下列動作:

    1. 針對將堆疊新增至堆疊集,選擇將堆疊匯入堆疊集

    2. 要匯入的 Stacks 下,執行下列動作

      1. 對於 Stack ID (堆疊 ID),輸入您的堆疊 ID。

      2. 針對堆疊 URL,輸入 Amazon S3 URL。

    3. 關聯組織單位下,執行下列動作:

      1. 選擇與組織建立關聯以使用根 OU。

      2. 選擇與組織單位 (OUs) 建立關聯,為要匯入的堆疊輸入父 OU IDs。例如,如果 Stack 1Stack 2OU1 下方,並且 Stack 3OU2 下方,則輸入 OU1OU2

      接受您的設定並選擇 Next (下一步)。

  5. 檢閱 Specify overrides (指定覆寫) 頁面,然後選擇 Next (下一步)。

  6. 確認並檢閱 Review (檢閱) 頁面並選擇 Submit (提交)。

將服務受管堆疊匯入 StackSet (AWS CLI)

建立 StackSet 後,您可以透過傳遞要匯入之堆疊的堆疊 ID 來匯入堆疊。您也可以將 OU ID 清單傳遞至您要映射的 OU ID 清單。

CloudFormation 會在這些 OUs 內匯入使用者提供的堆疊,並使用這些 OUs 做為 StackSet 的部署目標。輸入中顯示的堆疊 ID 會對應至內部 OU ID 清單輸入中最接近的 OU。如果堆疊不屬於輸入清單中現有的 OU ID,則 AWS CLI 會傳回StackNotFoundException錯誤。

import-stacks-to-stack-set 操作可為 OU ID 輸入中的堆疊建立堆疊執行個體。下列 AWS CLI 範例使用 import-stacks-to-stack-set操作將堆疊匯入 StackSet。

  • 若要使用 import-stacks-to-stack-sets 操作,請指定您想匯入到堆疊集的 stack-idsstack-ids-url

    aws cloudformation import-stacks-to-stack-set \ --stack-set-name ServiceMangedStackSet \ --stack-ids "arn:123456789012:us-east-1:Stack1" \ --organizational-unit-ids ou-examplerootid111-exampleouid111
    aws cloudformation import-stacks-to-stack-set \ --stack-set-name ServiceMangedStackSet \ --stack-ids-url https://amzn-s3-demo-bucket.s3.us-west-2.amazonaws.com/file-name.json \ --organizational-unit-ids ou-examplerootid111-exampleouid111
注意

import-stacks-to-stack-sets 操作會要求您至少指定一個組織單位 ID (OU ID),以便將匯入的堆疊與該特定 OU 建立關聯。此操作不會為關聯 OU 中的其他成員帳戶建立堆疊執行個體。若要更新關聯 OU 的成員帳戶,請使用 create-stack-instancesupdate-stack-instances

create-stack-set 使用使用者提供的範本,從直接上傳或 Amazon S3,為 OUs 下的所有帳戶建立堆疊執行個體。下列 AWS CLI 範例使用 create-stack-set操作將堆疊匯入新的 StackSet。

  • 若要使用 create-stack-set操作,請指定您的 StackSet 名稱,並將堆疊匯入至新建立的 StackSet。

    aws cloudformation create-stack-set \ --template-url https://amzn-s3-demo-bucket.s3.us-west-2.amazonaws.com/file-name.json \ --permission-model SERVICE_MANAGED \ --auto-deployment Enabled=true