

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

# 使用範例範本開始使用 StackSets
<a name="stacksets-getting-started"></a>

本教學課程將協助您開始使用 StackSets AWS 管理主控台。它會引導您使用範例範本來建立 StackSet。您將了解如何跨多個區域部署堆疊、監控 StackSet 操作以及檢視結果。

在本教學課程中，您將建立 StackSet，在美國西部 （奧勒岡） 區域 (`us-west-2`) 和美國東部 （維吉尼亞北部） 區域 () AWS 帳戶 的 AWS Config 中啟用 `us-east-1`。使用 StackSets，您可透過單一操作跨多個帳戶和區域建立、更新或刪除堆疊，使其成為大規模管理基礎設施的理想解決方案。儘管本教學課程為了簡單起見而使用單一帳戶，但它有效地示範了 StackSets 的多區域功能。

範例範本位於以下 S3 儲存貯體：[https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/EnableAWSConfig.yml](https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/EnableAWSConfig.yml)。

**注意**  
StackSets 是免費的，但您需要支付使用它建立 AWS 的資源的費用，例如在本教學 AWS Config 課程中。如需詳細資訊，請參閱 [AWS Config 定價](https://aws.amazon.com/config/pricing/)。

**Topics**
+ [先決條件](#stacksets-tutorial-prerequisites)
+ [從主控台使用範例範本建立 StackSet](#stacksets-tutorial-create-stackset)
+ [監控 StackSet 建立](#stacksets-tutorial-monitor-creation)
+ [檢視 StackSet 結果](#stacksets-tutorial-view-results)
+ [更新您的 StackSet](#stacksets-tutorial-update-stackset)
+ [將堆疊新增至 StackSet](#stacksets-tutorial-add-stacks)
+ [清除](#stacksets-tutorial-clean-up)
+ [後續步驟](#stacksets-tutorial-next-steps)

## 先決條件
<a name="stacksets-tutorial-prerequisites"></a>

在開始教學課程前，請確定您已完成以下先決條件：
+ 您必須已設定自我管理許可所需的 IAM 角色。若要在單一帳戶中建立 StackSet 和部署堆疊，需要帳戶中的下列角色：
  + `AWSCloudFormationStackSetAdministrationRole`
  + `AWSCloudFormationStackSetExecutionRole`

  如需設定這些角色的詳細說明，請參閱 [授與自我管理許可](stacksets-prereqs-self-managed.md)。

## 從主控台使用範例範本建立 StackSet
<a name="stacksets-tutorial-create-stackset"></a>

**建立可啟用 的 StackSet AWS Config**

1. 開啟 [CloudFormation 主控台](https://console.aws.amazon.com/cloudformation/)。

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

   您可以選擇支援 StackSets 的任何區域。您選取的區域不會影響您可使用 StackSet 部署到哪些區域。

1. 從導覽窗格選擇 **StackSets**。

1. 從 **StackSets** 頁面上方選擇**建立 StackSet**。

1. 在**許可**下，選擇**自助服務許可**，然後選擇您在先決條件中建立的 IAM 角色。
   + 對於 IAM 管理員角色，選擇 **AWSCloudFormationStackSetAdministrationRole**。
   + 對於 IAM 執行角色名稱，選擇 **AWSCloudFormationStackSetExecutionRole**。

1. 選擇 **Prerequisite - Prepare template (事前準備 - 準備範本)** 下的 **Use a sample template (使用範例範本)**。

1. 在**選擇範例範本**下，選擇**啟用 AWS Config** 範本。然後選擇**下一步**。

   此範本會建立必要的資源，以在您的帳戶 AWS Config 中啟用 ，包括組態記錄器和交付管道。

1. 在**指定堆疊詳細資訊**頁面上，對於 **StackSet 名稱**，輸入 **my-awsconfig-stackset**。

1. 對於 **StackSet 說明**，輸入 **A StackSet that enables Config across multiple Regions**。

1. 在**參數**下， AWS Config 設定設定如下：

   1. 對於**支援所有資源類型**，請保留預設值 **true**，以記錄所有支援的資源類型。

   1. 對於**包含全域資源類型**，請保留預設值 **false**，以排除全域資源，如 IAM 角色。

   1. 將**若未支援所有資源類型，請提供資源類型清單**，保留設定為 **<All>**。

   1. 對於**包含 Config 服務連結角色資源的區域**，請以 **us-west-2** 取代 **<DeployToAnyRegion>**。

      這表示只有在堆疊部署到美國西部 (奧勒岡) 區域時，才會建立名為 `AWSServiceRoleForConfig` 的服務連結角色。您將在此程序稍後選擇部署區域。

   1. 對於**組態記錄器記錄頻率**，選擇 **DAILY** 記錄。

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

1. 在**設定 StackSet 選項**頁面中，選擇**新增標籤**並透過指定鍵和值對來新增標籤。

   1. 在 **Key** (索引鍵) 欄位，輸入 **Stage**。

   1. 針對**數值**，輸入 **Test**。

   您套用至 StackSets 的標籤將套用至您的堆疊建立的資源。

1. 對於**執行組態**，選擇**作用中**，以啟用 CloudFormation 的最佳化操作處理：
   + 非衝突操作會同時執行，以便加快部署時間。
   + 衝突操作會根據請求的順序，自動排入佇列和處理。

   在有執行中或排入佇列的操作時，CloudFormation 會將所有傳入操作排入佇列，即使這些操作沒有衝突也一樣。在此期間，您無法變更執行設定。

1. 選擇**下一步**。

1. 在**設定部署選項**頁面上，對於**將堆疊新增至 StackSet**，選擇**部署新堆疊**。

1. 針對 **Accounts (帳戶)**，選擇 **Deploy stacks in accounts (在帳戶中部署堆疊)**。

1. 在文字方塊中，輸入您的 AWS 帳戶 ID。

1. 對於**指定區域**，依此順序選取下列區域：

   1. 美國西部 (奧勒岡) 區域 (`us-west-2`)

   1. 美國東部 (維吉尼亞北部) 區域 (`us-east-1`)

   如有需要，使用美國西部 (奧勒岡) 區域旁邊的向上箭頭，將它上移成清單中的第一個項目。區域順序決定其部署順序。

1. 對於**部署選項**，設定下列設定：

   1. 對於 **Maximum concurrent accounts** (同時使用的帳戶上限)，保留 **Number** (數值) 和 **1** 的預設值。

      對於多帳戶部署，該設定表示 CloudFormation 一次只能在一個帳戶中部署堆疊。

   1. 針對 **Failure tolerance (容錯能力)**，保留預設值 **Number (數字)** 和 **0**。

      這表示在您指定的其中一個區域中，堆疊部署的最大失敗次數為零，否則 CloudFormation 會停止目前區域中的部署，並取消在剩餘區域中的部署。

   1. 針對**區域並行**，選擇**循序** (預設)。

      此設定可確保 CloudFormation 在移至下一個區域之前，先完成某個區域的部署。

   1. 對於**並行模式**，保留**嚴格容錯能力**的預設值。

      對於多帳戶部署，這能減少發生故障時的帳戶並行層級，保持在**容錯能力** \$11 內。

1. 選擇**下一步**。

1. 在 **Review (檢閱)** 頁面上，檢視您的選擇。選擇**編輯**以對相關區段進行變更。

1. 當您準備好建立 StackSet 時，請選擇**提交**。

## 監控 StackSet 建立
<a name="stacksets-tutorial-monitor-creation"></a>

選擇**提交**後，CloudFormation 會開始建立 StackSet，並將堆疊部署到您帳戶中的指定區域。StackSet 詳細資訊頁面會自動開啟，您可在其中監控操作的進度。

**監控 StackSet 建立**

1. 在 StackSet 詳細資訊頁面上，預設顯示**操作**索引標籤，顯示目前進行中的操作。

1. 操作狀態一開始應是 `RUNNING`。CloudFormation 會根據您設定的部署選項，在指定的區域中建立堆疊。

1. 要查看操作的詳細資訊，請在清單中選取操作 ID。

1. 在操作詳細資訊頁面上，您可檢視在每個區域中建立的堆疊執行個體狀態。

1. 等待操作狀態變更為 `SUCCEEDED`，這表示已成功建立 StackSet 及其所有堆疊執行個體。

## 檢視 StackSet 結果
<a name="stacksets-tutorial-view-results"></a>

StackSet 建立完成後，您可以檢視已部署的堆疊執行個體，並確認 AWS Config 已在您的帳戶中跨指定區域啟用。

**檢視 StackSet 結果**

1. 在 StackSet 詳細資訊頁面上，選擇**堆疊執行個體**索引標籤。

1. 您應會看到在帳戶中跨指定區域建立的堆疊執行個體清單。每個堆疊執行個體的狀態應為 `SUCCEEDED`，表示已成功部署。

1. 若要驗證您的帳戶是否已啟用 AWS Config ，您可以檢查每個部署區域中的 AWS Config 主控台。

## 更新您的 StackSet
<a name="stacksets-tutorial-update-stackset"></a>

建立您的 StackSet 之後，您可能想要更新它以修改參數值或新增更多區域。本節說明如何更新 AWS Config 記錄頻率參數。

**更新您的 StackSet**

1. 在 **StackSets** 頁面上，選取 **my-awsconfig-stackset**。

1. 選擇 StackSet 後，從**動作**選單選擇**編輯 StackSet 詳細資訊**。

1. 在**選擇範本**頁面上，針對**先決條件 - 準備範本**，選擇**使用目前範本**。

1. 選擇**下一步**。

1. 在**指定 StackSet 詳細資訊**頁面的**參數**下，尋找**組態記錄器記錄頻率**，並將其從 **DAILY** 變更為 **CONTINUOUS**。

1. 選擇**下一步**。

1. 在**設定 StackSet 選項**頁面上，將設定保留原樣，再選擇**下一步**。

1. 在**設定部署選項**頁面上，指定帳戶 ID 和您在建立 StackSet 時所使用的相同區域。

1. 對於**部署選項**，保留與之前相同的設定。

1. 選擇**下一步**。

1. 在**檢閱**頁面上，檢閱您的選項，然後選擇**提交**。

1. CloudFormation 開始更新您的 StackSet。您可在 StackSet 詳細資訊頁面的**操作**索引標籤上監控進度。

## 將堆疊新增至 StackSet
<a name="stacksets-tutorial-add-stacks"></a>

您可部署到其他區域，將更多堆疊新增至 StackSet。本節顯示如何將堆疊新增至新區域。

**將堆疊新增至 StackSet**

1. 在 **StackSets** 頁面上，選取 **my-awsconfig-stackset**。

1. 選擇 StackSet 後，從**動作**選單選擇**將堆疊新增至 StackSet**。

1. 在**設定部署選項**頁面上，對於**將堆疊新增至 StackSet**，選擇**部署新堆疊**。

1. 針對**帳戶**，選擇**在帳戶中部署堆疊**並輸入帳戶 ID。

1. 針對**指定區域**，選取新區域，例如**歐洲 (愛爾蘭)** (`eu-west-1`)。

1. 對於**部署選項**，保留與之前相同的設定。

1. 選擇**下一步**。

1. 在**指定覆寫**頁面上，依指定保留屬性值並選擇**下一步**。

1. 在 **Review (檢閱)** 頁面上，檢閱您的選項，然後選擇 **Submit (提交)**。

1. CloudFormation 會在指定的區域開始建立新的堆疊。您可在 StackSet 詳細資訊頁面的**操作**索引標籤上監控進度。

## 清除
<a name="stacksets-tutorial-clean-up"></a>

為了避免產生不必要的 AWS Config 資源費用，您應該從 StackSet 刪除堆疊、刪除 StackSet 本身，以及移除您在本教學課程中建立的 IAM 角色來清除 。因所有資源都部署在您的帳戶中，因此清除非常簡單。

**從您的 StackSet 刪除堆疊**

1. 在 **StackSets** 頁面上，選取 **my-awsconfig-stackset**。

1. 選取 StackSet 後，從**動作**選單選擇**從 StackSet 刪除堆疊**。

1. 在**設定部署選項**頁面上，針對**帳戶**，選擇**在帳戶中部署堆疊**，然後輸入您的帳戶 ID。

1. 針對**指定區域**，選取您部署堆疊的所有區域。

1. 對於**部署選項**，保留預設的設定。

1. 確定*未*開啟**保留堆疊**，以便刪除堆疊及其資源。

1. 選擇**下一步**。

1. 在 **Review (檢閱)** 頁面上，檢閱您的選項，然後選擇 **Submit (提交)**。

1. CloudFormation 會開始從 StackSet 刪除堆疊。您可在 StackSet 詳細資訊頁面的**操作**索引標籤上監控進度。

**刪除您的 StackSet**

1. 刪除所有堆疊之後，在 **StackSets** 頁面上選取 **my-awsconfig-stackset**。

1. 選擇 StackSet 後，從**動作**選單選擇**刪除 StackSet**。

1. 出現確認提示時，請選擇**刪除**。

**刪除 IAM 服務角色**

由於您只部署到您的帳戶，因此只需要從此單一帳戶刪除 IAM 角色，使得清除比多帳戶部署更為簡單。

1. 開啟 [IAM 主控台](https://console.aws.amazon.com/iam/)。

1. 從導覽窗格中，選擇 **Roles (角色)**。

1. 在搜尋方塊中，輸入 **AWSCloudFormationStackSet**，以尋找您為此教學課程建立的角色。

1. 選取 **AWSCloudFormationStackSetAdministrationRole** 旁邊的核取方塊。

1. 從頁面頂部，選擇**刪除**。

1. 在確認對話方塊中輸入 **delete**，然後選擇**刪除**。

1. 重複相同的程序，刪除 **AWSCloudFormationStackSetExecutionRole**。

刪除 StackSet 之後， AWS 區域 由於`AWS::S3::Bucket`資源上的 `DeletionPolicy` 屬性，Amazon S3 儲存貯體會保留在每個儲存貯體中。這會保留您的 AWS Config 歷史記錄資料。若您不再需要此資料，可以手動安全地刪除儲存貯體。您必須先清空儲存貯體，才能將其刪除。清空儲存貯體將會刪除其中的所有物件。

**清空和刪除 Amazon S3 儲存貯體**

1. 開啟 [Amazon S3 主控台](https://console.aws.amazon.com/s3/)。

1. 在主控台左側的導覽窗格中，選擇 **Buckets (儲存貯體)**。

1. 在**儲存貯體**清單中，您會在部署的每個區域看到為此 StackSet 建立的儲存貯體。選取為此 StackSet 建立之儲存貯體名稱旁邊的選項，然後選擇**空白**。

1. 在**清空儲存貯體**頁面上的文字欄位中輸入 **permanently delete**，以確認您要清空儲存貯體，然後選擇**清空**。

1. 在 **Empty bucket: Status** (清空儲存貯體：狀態) 頁面上監控儲存貯體清空的進度。

1. 若要返回儲存貯體清單，請選擇 **Exit (結束)**。

1. 選取儲存貯體名稱旁邊的選項，然後選擇**刪除**。

1. 出現確認提示時，請輸入儲存貯體名稱，然後選擇**刪除儲存貯體**。

1. 從**儲存貯體**清單中，監控儲存貯體刪除程序的進度。當 Amazon S3 完成刪除儲存貯體時，它會從清單移除儲存貯體。

1. 針對 StackSet 在不同區域中建立的每個儲存貯體，重複此程序。

## 後續步驟
<a name="stacksets-tutorial-next-steps"></a>

恭喜您！您已成功使用範例範本建立 StackSet，將堆疊部署到帳戶中的多個區域、更新 StackSet、新增更多堆疊，以及清理資源。透過專注於單一帳戶部署，您已簡化清除程序，同時仍學習 StackSets 的核心多區域功能。

若要進一步了解 StackSets，請探索下列主題：
+ [覆寫 CloudFormation StackSet 中堆疊的參數值](stackinstances-override.md) – 了解如何覆寫特定帳戶及區域的參數值。
+ [具有服務受管許可的 Create CloudFormation StackSets](stacksets-orgs-associate-stackset-with-org.md) – 探索使用 AWS Organizations為多帳戶部署建立 StackSets。