使用 CloudFormation 範本 - AWS CloudFormation

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

使用 CloudFormation 範本

AWS CloudFormation 範本會定義您要建立、更新或刪除 AWS 的資源,做為堆疊的一部分。它由多個區段組成,但唯一需要的區段是 Resources區段,其必須至少宣告一個資源。

您可以使用下列方法建立範本:

  • AWS Infrastructure Composer – 設計範本的視覺化界面。

  • AWS CloudFormation 設計工具 – 範本設計的較舊視覺化界面。

  • 文字編輯器 – 直接在 YAML JSON或 語法中撰寫範本。

  • IaC 產生器 – 從您帳戶中佈建但目前未受 管理的資源產生範本 CloudFormation。IaC 產生器可搭配API您區域中的雲端控制支援的各種資源類型使用。

本節提供如何使用 CloudFormation 範本不同區段以及如何開始建立堆疊範本的全方位指南。它涵蓋下列主題:

範本的存放位置

Amazon S3 儲存貯體

您可以在 Amazon S3 儲存貯體中存放 CloudFormation 範本。建立或更新堆疊時,您可以指定範本URL的 S3,而不是直接上傳。

如果您直接透過 AWS Management Console 或 上傳範本 AWS CLI,系統會自動為您建立 S3 儲存貯體。如需詳細資訊,請參閱從 CloudFormation 主控台建立堆疊

Git 儲存庫

透過 Git 同步,您可以將範本存放在 Git 儲存庫中。建立或更新堆疊時,您可以指定包含範本的 Git 儲存庫位置和分支,而不是直接上傳或參考 S3 URL。 CloudFormation 會自動監控指定的儲存庫和分支是否有範本變更。如需詳細資訊,請參閱使用 Git 同步從儲存庫原始碼建立堆疊

驗證範本

語法驗證

您可以使用 驗證範本的 YAML JSON或 語法 validate-template CLI 命令,或在主控台上指定您的範本。主控台會自動執行驗證。如需詳細資訊,請參閱從 CloudFormation 主控台建立堆疊

不過,這些方法只會驗證範本的語法,不會驗證您為資源指定的屬性值。

其他驗證工具

如需更複雜的驗證和最佳實務檢查,您可以使用其他工具,例如:

範本入門

若要開始使用建立 CloudFormation 範本,請依照下列步驟進行:

  1. 選擇資源 – 識別您要包含在堆疊中的 AWS 資源,例如EC2執行個體、VPCs、安全群組等。

  2. 寫入範本 – 以 JSON或 YAML 格式寫入範本,定義資源及其屬性。

  3. 儲存範本 – 在本機使用副檔名儲存範本.json,例如:.yaml、 或 .txt

  4. 驗證範本 – 使用 驗證範本章節中所述的方法驗證範本。

  5. 建立堆疊 – 使用經過驗證的範本建立堆疊。

計劃使用 CloudFormation 範本參考

當您撰寫範本時,您可以在 中找到不同資源類型的詳細語法文件AWS 資源和屬性類型參考

通常,您的堆疊範本需要內部 函數來指派在執行期和特殊屬性之前不可用的屬性值,以控制資源的行為。當您撰寫範本時,請參閱下列資源以取得指引:

  • 內部函數參考 – 一些常用的內部函數包括:

    • Ref – 擷取參數的值或資源的實體 ID。

    • Sub – 以實際值取代字串中的預留位置。

    • GetAtt – 從範本中的資源傳回屬性的值。

    • Join – 將一組值加入單一字串。

  • 資源屬性參考 – 一些常用的特殊屬性包括:

    • DependsOn – 使用此屬性指定一個資源必須在另一個資源之後建立。

    • DeletionPolicy – 使用此屬性來指定 CloudFormation 應如何處理資源的刪除。

範例範本

CloudFormation 提供開放原始碼堆疊範本,您可以用來開始使用。如需詳細資訊,請參閱 GitHub 網站上的AWS CloudFormation 範本範例

請記住,這些範本並不代表可供生產使用。您應該花時間了解它們的運作方式、根據您的需求進行調整,並確保它們符合公司的合規標準。

此儲存庫中的每個範本都會通過 CloudFormation Linter (cfn-lint) 檢查,以及根據 的基本 AWS CloudFormation Guard 規則集 Center for Internet Security (CIS) 前 20 名,但某些規則的例外狀況是,將範例專注於單一使用案例是合理的。