使用服務管理堆疊匯入 AWS Management Console 或 AWS CLI - AWS CloudFormation

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

使用服務管理堆疊匯入 AWS Management Console 或 AWS CLI

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

堆疊匯入的服務受管需求

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

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

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

  • 目標堆棧存在於其中一個目標中OUs。

  • 目標帳戶應為下列成員 AWS Organizations.

  • AWS Organizations 存取權應為「Or ACTIVATED ganizations」的狀態。

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

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

將堆疊匯入新的堆疊組中 AWS Management Console

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

  1. 登入 AWS Management Console 並打開 AWS CloudFormation 控制台在 https://console.aws.amazon.com/雲形成。

  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 字段URL中輸入您的 Amazon S3

      2. 對於「上載範本檔案」,請選取本機電腦上的 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. 對於堆棧URL進入 Amazon S3 URL。

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

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

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

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

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

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

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

建立堆疊集和匯入堆疊
  1. 登入 AWS Management Console 並打開 AWS CloudFormation 控制台在 https://console.aws.amazon.com/雲形成。

  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 字段URL中輸入您的 Amazon S3

      2. 對於「上載範本檔案」,請選取本機電腦上的 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. 選取與組織單位產生關聯 (OUs),為要匯入IDs的堆疊輸入父 OU。例如,如果 Stack 1Stack 2OU1 下方,並且 Stack 3OU2 下方,則輸入 OU1OU2

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

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

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

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

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

將堆疊匯入現有堆疊集
  1. 登入 AWS Management Console 並打開 AWS CloudFormation 控制台在 https://console.aws.amazon.com/雲形成。

  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. 對於堆棧 URL,輸入 Amazon S3 URL。

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

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

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

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

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

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

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

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

StackSets 將在這些堆棧中導入用戶提供的堆棧,OUs並將其用OUs作堆棧集的部署目標。輸入中IDs顯示的堆疊會對應至內部 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://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 建立關聯。此作業不會為相關聯的其他成員帳戶建立堆疊執行個體OUs。若要更新關聯的成員帳戶OUs,請使用create-stack-instancesupdate-stack-instances

create-stack-setOUs透過直接上傳或 Amazon S3,為使用者提供的範本下的所有帳戶建立堆疊執行個體。如下所示 AWS CLI 實例使用create-stack-set操作將堆棧導入到新的堆棧集中。

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

    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

還原堆疊執行個體匯入作業

若要還原堆疊匯入操作,請完成以下任務:

  1. 為想要在刪除堆疊執行個體後要保留的每個資源指定 RetainDeletionPolicy 屬性。如需詳細資訊,請參閱還原匯入操作

  2. 從堆疊集刪除堆疊執行個體。如需詳細資訊,請參閱使用 CloudFormation主控台或 刪除堆疊執行個體 AWS CLI

  3. 刪除您的堆疊集。如需詳細資訊,請參閱使用 CloudFormation 主控台或 刪除堆疊集 AWS CLI

結果:還原操作已刪除堆疊執行個體並保留了堆疊的資源。