

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

# 覆寫 CloudFormation StackSet 中堆疊的參數值
<a name="stackinstances-override"></a>

在某些情況下，您可能會希望特定區域或帳戶中的堆疊，擁有不同於 StackSet 本身指定的屬性值。例如，您可能想要根據帳戶用於開發或生產，為指定的參數指定不同的值。針對這些情況，CloudFormation 可讓您依據帳戶與區域覆寫堆疊中的參數值。您可以先在建立堆疊時覆寫範本參數值，也可以覆寫現有堆疊的參數值。您只能將之前在堆疊中覆寫的參數，設定回 StackSet 中指定的值。

參數值覆寫套用至您選取之帳戶和區域中的堆疊。在 StackSet 更新期間，針對堆疊覆寫的任何參數值皆不會更新，而是會保留其覆寫值。

您只能覆寫 StackSet 中指定的參數*值*，若要新增或刪除參數本身，您必須更新 StackSet 範本。如果您將參數新增至 StackSet 範本，那麼在您可以覆寫堆疊中的該參數值之前，您必須先以 StackSet 之中指定的新參數與值來更新所有堆疊。一旦所有堆疊以新參數完成更新，您就能視需要覆寫個別堆疊中的參數值。

若要了解如何在建立堆疊時覆寫 StackSet 參數值，請參閱 [將堆疊新增至 StackSets](stackinstances-create.md)。

**Topics**
+ [覆寫堆疊上的參數 (主控台)](#stackinstances-override-console)
+ [覆寫堆疊上的參數 (AWS CLI)](#stackinstances-override-cli)

## 覆寫堆疊上的參數 (主控台)
<a name="stackinstances-override-console"></a>

**覆寫特定堆疊的參數**

1. 登入 AWS 管理主控台 並在 https：//[https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) 開啟 CloudFormation 主控台。

1. 在螢幕上方的導覽列中，選擇您在其中建立 StackSet 所在的 AWS 區域 。

1. 從導覽窗格選擇 **StackSets**。在 StackSets 頁面上，選取您的 StackSet。

1. 選擇 StackSet 後，從**動作**選單選擇**覆寫 StackSet 參數**。

1. 在**設定部署選項**頁面上，提供您要為其建立覆寫之堆疊的帳戶和區域。

   根據預設，CloudFormation 會在第一個區域內的指定帳戶中部署堆疊，然後移至下一個區域，以此類推。前提是一個區域的部署失敗不超過指定的容錯能力。

   1. [自我管理許可] 對於**部署目標**，選擇**在帳戶中部署堆疊**。貼上用來建立 StackSet 的部分或全部目標帳戶 ID。

      [服務受管許可] 執行下列其中一項操作：
      + 選擇 **Deploy to organizational units (OUs) (部署至組織單位 (OU))**。輸入您在中用來建立 StackSet 的一或多個目標 OU。覆寫的參數值僅套用至目標 OU 及其子 OU 中目前的帳戶。未來新增至目標 OU 及其子 OU 的帳戶將使用 StackSet 預設值，而非覆寫的值。
      + 選擇 **Deploy to accounts (部署至帳戶)**。貼上您用來建立 StackSet 的部分或所有目標 OU ID 或帳戶 ID。

   1. 針對**指定區域**，新增一或多個已部署此 StackSet 之堆疊執行個體的區域。

      如果您新增多個區域，則 **Specify regions (指定區域)** 下的區域順序決定其部署順序。

   1. 對於**部署選項**，執行下列動作：
      + 針對**並行帳戶數目上限**，指定並行處理的帳戶數量。
      + 針對**容錯能力**，指定每個區域允許的帳戶失敗數目上限。達到此限制後，操作將停止，且不會繼續前往其他區域。
      + 對於**區域並行**，選擇如何處理區域：**循序** (一次處理一個區域) 或**平行** (同時處理多個區域)。
      + 針對**並行模式**，選擇並行在操作執行期間的行為方式。
        + **嚴格容錯能力** – 降低發生故障時的帳戶並行層級，保持在**容錯能力** \$11 的範圍內。
        + **軟性容錯能力** – 無論失敗為何，維持您指定的並行層級 (**最大並行帳戶**的值)。

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

1. 在**指定覆寫**頁面上，勾選要覆寫的參數的核取方塊，然後從**編輯覆寫值**選單選擇**覆寫 StackSet 值**。

1. 在**覆寫 StackSet 參數值**頁面上，進行變更，接著選擇**儲存變更**。
**注意**  
若要將任何已覆寫的參數設定回使用 StackSet 中指定的值，請勾選所有參數並從**編輯覆寫值**選單選擇**設定為 StackSet 值**。這麼做會您更新堆疊時，移除所有覆寫的值。

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

1. 準備好繼續時，請選擇**提交**。

   CloudFormation 開始更新您的堆疊。在選擇**提交**時開啟的 StackSet 詳細資訊頁面中，檢視堆疊的進度和狀態。

## 覆寫堆疊上的參數 (AWS CLI)
<a name="stackinstances-override-cli"></a>

**注意**  
做為委派管理員時，您必須在命令中包含 `--call-as DELEGATED_ADMIN`。

**覆寫特定堆疊的參數**

1. 使用 [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/update-stack-instances.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/update-stack-instances.html) AWS CLI 命令並指定 `--parameter-overrides`選項。

   [自我管理許可] 對於 `--accounts` 選項，提供您要在堆疊上覆寫參數值的帳戶 ID。

   ```
   aws cloudformation update-stack-instances --stack-set-name my-stackset \
     --parameter-overrides ParameterKey=Subnets,ParameterValue=subnet-1baa3351\\,subnet-27b86940 \
     --accounts account_id --regions us-east-1
   ```

   【服務受管許可】 針對 `--deployment-targets`選項，提供您要覆寫堆疊參數的組織根 ID、OU IDs 或 AWS Organizations 帳戶 IDs。在此範例中，我們在 ID 為 `ou-rcuk-1x5j1lwo` ID 的 OU 中的所有帳戶中，覆寫堆疊的參數值。

   覆寫的參數值僅套用至目標 OU 及其子 OU 中目前的帳戶。未來新增至目標 OU 及其子 OU 的帳戶將使用 StackSet 預設值，而非覆寫的值。

   ```
   aws cloudformation update-stack-instances --stack-set-name my-stackset \
     --parameter-overrides ParameterKey=Subnets,ParameterValue=subnet-1baa3351\\,subnet-27b86940 \
     --deployment-targets OrganizationalUnitIds=ou-rcuk-1x5j1lwo \
     --regions us-east-1
   ```

1. 執行 **describe-stack-set-operation** 命令來顯示更新操作的狀態和結果，以確認堆疊上已成功覆寫您的參數值。針對 `--operation-id`，使用您的 **update-stack-instances** 命令所傳回的操作 ID。

   ```
   aws cloudformation describe-stack-set-operation --operation-id operation_ID
   ```