模板结构
更新时间:2024-08-16
模板结构
模板是一段JSON或YAML格式的文本,使用UTF-8编码。模板定义了参数、任务、顺序等信息,您可以通过创建模板来定义需要的运维操作。
语法
{
"name": "我的模板", // 模板名称,同一用户下必须唯一,必填
"description": "模板描述", // 模板描述,选填
// 模板的标签列表,选填
"tags": [
{
"key": "tagKey", // 标签健,必填
"value": "tagValue" // 标签值,必填
}
],
// 模板任务集合,必填
"operators": [
{
// 任务名称,需要在当前模板内唯一,必填
"name": "我的任务",
// 任务描述,选填
"description": "任务描述",
// 任务Tags列表,选填
"tags": [
{
"key": "opTagKey", // 标签健,必填
"value": "opTagValue" // 标签值,必填
}
],
// 你可以通过'operator'或'template'指定当前任务的执行方式,这两个字段必须有且只有一个被设置
// operator - 直接设置任务类型,参考文档:'任务类型'
// template - 嵌套模板,允许在模板的任务中运行另一个模板
"operator": "BCE::Agent::ExcuteScript",
"template": {
"ref": "我的模板_2", // 引用另一个模板
},
// 允许的重试次数,选填,0表示不进行重试
"retries": 0,
// 重试间隔,单位:毫秒,选填,默认值:5min
"retryInterval": 60000,
// 超时时长,单位:毫秒,选填,默认值:1小时
// 若任务执行时长超过该限制,会认为本次任务执行失败,进而触发后续的重试
"timeout": 3600000,
// 输入参数列表,选填
// 不同的任务类型有不同的输入参数,参考文档'任务类型'
// 你可以在设置输入参数时使用内置函数,参考文档'内置函数'
"properties": {
"argName": "argValue"
},
// 可以使用一组参数,循环执行当前任务,选填
// 参考文档'任务循环'
"loops": [
{
"properties": {
"argName": "argValue"
}
}
],
// 允许的并行比例,选填,默认值:0,表示串行执行。取值范围[0, 1]
// 该字段仅当loops字段存在时生效
// 计算得到的loops并发度 = max(1, len(loops) * parallelismRatio)
"parallelismRatio": 0.1,
// 允许的并行个数,选填,默认值:0,表示串行执行
// 只允许对parallelismRatio和parallelismCount之一进行设置
"parallelismCount": 0,
// 允许失败的loops比例,选填,默认值:0,表示不允许失败。取值范围[0, 1]
// 该字段仅当loops字段存在时生效,表示在循环中允许失败的比例。
"allowedFailureRatio": 0.1,
// 允许失败的loops个数,选填,默认值:0,表示不允许失败
"allowedFailureCount": 0,
// 是否需要手动触发,选填,默认值:false
// 若设置为true,OOS不会自动调度该任务,需要用户在控制台或通过API主动调度执行该任务
"manually": false,
// 初始调度延时,OOS将等待指定延时后才调度当前任务,单位:毫秒,选填
"scheduleDelayMilli": 30000,
// 若当前任务执行失败,则暂停整个执行,选填,默认值:false
"pauseOnFailure": false,
// 执行检查条件,其值是一个返回bool值的函数,选填
// 若返回false,当前operator将被跳过,下游节点将仍然被执行
// 参考文档'内置函数'
"condition": {"Fn::Equals": [{"Ref", "env"}, "production"]},
// 暂停点,选填
// 仅在设置了loops参数时生效
// 例如,[1,3,6]表示在执行第1,3,6个子执行后,暂停loops执行
// 暂停点优先于并发度:比如5并发,暂停点为1,那么会只执行一个子执行,然后暂停
"breakpoints": [1, 3, 6],
// 执行当前任务的触发条件,选填
// 可选值:
// ALL_SUCCESS - 全部上游节点执行成功,默认值
// ONE_SUCCESS - 任一上游节点执行成功
// ALL_FAILED - 全部上游节点执行失败
// ONE_FAILED - 任一上游节点执行失败
// ALWAYS - 无论上游节点的状态,当前节点都会被执行
"triggerRule": "ALL_SUCCESS",
// Loops执行时,使用的窗口类型,选填
// 可选值:
// SLICING - 滑动窗口,始终保持有'parallelismCount'个子执行在执行,默认值
// TUMBLING - 滚动窗口,只有当上一个窗口中的子执行全部执行完成后,才会开始下一个窗口
"loopWindowType": "SLICING",
},
],
// 是否线性执行,选填,默认值:false
// 若设置为true,则认为operators线性连接,忽略links字段
"linear": false,
// 模板边集合,若linear=false,则该字段必填
// src和dst字段,均填写任务的名称
"links": [
{ "src": "我的任务", "dst": "我的任务_2" }
],
// 模板的全局参数列表,选填
// 你可以在模板任务的输入参数中通过内置函数引用全局参数,参考文档'内置函数'
"properties": [
{
// 参数名,必填
"name": "method",
// 是否必填,选填,默认值:false
"required": true,
// 参数类型,必填
// 可选值:
// string - 字符串
// number - 数值型
// boolean - 布尔型
// list - 列表
// object - 复杂对象
// bccInstance - bcc实例
"type": "string",
// 描述信息,选填
"description": "参数描述",
// 可选项列表,选填
// 设置该参数后,用户可在console中使用下拉列表选择参数值
"options": ["GET", "POST", "DELETE"],
// 默认值,选填
"defaultValue": "GET",
},
],
// 当前模板最多同时运行多少个执行,选填,默认值:0,表示无限制
// 超出限制的执行将进行排队,等待被OOS调度执行
"parallelism": 20,
}