從 CloudFormation 主控台建立堆疊 - AWS CloudFormation

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

從 CloudFormation 主控台建立堆疊

可以建立堆疊範本,然後使用它透過 CloudFormation 主控台或命令列工具建立堆疊。主控台提供精靈驅動的介面與預先定義的選項,可簡化堆疊建立程序。

建立堆疊

請依照本節中的步驟來部署範本並建立堆疊。

必要條件
若要建立堆疊 (主控台)
  1. 造訪網址 https://console.aws.amazon.com/cloudformation以開啟 CloudFormation 主控台:

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

  3. 堆疊頁面的右上角,選擇建立堆疊,並選擇使用新資源 (標準)

    或者,可以選擇使用現有資源 (匯入資源) 選項,以匯入範本中描述的現有 AWS 資源。如需有關此選項的詳細資訊,請參閱 將 AWS 資源匯入 CloudFormation 堆疊

  4. 建立堆疊頁面中,執行下列動作:

    • 若要使用現有範本,請在先決條件 - 準備範本中選取選擇現有範本。然後,在指定範本下,根據範本的位置選擇 Amazon S3 URL上傳範本檔案

      • 如果選擇 Amazon S3 URL,請將 URL 提供給 S3 儲存貯體中的範本檔案。

        如果範本包含巢狀堆疊 (例如,子目錄中其他範本文件中所述的堆疊),請確保 S3 儲存貯體包含必要的檔案和目錄。

        如果您擁有已啟用版本控制的儲存貯體中的範本,則可以指定範本的特定版本,方法是將 ?versionId=version-id 附加到 URL。如需有關已啟用版本控制的儲存貯體詳細資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的使用已啟用版本控制之儲存貯體中的物件

        URL 必須指向大小上限為 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

  5. 選擇下一步以繼續並驗證範本。

    在繼續之前,CloudFormation 會驗證您的範本以捕捉語法和語意錯誤,例如循環參考。在驗證期間,CloudFormation 會先檢查範本是否為有效的 JSON。如果不是,CloudFormation 會檢查範本是否為有效的 YAML。如果兩種檢查都失敗,則 CloudFormation 會傳回範本驗證錯誤。

  6. Specify stack details (指定堆疊詳細資訊) 頁面的 Stack name (堆疊名稱) 方塊中,輸入堆疊名稱。

    堆疊名稱是一個識別碼,可協助您從堆疊清單中找到特定堆疊。堆疊名稱只能包含英數字元 (區分大小寫) 和連字號。必須以字母字元開頭,且長度不可超過 128 個字元。

  7. 參數區段中,指定範本中定義的參數值。

  8. 請選擇下一步,繼續建立堆疊。

  9. (選用) 在配置堆疊選項頁面中,變更預設堆疊選項。如需更多詳細資訊,請參閱 設定堆疊選項

  10. 如果範本包含 IAM 資源,在功能中選擇我知道此範本可建立 IAM 資源,以指定您要使用此範本中的 IAM 資源。如需更多詳細資訊,請參閱 認可 CloudFormation 範本中的 IAM 資源

  11. 選擇 Next (下一步) 繼續。

  12. 檢閱並建立頁面中,檢閱堆疊詳細資訊。

    若要在啟動堆疊之前變更任何值,請在具有要變更之設定的區段中選擇編輯

  13. (選用) 您可以建立變更集,以在建立之前預覽堆疊的組態。在檢閱並建立頁面中,選擇建立變更集並遵循指示。如需更多詳細資訊,請參閱 預覽堆疊的組態

  14. 選擇提交以啟動堆疊。

CloudFormation 接著會繼續建立範本中定義的所有資源。

可以在新堆疊的事件索引標籤中監控堆疊建立的進度和狀態。如需更多詳細資訊,請參閱 監控堆疊進度

若要使用命令列來建立堆疊

您可以使用下列其中一項命令:

如需使用命令列建立堆疊的範例,請參閱 AWS CLI和 PowerShell 的 CloudFormation 堆疊操作命令範例

設定堆疊選項

設定堆疊選項頁面中,可以為 CloudFormation 堆疊設定選項,例如標籤、堆疊事件通知或堆疊政策。

您可以設定下列堆疊選項:

標籤

最多可以將 50 個標籤金鑰對新增至堆疊以及 CloudFormation 支援標記的任何資源。標籤是客戶定義的金鑰和值,可以指派給 AWS 資源,用於成本追蹤等目的。

Key (金鑰) 會包含任何英數字元或空格。而標籤金鑰的長度最多可達 127 個字元。

Value (數值) 會包含任何英數字元或空格。而標籤值的長度最多可達 255 個字元。

建立堆疊後,新增、更新或移除堆疊層級標籤會啟動堆疊更新。支援堆疊層級標籤傳播的所有資源都會相應更新。

許可

CloudFormation 可以擔任的現有 IAM 服務角色。CloudFormation 會使用該角色的憑證來建立堆疊,而非採用您帳戶的憑證。如需更多詳細資訊,請參閱 CloudFormation 服務角色

堆疊失敗選項

為所有堆疊部署和變更集操作指定佈建失敗選項。如需更多詳細資訊,請參閱 選擇佈建資源時的失敗處理方式

堆疊狀態為 CREATE_FAILEDUPDATE_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 堆疊

建立新堆疊的變更集

若要建立新堆疊的變更集,請選取您的堆疊範本並指定堆疊組態,就像建立新堆疊一樣,然後選擇建立新的變更集,而不是建立新的堆疊。

若要建立新堆疊的變更集
  1. 檢閱並建立頁面中,選取建立變更集

  2. 建立變更集對話方塊中,輸入變更集的名稱,並視需要輸入描述。選擇 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 (狀態原因) 欄位中顯示的錯誤,然後建立新的變更集。在此階段,您可以嘗試在執行下一個變更集前檢查各種組態,並針對堆疊進行修正與更改。

  3. 若要根據變更集完成建立新堆疊,請選擇 Execute (執行),指定復原組態,然後選擇 Execute change set (執行變更集)。