搜索本产品文档关键词
模板结构
所有文档
menu
没有找到结果,请重新输入

运维编排 OOS

模板结构

模板结构

模板是一段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,
}
上一篇
实例批量操作
下一篇
内置函数(BuiltinFunctions)