本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從 CloudFormation 主控台建立堆疊
您可以建立堆疊範本,然後使用它來使用 CloudFormation 主控台或命令列工具來建立堆疊。主控台提供精靈驅動的界面與預先定義的選項,可簡化堆疊建立程序。
建立堆疊
請依照本節中的步驟部署您的範本並建立堆疊。
先決條件
-
您必須已建立堆疊範本。如需詳細資訊,請參閱使用 CloudFormation 範本。
建立堆疊 (主控台)
-
在 https://https://console.aws.amazon.com/cloudformation
開啟 AWS CloudFormation 主控台。 -
在畫面頂端的導覽列上,選擇要在其中 AWS 區域 建立堆疊的 。
-
在堆疊頁面上,選擇右上角的建立堆疊,然後選擇使用新資源 (標準)。
或者,您可以選擇使用現有資源 (匯入資源) 選項,以匯入範本中描述的現有 AWS 資源。如需此選項的詳細資訊,請參閱 使用 AWS 資源匯入將資源匯入 CloudFormation 堆疊。
-
在建立堆疊頁面上,執行下列其中一項操作:
-
若要使用現有範本,請針對先決條件 - 準備範本,選擇選擇現有範本。然後,在指定範本下,根據範本的位置選擇 Amazon S3 URL 或上傳範本檔案。
-
如果您選擇 Amazon S3 URL,請將 URL 提供給 S3 儲存貯體中的範本檔案。
如果您的範本包含巢狀堆疊 (例如,位於子目錄中的其他範本文件中所述的堆疊),請確定 S3 儲存貯體包含必要的檔案和目錄。
如果您擁有已啟用版本控制的儲存貯體中的範本,您可以透過附加
?versionId=
到 URL 來指定範本的特定版本。如需啟用版本控制之儲存貯體的詳細資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的使用已啟用版本控制之儲存貯體中的物件。version-id
URL 必須指向大小上限為 1 MB 的範本,該範本存放在您具有讀取許可的 S3 儲存貯體內。URL 長度上限為 1024 個字元。部分資源可能要求在堆疊所在的相同區域內有儲存貯體。
-
如果您選擇上傳範本檔案,請選擇選擇檔案,從本機電腦選擇範本檔案。範本檔案大小必須為 1 MB 或以下。
一旦選擇範本,CloudFormation 就會上傳該檔案,並顯示 S3 URL。CloudFormation 會將其上傳至您 中的 Amazon S3 儲存貯體 AWS 帳戶。如果您已有 CloudFormation 在 中建立的 S3 儲存貯體 AWS 帳戶,CloudFormation 會將範本新增至該儲存貯體。如果您還沒有現有的 CloudFormation 建立儲存貯體,它會為您上傳範本檔案的每個區域建立唯一的儲存貯體。
以下是使用 CloudFormation 建立的 S3 儲存貯體時的考量事項:
-
擁有 Amazon S3 許可的任何人都可以存取儲存貯體 AWS 帳戶。
-
CloudFormation 建立儲存貯體時,伺服器端加密預設為啟用,藉此加密所有儲存貯體中存放的物件。
您可以直接管理 CloudFormation 已建立之儲存貯體的加密選項,例如,使用 Amazon S3 主控台 https://https://console.aws.amazon.com/s3/
或 AWS CLI。如需詳細資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的設定 Amazon S3 儲存貯體的預設伺服器端加密行為。 -
您可以使用自己的儲存貯體,並手動上傳範本至 Amazon S3 以管理其許可。當您建立或更新堆疊時,請指定範本檔的 Amazon S3 URL。
-
-
-
如果您尚未準備好範本,可以選擇從 Infrastructure Composer 建置,以使用 Infrastructure Composer 建立範本。如需詳細資訊,請參閱Infrastructure Composer。
-
-
選擇下一步以繼續並驗證範本。
在繼續之前,CloudFormation 會驗證您的範本以擷取語法和一些語意錯誤,例如循環相依性。在驗證期間,CloudFormation 會先檢查範本是否為有效的 JSON。如果不是,CloudFormation 會檢查範本是否為有效的 YAML。如果兩種檢查都失敗,則 CloudFormation 會傳回範本驗證錯誤。
-
在 Specify stack details (指定堆疊詳細資訊) 頁面的 Stack name (堆疊名稱) 方塊中,輸入堆疊名稱。
堆疊名稱是一個識別碼,可協助您從堆疊清單中找到特定堆疊。堆疊名稱只能包含英數字元 (區分大小寫) 和連字號。必須以字母字元開頭,且長度不可超過 128 個字元。
-
在參數區段中,為範本中定義的參數指定值。
-
選擇下一步以繼續建立堆疊。
-
(選用) 在設定堆疊選項頁面上,變更預設堆疊選項。如需詳細資訊,請參閱設定堆疊選項。
-
如果您的範本包含 IAM 資源,對於功能,請選擇我確認此範本可能會建立 IAM 資源,以指定您想要在範本中使用 IAM 資源。如需詳細資訊,請參閱確認 CloudFormation 範本中的 IAM 資源。
-
選擇 Next (下一步) 繼續。
-
在檢閱和建立頁面上,檢閱堆疊的詳細資訊。
若要在啟動堆疊之前變更任何值,請在具有您要變更之設定的部分上選擇編輯。
-
(選用) 您可以建立變更集,以在建立堆疊之前預覽堆疊的組態。在檢閱和建立頁面上,選擇建立變更集並遵循指示。如需詳細資訊,請參閱預覽堆疊的組態。
-
選擇提交以啟動您的堆疊。
然後CloudFormation 會繼續建立範本中定義的所有資源。
您可以在新堆疊的事件索引標籤上監控堆疊建立的進度和狀態。如需詳細資訊,請參閱監控堆疊進度。
使用命令列建立堆疊
您可以使用下列其中一項命令:
-
create-stack (AWS CLI)
-
New-CFNStack (AWS Tools for Windows PowerShell)
如需使用命令列建立堆疊的範例,請參閱 AWS CLI 和 PowerShell 的 CloudFormation 堆疊操作命令範例。
設定堆疊選項
在設定堆疊選項頁面上,您可以為 CloudFormation 堆疊設定選項,例如標籤、堆疊事件通知或堆疊政策。
您可以設定下列堆疊選項:
-
您最多可以將 50 個標籤金鑰對新增至您的堆疊,以及 CloudFormation 支援標記的任何資源。標籤是客戶定義的索引鍵和值,可指派給 AWS 資源,用於成本追蹤等用途。
Key (金鑰) 會包含任何英數字元或空格。而標籤金鑰的長度最多可達 127 個字元。
Value (數值) 會包含任何英數字元或空格。而標籤值的長度最多可達 255 個字元。
- 許可
-
CloudFormation 可擔任的現有 IAM 服務角色。CloudFormation 會使用該角色的憑證來建立堆疊,而非採用您帳戶的憑證。如需詳細資訊,請參閱AWS CloudFormation 服務角色。
- 堆疊失敗選項
-
為所有堆疊部署和變更集操作指定佈建失敗選項。如需詳細資訊,請參閱選擇佈建資源時如何處理失敗。
堆疊狀態為
CREATE_FAILED
或UPDATE_FAILED
時,Roll back all stack resources (復原所有堆疊資源) 選項將復原範本中指定的所有資源。針對建立操作,Preserve successfully provisioned resources (保留已成功佈建的資源) 選項可保留成功資源的狀態,而失敗的資源會保持失敗狀態,直到執行下一次更新操作為止。
針對更新與變更集操作,Preserve successfully provisioned resources (保留已成功佈建的資源) 選項可保留成功資源的狀態,同時將失敗資源復原到上一個已知穩定狀態。失敗的資源將處於
UPDATE_FAILED
狀態。沒有上一個已知穩定狀態的資源將在下一次堆疊操作時遭刪除。
您也可以針對堆疊建立設定以下進階選項:
- Stack policy (堆疊政策)
-
可藉由此選項來定義堆疊更新期間,您欲避免意外更新的資源。在預設情況下,系統可以在堆疊更新期間將所有資源進行更新。
您可以直接輸入堆疊政策作為 JSON,或上傳包含堆疊政策的 JSON 檔案。如需詳細資訊,請參閱避免更新堆疊資源。
- 復原組態
-
您可以在堆疊建立和更新期間讓 CloudFormation 監控堆疊的狀態,並在堆疊違反您指定的任何警示閾值時復原該操作。指定 CloudFormation 應該監控的 Cloudwatch 警示。如有任何警示在堆疊操作或監控期間進入
ALARM
狀態,CloudFormation 將會復原整個堆疊操作。如需詳細資訊,請參閱使用復原觸發在警示違規時復原 CloudFormation 堆疊。 - 通知選項
-
您可指定新的或現有 Amazon Simple Notification Service 主題,其為系統傳送堆疊事件通知的目標位置。
建立 Amazon SNS 主題時,您必須指定名稱與電子郵件地址,以便接收堆疊事件通知。
- 堆疊建立選項
-
堆疊建立包含以下選項,但不提供為堆疊更新的一部分。
- Timeout (逾時)
-
指定在堆疊建立操作逾時之前 CloudFormation 應分配的時間量 (以分鐘為單位)。如果 CloudFormation 無法在分配的時間內建立整個堆疊,操作便會因為逾時而失敗,並復原堆疊。
依預設,堆疊建立沒有逾時。不過,個別資源可能會因其實作的服務性質而有自己的逾時。例如,如果堆疊中的個別資源逾時,堆疊建立也會逾時,即使尚未達到您指定的堆疊建立逾時。
- 終止保護
-
此選項可防止堆疊遭意外刪除。如果使用者嘗試刪除啟用終止保護的堆疊,則刪除會失敗,且堆疊及其狀態保持不變。如需詳細資訊,請參閱防止 CloudFormation 堆疊遭到刪除。
根據預設,終止保護為 Disabled (已停用)。
預覽堆疊的組態
若要預覽如何在建立堆疊之前設定 CloudFormation 堆疊,請建立變更集。本功能可以讓您在執行變更集前檢查各種組態,並針對堆疊進行修正與更改。如需變更集的詳細資訊,請參閱使用變更集更新 CloudFormation 堆疊。
建立新堆疊的變更集
若要建立新堆疊的變更集,請選取您的堆疊範本並指定堆疊組態,就像建立新堆疊一樣,然後選擇建立新的變更集,而不是建立新的堆疊。
為新堆疊建立變更集
-
在檢閱和建立頁面上,選擇建立變更集。
-
在建立變更集對話方塊中,輸入變更集的名稱,並視需要輸入描述。選擇 Create change set (建立變更集)。
當您建立新堆疊的變更集時,CloudFormation 會執行下列動作:
-
啟動狀態為
REVIEW_IN_PROGRESS
(正在檢閱) 的新堆疊。 -
建立新堆疊的變更集,此堆疊會反映您在前列步驟中指定的堆疊組態。
CloudFormation 會顯示提議堆疊的 Change sets (變更集) 頁面。當 CloudFormation 建立變更集時,其狀態為
CREATE_IN_PROGRESS
(正在建立),執行狀態為UNAVAILABLE
(無法使用)。CloudFormation 成功建立變更集時,其會將變更集狀態設定為CREATE_COMPLETE
,並將執行狀態設定為AVAILABLE
。堆疊狀態更新為REVIEW_IN_PROGRESS
(正在檢閱)。此時,您可以執行變更集來完成建立新堆疊。在 Changes (變更) 窗格中,CloudFormation 會顯示堆疊的建議組態。
如果 CloudFormation 無法建立變更集,它會將變更集狀態設為
CREATE_FAILED
(建立失敗)。修正 Status reason (狀態原因) 欄位中顯示的錯誤,然後建立新的變更集。在此階段,您可以嘗試在執行下一個變更集前檢查各種組態,並針對堆疊進行修正與更改。 -
-
若要根據變更集完成建立新堆疊,請選擇 Execute (執行),指定復原組態,然後選擇 Execute change set (執行變更集)。