开发者社区> 问答> 正文

资源编排模板语法有哪些?

资源编排模板语法有哪些?

展开
收起
小天使爱美 2020-03-24 17:41:01 716 0
1 条回答
写回答
取消 提交回答
  • 模板是一个 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)。

    在创建模板时,使用参数(Parameters)可提高模板的灵活性和可复用性。创建资源栈时,可根据实际情况,替换模板中的某些参数值。

    例如,要为一个Web应用创建一个资源栈,包含1个负载均衡实例,2个ECS实例,1个RDS实例。如果该Web应用负载较高,可以在创建资源栈时,选择使用高配的ECS实例;否则可以在创建资源栈时,选择使用低配的ECS实例。这种情况下,可以按照如下示例,在模板中定义ECS实例规格参数:

    "Parameters" : { "InstanceType" : { "Type" : "String", "AllowedValues":["ecs.t1.small","ecs.s1.medium", "ecs.m1.medium", "ecs.c1.large"], "Default": "ecs.t1.small", "Label": "ECS规格类型", "Description" : "请选择创建ECS示例的配置,默认为ecs.t1.small,可选ecs.t1.small, ecs.s1.medium, ecs.m1.medium,ecs.c1.large。" } } 示例中,定义的InstanceType参数允许模板用户在使用模板创建资源栈时,对InstanceType进行重新赋值。如果模板用户不设置参数值,则使用默认值: ecs.t1.small。

    在定义资源时

    2020-03-24 17:41:13
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Terraform - 管理云资源的正确姿势 立即下载
Terraform-管理云资源的正确姿势 立即下载
基于Terraform的自动化管理云上资源实践 立即下载

相关镜像