本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
for AWS CloudFormation StackSets 的自我管理堆疊匯入
CloudFormation 堆疊匯入操作可以將現有堆疊匯入新的或現有的 StackSets,讓您可以在一個操作中將現有堆疊遷移至 StackSet。透過使用堆疊匯入,您可以避免停機時間和中斷,而無需刪除和重新建立這些資源。將堆疊匯入 StackSet 後,原始堆疊將成為指定堆疊集的堆疊執行個體。
自我管理堆疊匯入的考量事項
-
堆疊匯入操作需要您在其中建立 StackSet 的管理員帳戶,以及包含堆疊的目標帳戶。
-
目標帳戶必須具備許可來搭配使用
GetTemplate
操作與堆疊 ID 或 ARN 輸入。因此,您的管理員帳戶必須獲得 AWSCloudFormationStackSetAdministrationRole 或 AWSCloudFormationStackSetsExectionRole 許可。
將現有堆疊匯入新的 StackSet (主控台)
開始之前,請識別您要匯入的堆疊。
登入 AWS Management Console 並開啟位於 https://https://console.aws.amazon.com/cloudformation
的 AWS CloudFormation 主控台。 -
從導覽窗格選擇 StackSets。
-
選擇 StackSets 頁面上方的 Create StackSet (建立 StackSet)。
-
在選擇範本頁面上,透過下列其中一個選項指定範本,然後選擇下一步。
-
選擇 Amazon S3 URL,然後在文字方塊中為您的範本指定 URL。
-
選擇 Upload a template file (上傳範本檔案),然後瀏覽您的範本。
-
選擇 From stack ID (通過堆疊 ID),然後輸入您的堆疊 ID。
-
-
在指定 StackSet 詳細資訊頁面上,輸入您要建立的 StackSet 名稱,然後選擇下一步。
(選用) 輸入 StackSet 的描述。
-
在設定 StackSet 選項頁面上,檢閱您的選擇,然後選擇下一步。
-
在設定部署選項頁面上,選擇將堆疊匯入堆疊集。
-
在 Stacks to import (要匯入的堆疊) 欄位中輸入您想要匯入的堆疊的堆疊 ID。例如
。arn:aws:cloudformation:us-east-1:123456789012:stack/StackToImport/f449b250-b969-11e0-a185-5081d0136786
(選用) 選擇新增另一個堆疊 ID,然後輸入您要匯入之另一個堆疊的堆疊 ID。每個堆疊匯入操作最多可以新增 10 個堆疊。
-
檢閱您的部署選項,然後選擇下一步。
-
在檢閱頁面上,檢閱您的選擇和 StackSet 的屬性。當您準備好將堆疊匯入 StackSet 時,請選擇提交。
結果:匯入的堆疊現在是指定 StackSet 的堆疊執行個體。若要進一步了解堆疊匯入狀態,請參閱 StackSets 狀態碼。
將現有堆疊匯入現有 StackSet (主控台)
開始之前,請識別您要匯入的堆疊。
登入 AWS Management Console 並在 https://https://console.aws.amazon.com/cloudformation
開啟 AWS CloudFormation 主控台。 -
從導覽窗格選擇 StackSets。
-
在 StackSets 頁面上,選擇您要匯入堆疊的 StackSet。
-
選取 StackSet 後,從動作功能表中選擇將堆疊新增至 StackSet。
-
在設定部署選項頁面上,選擇匯入堆疊以設定堆疊,然後在要匯入的堆疊欄位中輸入您要匯入之堆疊的堆疊 ID。例如
。arn:aws:cloudformation:us-east-1:123456789012:stack/StackToImport/f449b250-b969-11e0-a185-5081d0136786
(選用) 選擇新增另一個堆疊 ID,然後輸入您要匯入之另一個堆疊的堆疊 ID。每個堆疊匯入操作最多可以新增 10 個堆疊。
-
選擇下一步。
-
在指定覆寫頁面上,檢閱您的選擇,然後選擇下一步。
-
在檢閱頁面上,檢閱您的選擇和 StackSet 的屬性。當您準備好建立 StackSet 時,請選擇提交。
結果:匯入的堆疊現在是指定 StackSet 的堆疊執行個體。若要進一步了解堆疊匯入狀態,請參閱 StackSets 狀態碼。
將堆疊匯入 StackSet (AWS CLI)
將現有堆疊匯入新的 StackSet
下列create-stack-set
命令會建立 StackSet 並匯入指定的堆疊。要匯入的堆疊由其 ARN 識別。以您自己的資訊取代預留位置文字。
aws cloudformation create-stack-set \ --stack-set-name
MyStackSet
\ --stack-idarn:aws:cloudformation:us-east-1:123456789012:stack/StackToImport/466df9e0-0dff-08e3-8e2f-5088487c4896
\ --administration-role-arnarn:aws:iam::123456789012:role/AWSCloudFormationStackSetAdministrationRole
\ --execution-role-nameAWSCloudFormationStackSetExecutionRole
將現有堆疊匯入現有 StackSet
下列import-stacks-to-stack-sets
命令會將指定的堆疊匯入 MyStackSet
StackSet。要匯入的堆疊由其 ARN 識別。以您自己的資訊取代預留位置文字。
aws cloudformation import-stacks-to-stack-set \ --stack-set
MyStackSet
\ --stack-idsarn:aws:cloudformation:us-east-1:123456789012:stack/StackToImport/f449b250-b969-11e0-a185-5081d0136786
若要指定多個堆疊,請針對 --stack-ids
選項的值使用下列格式。
--stack-ids "
arn_1
" "arn_2
"
將匯入的堆疊複製到其他區域和帳戶
下列create-stack-instances
命令會將堆疊執行個體新增至 StackSet。以您自己的資訊取代預留位置文字。
aws cloudformation create-stack-instances \ --stack-set-name
MyStackSet
\ --accounts '["account_ID_1
","account_ID_2
"]' \ --regions '["region_1
","region_2
"]'