inputs
如果想要模板更加的通用,就不能将元素的参数值都写成固定的。例如,启动虚拟机的镜像ID,建议将这个参数开放出来作为模板的输入,这样模板的使用者就可以自由的控制这个参数。并且在使用该模板,即部署堆栈时,才会设置真正需要使用的镜像ID。
inputs为可选项,用于定义基于模板创建堆栈时的输入。一个模板最多支持定义60个inputs输入参数。每个input输入参数,均需定义唯一的名称,以便在使用时通过get_input内置函数获取到具体的值。如果重复定义了input,后面定义的将会覆盖之前定义的。
作用范围:node_templates与outputs,即输入参数可以在node_templates的属性及outputs的value中进行传参。
inputs格式:
<输入参数名称>: type: <类型> default: <默认值> constraints:<约束> description:<描述> label:<标签> invisible: <是否回显>
模板输入除了要考虑扩展模板的可复用性,还要考虑如何限制并验证用户输入。这就要求要了解参数的声明。
属性 |
是否必选 |
参数类型 |
取值约束 |
描述 |
---|---|---|---|---|
输入参数名称 |
是 |
字符串 |
由小写字母、数字和中划线“-”组成,长度为[1, 20]。 |
最多可定义60个,且命名必须唯一。 |
type |
是 |
|
密码类型输入时将不回显,目前密码类型仅支持对一些系统级别输入的密码进行解密处理。如果用户将一个普通参数定义成了password,将可能导致获取到的是一个加密信息而无法解密处理。 |
参数类型。 |
description |
否 |
String |
长度为[0, 255]。 |
参数描述信息。 |
default |
否 |
String |
默认值信息可在创建堆栈时由外部输入替换;如果未填写默认值,外部输入将必须填写这个参数的值。
须知:
默认值的类型和定义的参数类型必须统一。如果出现不一致,解析器可能会进行自动转换而导致出现与预期不符合的情况。 |
参数默认值。 |
label |
否 |
String |
长度为[0, 64] |
参数的标签,此处定义的标签可在创建堆栈时进行分类展示。 |
constraints |
否 |
String |
约束条件有以下几种,一个输入参数对每一种条件都只能定义一个规则。约束的多个条件中只要有一条不满足,即将认定参数非法。
|
参数约束,用于约束可以定义输入参数的合法值范围。 |
invisible |
否 |
- |
输入参数的invisible设置为true时,展示内容为******。 |
是否回显。 |
inputs配置样例:
tosca_definitions_version: huaweicloud_tosca_version_1_0 inputs: # 输入,定义基于模板创建堆栈的可变部分 instance: description: 创建云服务器数量 default: 1 image: description: 云服务器使用的镜像ID type: HuaweiCloud.ECS.Image.Id vpc: description: 云服务器VPC的ID subnet: description: 云服务器子网ID