服務管理堆疊匯入 AWS CloudFormation StackSets - AWS CloudFormation

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

服務管理堆疊匯入 AWS CloudFormation StackSets

AWS CloudFormation 堆疊匯入操作可以將現有堆疊匯入新的或現有的堆疊集,以便您可以在一次操作中將現有堆疊遷移至堆疊集。 StackSets 擴充堆疊的功能,因此您可以透過單一作業跨多個帳戶和區域建立、更新或刪除堆疊。

堆疊匯入的服務受管需求

堆疊匯入需求 區段外,服務受管堆疊匯入需要以下內容。

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

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

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

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

  • AWS Organizations 存取對於 Organizations 應該處於 ACTIVATED 狀態。

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

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

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

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

  1. 請登入 AWS Management Console,開啟位於 https://console.aws.amazon.com/cloudformation 的 AWS CloudFormation 主控台。

  2. 在導覽窗格中,選擇StackSets

  3. StackSets頁面頂端,選擇 [建立] StackSet。

  4. 將下列資訊新增到 Choose a template (選擇範本) 頁面。

    1. 對於StackSet 權限模型,請選取服務管理權限

    2. 對於 Prerequisite - Prepare template (先決條件 - 準備範本),選取 Template is ready (範本已準備就緒)。

      1. 對於 Amazon S3 URL,在 Amazon S3 URL 欄位中輸入您的 Amazon S3 URL。

      2. 對於 Upload a template file (上傳範本檔案),選取本機電腦上的 CloudFormation 範本。

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

  5. 將下列資訊新增至 [指定 StackSet 詳細資訊] 頁面。

    1. 在名稱方塊中輸入堆疊組StackSet 名稱

    2. (選擇性) 在說明區段中輸入StackSet 說明

    在 [設定 StackSet 選項] 頁面上,檢閱您的選擇並選取 [下一步]。

  6. 將下列資訊新增到 Set deployment options (設定部署選項) 頁面。

    1. 對於 Add stacks to stack set (將堆疊新增至堆疊集),選取 Import stacks to stack set (將堆疊匯入堆疊集)。

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

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

      2. 對於 Stack URL (堆疊 URL),輸入 Amazon S3 URL。

  7. 將下列資訊新增到 Associate organizational units (關聯組織單位) 區段。

    1. 選取 Associate with organization (與組織關聯) 以使用根 OU。

    2. 選取 Associate with organizational units (OUs) (與組織單位 (OU) 關聯)),以輸入要匯入之堆疊的父 OU ID。例如,如果 Stack 1Stack 2OU1 下方,並且 Stack 3OU2 下方,則輸入 OU1OU2

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

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

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

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

建立堆疊集和匯入堆疊
  1. 請登入 AWS Management Console,開啟位於 https://console.aws.amazon.com/cloudformation 的 AWS CloudFormation 主控台。

  2. 在導覽窗格中,選擇StackSets

  3. StackSets頁面頂端,選擇 [建立] StackSet。

  4. 將下列資訊新增到 Choose a template (選擇範本) 頁面。

    1. 對於StackSet 權限模型,請選取服務管理權限

    2. 對於 Prerequisite - Prepare template (先決條件 - 準備範本),選取 Template is ready (範本已準備就緒)。

      1. 對於 Amazon S3 URL,在 Amazon S3 URL 欄位中輸入您的 Amazon S3 URL。

      2. 對於 Upload a template file (上傳範本檔案),選取本機電腦上的 CloudFormation 範本。

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

  5. 將下列資訊新增至 [指定 StackSet 詳細資訊] 頁面。

    1. 在名稱方塊中輸入堆疊組StackSet 名稱

    2. (選擇性) 在說明區段中輸入StackSet 說明

    在 [設定 StackSet 選項] 頁面上,檢閱您的選擇並選取 [下一步]。

  6. 將下列資訊新增到 Set deployment options (設定部署選項) 頁面。

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

  7. 將下列資訊新增到 Associate organizational units (關聯組織單位) 區段。

    1. 選取 Associate with organization (與組織關聯) 以使用根 OU。

    2. 選取 Associate with organizational units (OUs) (與組織單位 (OU) 關聯)),以輸入要匯入之堆疊的父 OU ID。例如,如果 Stack 1Stack 2OU1 下方,並且 Stack 3OU2 下方,則輸入 OU1OU2

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

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

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

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

選取堆疊集並識別您要匯入的堆疊。

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

  2. 在導覽窗格中,選擇StackSets

  3. 選取您要匯入堆疊的目標堆疊組合,然後從「動作」下拉式清單 StackSet中選擇「新增堆疊至」。

  4. 將下列資訊新增到 Set deployment options (設定部署選項) 頁面。

    1. 對於 Add stacks to stack set (將堆疊新增至堆疊集),選取 Import stacks to stack set (將堆疊匯入堆疊集)。

    2. 將下列資訊新增到 Stacks to import (要匯入的堆疊) 區段。

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

      2. 對於 Stack URL (堆疊 URL),輸入 Amazon S3 URL。

    3. 將下列資訊新增到 Associate organizational units (關聯組織單位) 區段。

      1. 選取 Associate with organization (與組織關聯) 以使用根 OU。

      2. 選取 Associate with organizational units (OUs) (與組織單位 (OU) 關聯)),以輸入要匯入之堆疊的父 OU ID。例如,如果 Stack 1Stack 2OU1 下方,並且 Stack 3OU2 下方,則輸入 OU1OU2

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

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

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

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

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

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

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

  • 若要使用 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://DOC-EXAMPLE-BUCKET \ --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),為 OU 下的所有帳戶建立堆疊執行個體。下列 AWS CLI 範例使用 create-stack-set 操作將堆疊匯入新的堆疊集。

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

    aws cloudformation create-stack-set \ --template-url https://DOC-EXAMPLE-BUCKET \ --permission-model SERVICE_MANAGED \ --auto-deployment Enabled=true