覆寫 CloudFormation StackSet 中堆疊的參數值 - AWS CloudFormation

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

覆寫 CloudFormation StackSet 中堆疊的參數值

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

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

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

若要了解如何在建立堆疊時覆寫 StackSet 參數值,請參閱 將堆疊新增至 StackSets

覆寫堆疊上的參數 (主控台)

覆寫特定堆疊的參數
  1. 請登入 AWS 管理主控台,開啟位於 https://console.aws.amazon.com/cloudformation 的 CloudFormation 主控台。

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

  3. 從導覽窗格選擇 StackSets。在 StackSets 頁面上,選取您的 StackSet。

  4. 選擇 StackSet 後,從動作選單選擇覆寫 StackSet 參數

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

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

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

      [服務受管許可] 執行下列其中一項操作:

      • 選擇 Deploy to organizational units (OUs) (部署至組織單位 (OU))。輸入您在中用來建立 StackSet 的一或多個目標 OU。覆寫的參數值僅套用至目標 OU 及其子 OU 中目前的帳戶。未來新增至目標 OU 及其子 OU 的帳戶將使用 StackSet 預設值,而非覆寫的值。

      • 選擇 Deploy to accounts (部署至帳戶)。貼上您用來建立 StackSet 的部分或所有目標 OU ID 或帳戶 ID。

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

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

    3. 對於部署選項,執行下列動作:

      • 針對並行帳戶數目上限,指定並行處理的帳戶數量。

      • 針對容錯能力,指定每個區域允許的帳戶失敗數目上限。達到此限制後,操作將停止,且不會繼續前往其他區域。

      • 對於區域並行,選擇如何處理區域:循序 (一次處理一個區域) 或平行 (同時處理多個區域)。

      • 針對並行模式,選擇並行在操作執行期間的行為方式。

        • 嚴格容錯能力 – 降低發生故障時的帳戶並行層級,保持在容錯能力 +1 的範圍內。

        • 軟性容錯能力 – 無論失敗為何,維持您指定的並行層級 (最大並行帳戶的值)。

    4. 選擇下一步

  6. 指定覆寫頁面上,勾選要覆寫的參數的核取方塊,然後從編輯覆寫值選單選擇覆寫 StackSet 值

  7. 覆寫 StackSet 參數值頁面上,進行變更,接著選擇儲存變更

    注意

    若要將任何已覆寫的參數設定回使用 StackSet 中指定的值,請勾選所有參數並從編輯覆寫值選單選擇設定為 StackSet 值。這麼做會您更新堆疊時,移除所有覆寫的值。

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

  9. 準備好繼續時,請選擇提交

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

覆寫堆疊上的參數 (AWS CLI)

注意

做為委派管理員時,您必須在命令中包含 --call-as DELEGATED_ADMIN

覆寫特定堆疊的參數
  1. 使用 update-stack-instances 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 ID 或 AWS Organizations 帳戶 ID。在此範例中,我們在 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
  2. 執行 describe-stack-set-operation 命令來顯示更新操作的狀態和結果,以確認堆疊上已成功覆寫您的參數值。針對 --operation-id,使用您的 update-stack-instances 命令所傳回的操作 ID。

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