参数(properties)
更新时间:2024-08-16
参数
在创建和执行模板时,使用参数(Properties)可提高模板灵活性和可复用性,模版多个任务都可以引用同一个参数。
模板全局参数
你可以在创建模板时设置全局参数,在执行模板时动态指定这些模板的值,从而实现模板的复用。
JSON
1{
2 "name": "我的模板", // 模板名称
3
4 // 模板全局参数,选填
5 "properties": [
6 {
7 // 参数名,必填
8 "name": "argName",
9
10 // 是否必填,选填,默认值:false
11 "required": true,
12
13 // 参数类型,必填
14 // 可选值:
15 // string - 字符串
16 // number - 数值型
17 // boolean - 布尔型
18 // list - 列表
19 // object - 复杂对象
20 // bccInstance - bcc实例
21 "type": "string",
22
23 // 描述信息,选填
24 "description": "参数描述",
25
26 // 可选项列表,选填
27 // 设置该参数后,用户可在console中使用下拉列表选择参数值
28 "options": ["value_1", "value_2", "value_3"],
29
30 // 默认值,选填
31 "defaultValue": "value_1",
32 },
33 ]
34}
目前,几乎支持所有类型的参数,包括:
类型 | 描述 | 示例 |
---|---|---|
string | 字符串 | "text" |
number | 数值型,包括整形和浮点型 | 1 , 0.1 |
boolean | 布尔型 | true , false |
list | 数组,填写json表达式 | [1, 2, 3] , ["v1", "v2"] |
object | 复杂对象(字典),填写json表达式 | {"key": "value"} |
bccInstance | bcc实例,按指定的字段填写 | [{"shortId": "i-2cb797e8"}] |
任务参数
和全局参数类似,每个任务也有其对应的参数列表。
在创建模板时,你需要为某一个任务的参数设置输入值。
JSON
1{
2 "operators": [
3 {
4 "name": "重启虚机", // 任务名称
5 "operator": "BCE::Bcc::RestartInstance", // 重启虚机任务
6
7 // 设置任务的参数
8 "properties": {
9
10 // 'instance'是一个bccInstance类型的参数
11 "instance": {
12 "shortId": "i-Qnu499eJ", // 虚机id
13 }
14 }
15 }
16 ]
17}
引用参数
在设置任务的参数值时,你可以
- 引用全局参数
- 引用上游任务的输出参数
OOS支持两种引用方式
使用模板参数进行引用
OOS支持在字符串类型的参数中使用模板引用其他参数
JSON
1{
2 "operators": [
3 {
4 "name": "执行脚本", // 任务名称
5 "operator": "BCE::Agent::ExecuteScript", // 执行脚本任务
6
7 // 设置任务的参数
8 "properties": {
9 "content": "echo hello {{.paramFirstName}} {{.paramFamilyName}}"
10 }
11 }
12 ]
13}
oos内部使用的是go模板引擎text/template,支持完整的go模板语法。
注意,使用模板渲染的输出类型是字符串
如果需要引用一个非字符串类型的参数,就需要使用函数进行引用,如下节所示。
使用函数进行引用
你可以使用内置函数来引用参数,这是一种更加灵活和强大的方式,因为你不止可以简单的引用,你还可以对应用的参数进行任意的函数操作。
JSON
1{
2 "operators": [
3 {
4 "name": "执行脚本", // 任务名称
5 "operator": "BCE::Agent::ExecuteScript", // 执行脚本任务
6
7 // 设置任务的参数
8 "properties": {
9 "content": {"Fn::Join": [" ", ["echo", {"Ref": "paramName"}]]}, // 等效于 echo {{.paramName}}
10 "instance": {"Ref": "paramInstance"}
11 }
12 }
13 ]
14}