本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從 CloudFormation 主控台建立堆疊
可以建立堆疊範本,然後使用它透過 CloudFormation 主控台或命令列工具建立堆疊。主控台提供精靈驅動的介面與預先定義的選項,可簡化堆疊建立程序。
建立堆疊
請依照本節中的步驟來部署範本並建立堆疊。
必要條件
-
您必須已經建立堆疊範本。如需更多詳細資訊,請參閱 使用 CloudFormation 範本。
若要建立堆疊 (主控台)
-
造訪網址 https://console.aws.amazon.com/cloudformation
以開啟 CloudFormation 主控台: -
在螢幕上方的導覽列中,選擇在其中建立堆疊的 AWS 區域。
-
在堆疊頁面的右上角,選擇建立堆疊,並選擇使用新資源 (標準)。
或者,可以選擇使用現有資源 (匯入資源) 選項,以匯入範本中描述的現有 AWS 資源。如需有關此選項的詳細資訊,請參閱 將 AWS 資源匯入 CloudFormation 堆疊。
-
在建立堆疊頁面中,執行下列動作:
-
若要使用現有範本,請在先決條件 - 準備範本中選取選擇現有範本。然後,在指定範本下,根據範本的位置選擇 Amazon S3 URL 或上傳範本檔案。
-
如果選擇 Amazon S3 URL,請將 URL 提供給 S3 儲存貯體中的範本檔案。
如果範本包含巢狀堆疊 (例如,子目錄中其他範本文件中所述的堆疊),請確保 S3 儲存貯體包含必要的檔案和目錄。
如果您擁有已啟用版本控制的儲存貯體中的範本,則可以指定範本的特定版本,方法是將
?versionId=附加到 URL。如需有關已啟用版本控制的儲存貯體詳細資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的使用已啟用版本控制之儲存貯體中的物件。version-idURL 必須指向大小上限為 1 MB 的範本,該範本存放在您具有讀取許可的 S3 儲存貯體內。URL 長度上限為 1024 個字元。部分資源可能要求在堆疊所在的相同區域內有儲存貯體。
-
如果您選擇上傳範本檔案,請選取選擇檔案以從本機電腦中選擇範本檔案。範本檔案大小必須為 1 MB 或以下。
一旦選擇範本,CloudFormation 就會上傳該檔案,並顯示 S3 URL。CloudFormation 會將其上傳至 AWS 帳戶 中的 Amazon S3 儲存貯體。如果您的 AWS 帳戶 中已經擁有 CloudFormation 建立的 S3 儲存貯體,CloudFormation 會將範本新增到該儲存貯體。如果您還沒有現有的 CloudFormation 建立的 S3 儲存貯體,它會針對您上傳範本檔案的每個區域建立唯一儲存貯體。
以下是使用 CloudFormation 建立的 S3 儲存貯體時的考量:
-
AWS 帳戶中擁有 Amazon S3 許可的任何人皆可存取這些儲存貯體。
-
CloudFormation 建立儲存貯體時,伺服器端加密預設為啟用,藉此加密所有儲存貯體中存放的物件。
您可以直接管理 CloudFormation 已建立的儲存貯體之加密選項,例如,使用位於 https://console.aws.amazon.com/s3/
的 Amazon 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 會使用該角色的憑證來建立堆疊,而非採用您帳戶的憑證。如需更多詳細資訊,請參閱 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 (執行變更集)。