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