资源栈模板语法

资源栈模板是一个UTF8编码格式的文件。

基于模板可快速创建资源栈,用户在模板中定义所需的云资源、资源间的依赖关系、资源配置等,资源编排将解析模板,自动完成所有资源的创建和配置。

资源栈模板结构

资源栈模板结构如下:
{     "ZStackTemplateFormatVersion" : "YYYY-MM-DD",     "Description" : "模板描述信息,可用于说明模板的适用场景、架构说明等。",     "Parameters" : {       // 定义创建资源栈时,用户可以定制化的参数。     },     "Mappings" : {       // 定义映射信息表,映射信息是一种多层的Map结构。     },     "Resources" : {       // 所需资源的详细定义,包括资源间的依赖关系、配置细节等。     },     "Outputs" : {       // 用于输出一些资源属性等有用信息,可以通过API获取输出的内容。   }
  • ZStackTemplateFormatVersion(必需)
    模板版本号。
    • 格式为:YYYY-MM-DD
  • Description(可选)
    模板描述信息,可用于说明模板的适用场景、架构说明等。
    • 对模板进行详细描述,有利于用户理解模板内容。
  • Parameters(可选)
    定义创建资源栈时,用户可以定制化的参数。
    • 例如,用户将创建云主机的计算规格设计成一个参数。
    • 参数支持默认值。
    • 使用参数可以增强模板的灵活性,提高复用性。
    • 关于参数(Parameters)的详细介绍,请参考参数(Parameters)章节。
  • Mappings(可选)
    定义映射信息表,映射信息是一种多层的Map结构。
    • 可通过Fn::FindInMap函数选择key对应的值。
    • 可根据不同的输入参数值作为key查找映射表。
    • 例如,可根据区域不同,自动查找区域-镜像映射表,从而找到适用的镜像。
    • 关于映射(Mappings)的详细介绍,请参考映射(Mappings)章节。
  • Resources(可选)
    所需资源的详细定义,包括资源间的依赖关系、配置细节等。
  • Outputs(可选)
    用于输出一些资源属性等有用信息,可以通过API获取输出的内容。

参数(Parameters)

参数(Parameters):定义创建资源栈时,用户可以定制化的参数。
  • 创建资源栈模板时,使用参数可以增强模板的灵活性,提高复用性。
  • 创建资源栈时,可根据实际情况替换模板中的某些参数值。

语法

参数由参数名称和参数属性组成。
  • 参数名称必须为字母数字,同一个模板中不能与其它参数名称重复。
  • 可以用Label字段定义友好的参数名。
参数属性列表:
属性 描述 是否必需 举例
Type 参数类型,默认支持:
  • String
  • Number(整数或浮点)
  • CommaDelimitedList(相当于Java里的List<String>)
  • Boolean
"Type": "String"
Lable 参数别名,生成预览或正式表单时用 "Lable": "云主机密码"
Description 参数描述 "Description": "云主机登录密码"
NoEcho 该字段是否用*****替代,不填则不替代 "NoEcho": true
说明: 暂不支持
DefaultValue 参数默认值 "DefaultValue": "password"
资源编排还提供一些常量参数。
  • 常量参数可直接引用,无需在Parameters中定义(也不可定义)。
  • 其值在资源编排运行时确定。
常量参数列表
常量名 描述
ZStack::StackName 当前栈的名称
ZStack::StackUuid 当前栈的UUID
ZStack::AccountUuid 当前栈的AccountUuid
ZStack::AccountName 当前栈的AccountName

示例

代码段示例如下:
"Parameters" : {   "username" : {     "Label": "登录名",     "Description" : "登录名",     "DefaultValue": "root",     "Type" : "String"   },   "password" : {     "Label": "密码",     "NoEcho" : "true",     "Description" : "主机登录密码",     "Type" : "String",   } }
本例中Parameters声明两个参数:
  • username
    • 参数属于String类型,默认值为root
    • 可指定的最小长度为2,可指定的最大长度为12
    说明: username的默认值也必须符合长度限制和允许值限制。
  • password
    • 参数属于String类型,无默认值。
    • NoEcho属性设置为true,可阻止查询栈接口返回参数值。
      说明: NoEcho属性设置暂不支持。
    • 可指定的最小长度为6,可指定的最大长度为41
    • 允许大、小写字母字符和数字。

资源(Resources)

资源(Resources):所需资源的详细定义,包括资源间的依赖关系、配置细节等。
  • Resources可引用前述ParametersMappings、以及Functions的内容。
  • Resources可被其他ResourcesOutputs所引用。

语法

资源由资源逻辑UUID和资源描述组成。
  • 资源描述用大括号{ }括起。
  • 如果声明多个资源,用逗号,分隔开。
资源关键字列表:
关键字 描述 是否必需 举例
Type 资源类型,包括以下两种类型:
  • Resource类型
  • Action类型
  • "Type": "ZStack::Resource::VmInstance"
  • "Type": "ZStack::Action::AddIpRange"
  • 详情请参考资源类型(Type)
Properties 资源属性,为资源指定创建参数 详情请参考资源属性(Properties)
DependsOn 资源依赖,定义资源所依赖的资源
DeletionPolicy 删除策略
  • 资源栈被删除时是否保留某个资源
  • 若某个资源需要保留,则它所依赖的资源也要保留(系统自动为其保留)
  • 默认不保留
Description 资源描述
  • "Description" : "attach ip range to l3 network"

示例

代码段示例如下:
"Resources" : {     "UUID-1" : {         "Description" : "资源描述",         "Type" : "资源类型",         "Properties" : {             资源属性描述         }     },     "UUID-2" : {         "Description" : "资源描述"         "Type" : "资源类型",         "Properties" : {             资源属性描述         },         "DependsOn":"要依赖的资源,如UUID-1,注意上下文中必须包含此资源",         "DeletionPolicy":"删除策略"     } }
本例中Resources声明两个资源,关键字说明如下:
  • 资源UUID
    • UUID-1UUID-2均为资源逻辑UUID,且均为变量。
    • 在创建模板其它部分时,可以通过资源逻辑UUID引用该资源。
    • 资源逻辑UUID在模板中具有唯一性。
  • 资源类型(Type)
    • 表示正在声明的资源的类型,包括:Resource类型、Action类型。
    • 例如,"Type": "ZStack::Resource::VmInstance"表示云主机实例,"Type": "ZStack::Action::AddIpRange"表示添加IP范围。
    • 关于资源编排支持的所有资源列表,详情请参考资源索引章节。
  • 资源属性(Properties)
    • 为资源指定创建参数。
    • 代码段示例如下:
      "Resources" : {         "InstanceOffering" : {         "Type" : "ZStack::InstanceOffering",         "Properties" : {             "cpuNum" : "1",             "cpuSpeed" : "1",             "memorySize" : "1073741824",             "name" : "instance-offering",             "type" : "UserVm",             "sortKey": 0,             "allocatorStrategy": "LeastVmPreferredHostAllocatorStrategy"                }     } }
    • 资源属性值定义规则:
      • 属性值可以是文本字符串、字符串列表、布尔值、引用参数、或者函数返回值。
      • 如果属性值为文本字符串或布尔值,该值会被双引号" "括起来。
      • 如果属性值为任一类型的字符串列表,该值会被中括号[ ]括起来。
      • 如果值为内部函数或引用的参数,该值会被大括号{ }括起来。
      • 将文字、列表、引用参数、和函数返回值合并起来取值时,上述规则适用。
      • 以下示例说明如何声明不同的属性值类型:
        "Properties" : {     "String" : "string",     "LiteralList" : [ "value1", "value2" ],     "Boolean" : "true"     "ReferenceForOneValue" :  { "Ref" : "ResourceID" } ,     "FunctionResultWithFunctionParams" : {         "Fn::Join" : [ "%", [ "Key=", { "Ref" : "SomeParameter" } ] ] } }
    • 如果资源不需要声明任何属性,可以忽略该资源的属性部分。
  • 资源依赖(DependsOn)
    • 定义资源所依赖的资源。
    • 为某个资源添加DependsOn属性后,该资源仅在DependsOn属性中指定的资源之后创建。
    • 代码段示例如下:
      {     "ZStackTemplateFormatVersion" : "2018-06-18",     "Resources" : {         "WebServer": {             "Type": "ZStack::Resource::VmInstance",             "DependsOn": "DatabseServer"         },         "DatabseServer": {             "Type": "ZStack::Resource::VmInstance",             "Properties": {                 "name": {"Fn::Join":["-",[{"Ref":"ZStack::StackName"},"VM"]]},                           "instanceOfferingUuid": {"Ref":"InstanceOfferingUuid"},                           "imageUuid":{"Ref":"ImageUuid"},                 "l3NetworkUuids":[{"Ref":"PrivateNetworkUuid"}],                 "dataDiskOfferingUuids":[{"Ref":"DiskOfferingUuid"}], 	         "hostUuid":{"Ref":"HostUuid"}             }         }     } }

      本例表示WebServer将在DatabaseServer创建成功后才开始创建。

  • 删除策略(DeletionPolicy)
    • 在模板中,设置DeletionPolicy属性,可以声明资源栈被删除时是否保留资源。
    • DeletionPolicyRetainDelete两个选项。
      • 默认为Delete,表示删除资源栈默认会删除栈内编排创建的所有资源。
      • 若将DeletionPolicy设置为Retain,表示资源栈被删除时可保留资源。此时,该资源所依赖的资源也要保留(系统自动为其保留)。
        例如,模板对应的资源栈被删除时,保留栈内的云主机,代码段示例如下:
        "Resources" : {     "VMInstance" : {         "Type" : "ZStack::Resource::VmInstance",         "Properties": {             "name": {"Fn::Join":["-",[{"Ref":"ZStack::StackName"},"VM"]]},                       "instanceOfferingUuid": {"Ref":"InstanceOfferingUuid"},                       "imageUuid":{"Ref":"ImageUuid"},             "l3NetworkUuids":[{"Ref":"PrivateNetworkUuid"}],             "dataDiskOfferingUuids":[{"Ref":"DiskOfferingUuid"}], 	     "hostUuid":{"Ref":"HostUuid"}     },     "DeletionPolicy" : "Retain"   } }






历史版本

学习路径

ZStack Cloud 产品学习路径

版本号

常见问题(V5.2.0)

ZStack Cloud 产品学习路径

快速梳理文档,点击相应文本链接,快速跳转到相应文档的页面,学习 ZStack Cloud 产品。

我知道了

升级提醒

若您选择升级至4.0.0及之后版本,请注意以下功能调整:

1. 云路由器全面升级为VPC路由器,云路由网络全面升级为VPC网络,不再单独设云路由器页面。升级全程无感知,相关业务不受任何影响。

2. 企业管理账号体系取代用户组与用户,不再单独设用户/用户组页面,不可再使用用户/用户组账号登录云平台。升级前,请先将“用户组与用户”纳管的账号数据妥善迁移至“企业管理”纳管,再执行升级操作。注意:对于admin创建并具备admin权限的用户账号同步取消,如有需要,可使用企业管理账号体系中的平台管理员实现相同功能。

3. 调整AD/LDAP与账户的对接管理方式,统一由企业管理纳管,不再单独设AD/LDAP页面。升级前,请先将“账户”对接纳管的AD/LDAP账号数据妥善迁移至“企业管理”纳管,再执行升级操作。

如对上述升级提醒有任何疑问或需要升级帮助,请联系ZStack官方技术支持

下载ZStack企业版

您已填写过基本信息?点击这里

姓名应该不少于两个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
公司名称不应该少于4个字符
邮箱格式错误

下载链接将会通过邮件形式发送至您的邮箱,请谨慎填写。

同意 不同意

我已阅读并同意云轴科技 《法律声明》《隐私政策》用户管理规则及公约

下载ZStack企业版

还未填写过基本信息?点击这里

邮箱或手机号码格式错误
同意 不同意

我已阅读并同意云轴科技 《法律声明》《隐私政策》用户管理规则及公约

验证手机号
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
同意 不同意

我已阅读并同意云轴科技 《法律声明》《隐私政策》用户管理规则及公约

登录观看培训视频
仅对注册用户开放,请 登录 观看培训视频

业务咨询:

400-962-2212 转 1

售后咨询:

400-962-2212 转 2

其他(漏洞提交、投诉举报等)

400-962-2212 转 3
ZStack认证培训咨询
姓名应该不少于两个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
公司名称不应该少于4个字符
邮箱格式错误

同意 不同意

我已阅读并同意云轴科技 《法律声明》《隐私政策》用户管理规则及公约

业务咨询:

400-962-2212 转 1

ZStack学院:

training@zstack.io
申请ZStack多机版
姓名应该不少于两个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
公司名称不应该少于4个字符
邮箱格式错误

同意 不同意

我已阅读并同意云轴科技 《法律声明》《隐私政策》用户管理规则及公约

业务咨询:

400-962-2212 转 1

售后咨询:

400-962-2212 转 2

其他(漏洞提交、投诉举报等)

400-962-2212 转 3
立即咨询
姓名应该不少于两个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
公司名称不应该少于4个字符
邮箱格式错误

同意 不同意

我已阅读并同意云轴科技 《法律声明》《隐私政策》用户管理规则及公约

业务咨询:

400-962-2212 转 1

售后咨询:

400-962-2212 转 2

其他(漏洞提交、投诉举报等)

400-962-2212 转 3
培训认证合作伙伴申请
姓名应该不少于2个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
邮箱格式错误
城市名称不应该少于2个字符
公司名称不应该少于4个字符
职位名称不应该少于2个字符

同意 不同意

我已阅读并同意云轴科技 《法律声明》《隐私政策》用户管理规则及公约

业务咨询:

400-962-2212 转 1

商务联系:

channel@zstack.io
ZStack&工信人才联合证书申请
已获得ZStack原厂证书
未获得ZStack原厂证书
请填写您的基本信息
姓名应该不少于2个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
邮箱格式错误
城市名称不应该少于2个字符
公司/学校名称不应该少于4个字符
证书类型
ZCCT
ZCCE
ZCCA
ZCPC-ISP
申请ZStack&工信人才联合证书须支付工本费,是否可以接受
同意 不同意

我已阅读并同意云轴科技 《法律声明》《隐私政策》用户管理规则及公约

业务咨询:

400-962-2212 转 1

商务联系:

channel@zstack.io

下载链接已发送至您的邮箱。

如未收到,请查看您的垃圾邮件、订阅邮件、广告邮件。 当您收到电子邮件后,请点击 URL 链接,以完成下载。

下载链接已发送至您的邮箱。

如未收到,请查看您的垃圾邮件、订阅邮件、广告邮件。
或点击下方URL链接 (IE内核浏览器请右键另存为), 完成下载:

感谢您使用 ZStack 产品和服务。

成功提交申请。

我们将安排工作人员尽快与您取得联系。

感谢您使用 ZStack 产品和服务。

信息提交成功。

我们将安排工作人员尽快与您取得联系,请保持电话畅通。

感谢您使用 ZStack 产品和服务。

预约沟通

联系我们

业务咨询
400-962-2212 转 1
售后咨询
400-962-2212 转 2
其他业务(漏洞提交、投诉举报等)
400-962-2212 转 3

联系我们

回到顶部

产品试用申请
请选择您要试用的产品
ZStack Cloud 企业版
ZStack Cloud 混合云版
ZStack Cloud 基础版
ZStack Cloud 标准版
请填写您的基本信息
姓名应该不少于两个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
公司名称不应该少于4个字符
邮箱格式错误

商务咨询:

400-962-2212 转 1

售后咨询:

400-962-2212 转 2

商务联系:

sales@zstack.io

成功提交申请。

我们将安排工作人员尽快与您取得联系。

感谢您使用 ZStack 产品和服务。