{ "AWSTemplateFormatVersion" : "version date", "Description" : "JSON string", "Metadata" : { template metadata }, "Parameters" : { set of parameters }, "Mappings" : { set of mappings }, "Conditions" : { set of conditions }, "Transform" : { set of transforms }, "Resources" : { set of resources }, "Outputs" : { set of outputs } }
模板部分
模板包含幾個主要部分。Resources
部分是唯一的必需部分。模板中的某些部分可以任何順序顯示。但是,在您構建模板時,使用以下列表中顯示的邏輯順序可能會很有用,因為一個部分中的值可能會引用上一個部分中的值。
- Format Version(可選)
-
模板符合的 AWS CloudFormation 模板版本。模板格式版本與 API 或 WSDL 版本不同。模板格式版本可獨立於 API 和 WSDL 版本,進行獨立更改。
- Description (可選)
-
一個描述模板的文本字符串。此部分必須始終緊隨模板格式版本部分之后。
- 元數據(可選)
-
提供有關模板的其他信息的對象。
- Parameters(可選)
-
要在運行時 (創建或更新堆棧時) 傳遞到模板的值。您可引用模板的
Resources
和Outputs
部分中的參數。 - Mappings(可選)
-
可用來指定條件參數值的密鑰和關鍵值的映射,與查找表類似。可以通過使用
Resources
和Outputs
部分中的 Fn::FindInMap 內部函數將鍵與相應的值匹配。 - 條件(可選)
-
用於控制是否創建某些資源或者是否在堆棧創建或更新過程中為某些資源屬性分配值的條件。例如,您可以根據堆棧是用於生產環境還是用於測試環境來按照條件創建資源。
- 轉換 (可選)
-
對於無服務器應用程序(也稱為“基於 Lambda 的應用程序”),指定要使用的 AWS Serverless Application Model (AWS SAM) 的版本。當您指定轉換時,可以使用 AWS SAM 語法聲明您的模板中的資源。此模型定義您可使用的語法及其處理方式。
您也可以使用
AWS::Include
轉換來處理與主 AWS CloudFormation 模板分開存儲的模板代碼段。您可以將代碼段文件存儲在 Amazon S3 存儲桶中,然后在多個模板中重用這些函數。 - Resources(必需)
-
指定堆棧資源及其屬性,如 Amazon Elastic Compute Cloud 實例或 Amazon Simple Storage Service 存儲桶。您可引用模板的
Resources
和Outputs
部分中的資源。 - Outputs(可選)
-
描述在您查看堆棧的屬性時返回的值。例如,您可以聲明 S3 存儲桶名稱的輸出,然后調用
aws cloudformation describe-stacks
AWS CLI 命令來查看該名稱。