模板是一个 JSON 格式的文本文件,使用 UTF-8 编码。模板用于创建资源栈,是描述基础设施和架构的蓝图。模板编辑者在模板中定义阿里云资源和配置细节,并说明资源间的依赖关系。

ROS 模板结构

{
  "ROSTemplateFormatVersion" : "2015-09-01",

  "Description" : "模板描述信息,可用于说明模板的适用场景、架构说明等。",
  "Metadata" : {
    // 关于模板的元数据信息,比如存放用于可视化的布局信息。
  },
  "Parameters" : {
    // 定义创建资源栈时,用户可以定制化的参数。
  },

  "Mappings" : {
    // 定义映射信息表,映射信息是一种多层的 Map 结构。
  },

  "Conditions": {
    // 使用内部条件函数定义条件。这些条件确定何时创建关联的资源。
  },

  "Resources" : {
    // 所需资源的详细定义,包括资源间的依赖关系、配置细节等。
  },

  "Outputs" : {
    // 用于输出一些资源属性等有用信息。可以通过 API 或控制台获取输出的内容。
  }
}
			

ROSTemplateFormatVersion(必需)

ROS 支持的模板版本号,当前版本号:2015-09-01。

Description(可选)

模板的描述信息。可用于说明模板的适用场景、架构说明等。通常情况下,对模板进行详细描述,有利于模板的用户理解模板的内容。

Metadata(可选)

模板编写者可以使用 Metadata 来存放与模板相关的元数据信息,内容可以是自由的 JSON 格式。

Parameters(可选)

定义创建资源栈时,模板用户可以定制化的参数。通常,模板的编辑者会把 ECS 的规格设计成一个参数。参数支持默认值。使用参数可以增强模板的灵活性,提高复用性。使用模板创建资源栈时,可以根据实际的评估结果来选择合适的规格。

更多详细信息,请参见参数(Parameters)

Mappings(可选)

Mappings 定义了一个多层的映射表,可以通过 Fn::FindInMap 函数来选择 Key 对应的值,或根据不同的输入参数值作为 Key 来查找映射表。例如,您可以根据 Region 不同,自动查找 Region-镜像映射表,从而找到适用的镜像。

更多详细信息,请参见映射(Mappings)

Conditions(可选)

Conditions 使用 Fn::And、Fn::Or、Fn::Not、Fn::Equals 定义条件。多个条件之间用逗号(,)隔开。在创建或更新资源栈时,系统先计算模板中的所有条件,然后再创建资源。创建与 true 条件关联的所有资源,忽略与 false 条件关联的所有资源。

更多详细信息,请参见条件(Conditions)

Resources(可选)

用于详细定义使用该模板创建的资源栈所包含的资源,包括资源间的依赖关系、配置细节等。

更多详细信息,请参见资源(Resources)

Outputs(可选)

用于输出一些资源属性等有用信息。可以通过 API 或控制台获取输出的内容。

更多详细信息,请参见输出(Outputs)