模板结构
更新时间:2024-08-16
模板结构
模板是一段JSON或YAML格式的文本,使用UTF-8编码。模板定义了参数、任务、顺序等信息,您可以通过创建模板来定义需要的运维操作。
语法
JSON
1{
2 "name": "我的模板", // 模板名称,同一用户下必须唯一,必填
3 "description": "模板描述", // 模板描述,选填
4
5 // 模板的标签列表,选填
6 "tags": [
7 {
8 "key": "tagKey", // 标签健,必填
9 "value": "tagValue" // 标签值,必填
10 }
11 ],
12
13 // 模板任务集合,必填
14 "operators": [
15 {
16 // 任务名称,需要在当前模板内唯一,必填
17 "name": "我的任务",
18
19 // 任务描述,选填
20 "description": "任务描述",
21
22 // 任务Tags列表,选填
23 "tags": [
24 {
25 "key": "opTagKey", // 标签健,必填
26 "value": "opTagValue" // 标签值,必填
27 }
28 ],
29
30 // 你可以通过'operator'或'template'指定当前任务的执行方式,这两个字段必须有且只有一个被设置
31 // operator - 直接设置任务类型,参考文档:'任务类型'
32 // template - 嵌套模板,允许在模板的任务中运行另一个模板
33 "operator": "BCE::Agent::ExcuteScript",
34 "template": {
35 "ref": "我的模板_2", // 引用另一个模板
36 },
37
38 // 允许的重试次数,选填,0表示不进行重试
39 "retries": 0,
40
41 // 重试间隔,单位:毫秒,选填,默认值:5min
42 "retryInterval": 60000,
43
44 // 超时时长,单位:毫秒,选填,默认值:1小时
45 // 若任务执行时长超过该限制,会认为本次任务执行失败,进而触发后续的重试
46 "timeout": 3600000,
47
48 // 输入参数列表,选填
49 // 不同的任务类型有不同的输入参数,参考文档'任务类型'
50 // 你可以在设置输入参数时使用内置函数,参考文档'内置函数'
51 "properties": {
52 "argName": "argValue"
53 },
54
55 // 可以使用一组参数,循环执行当前任务,选填
56 // 参考文档'任务循环'
57 "loops": [
58 {
59 "properties": {
60 "argName": "argValue"
61 }
62 }
63 ],
64
65 // 允许的并行比例,选填,默认值:0,表示串行执行。取值范围[0, 1]
66 // 该字段仅当loops字段存在时生效
67 // 计算得到的loops并发度 = max(1, len(loops) * parallelismRatio)
68 "parallelismRatio": 0.1,
69
70 // 允许的并行个数,选填,默认值:0,表示串行执行
71 // 只允许对parallelismRatio和parallelismCount之一进行设置
72 "parallelismCount": 0,
73
74 // 允许失败的loops比例,选填,默认值:0,表示不允许失败。取值范围[0, 1]
75 // 该字段仅当loops字段存在时生效,表示在循环中允许失败的比例。
76 "allowedFailureRatio": 0.1,
77
78 // 允许失败的loops个数,选填,默认值:0,表示不允许失败
79 "allowedFailureCount": 0,
80
81 // 是否需要手动触发,选填,默认值:false
82 // 若设置为true,OOS不会自动调度该任务,需要用户在控制台或通过API主动调度执行该任务
83 "manually": false,
84
85 // 初始调度延时,OOS将等待指定延时后才调度当前任务,单位:毫秒,选填
86 "scheduleDelayMilli": 30000,
87
88 // 若当前任务执行失败,则暂停整个执行,选填,默认值:false
89 "pauseOnFailure": false,
90
91 // 执行检查条件,其值是一个返回bool值的函数,选填
92 // 若返回false,当前operator将被跳过,下游节点将仍然被执行
93 // 参考文档'内置函数'
94 "condition": {"Fn::Equals": [{"Ref", "env"}, "production"]},
95
96 // 暂停点,选填
97 // 仅在设置了loops参数时生效
98 // 例如,[1,3,6]表示在执行第1,3,6个子执行后,暂停loops执行
99 // 暂停点优先于并发度:比如5并发,暂停点为1,那么会只执行一个子执行,然后暂停
100 "breakpoints": [1, 3, 6],
101
102 // 执行当前任务的触发条件,选填
103 // 可选值:
104 // ALL_SUCCESS - 全部上游节点执行成功,默认值
105 // ONE_SUCCESS - 任一上游节点执行成功
106 // ALL_FAILED - 全部上游节点执行失败
107 // ONE_FAILED - 任一上游节点执行失败
108 // ALWAYS - 无论上游节点的状态,当前节点都会被执行
109 "triggerRule": "ALL_SUCCESS",
110
111 // Loops执行时,使用的窗口类型,选填
112 // 可选值:
113 // SLICING - 滑动窗口,始终保持有'parallelismCount'个子执行在执行,默认值
114 // TUMBLING - 滚动窗口,只有当上一个窗口中的子执行全部执行完成后,才会开始下一个窗口
115 "loopWindowType": "SLICING",
116 },
117 ],
118
119 // 是否线性执行,选填,默认值:false
120 // 若设置为true,则认为operators线性连接,忽略links字段
121 "linear": false,
122
123 // 模板边集合,若linear=false,则该字段必填
124 // src和dst字段,均填写任务的名称
125 "links": [
126 { "src": "我的任务", "dst": "我的任务_2" }
127 ],
128
129 // 模板的全局参数列表,选填
130 // 你可以在模板任务的输入参数中通过内置函数引用全局参数,参考文档'内置函数'
131 "properties": [
132 {
133 // 参数名,必填
134 "name": "method",
135
136 // 是否必填,选填,默认值:false
137 "required": true,
138
139 // 参数类型,必填
140 // 可选值:
141 // string - 字符串
142 // number - 数值型
143 // boolean - 布尔型
144 // list - 列表
145 // object - 复杂对象
146 // bccInstance - bcc实例
147 "type": "string",
148
149 // 描述信息,选填
150 "description": "参数描述",
151
152 // 可选项列表,选填
153 // 设置该参数后,用户可在console中使用下拉列表选择参数值
154 "options": ["GET", "POST", "DELETE"],
155
156 // 默认值,选填
157 "defaultValue": "GET",
158 },
159 ],
160
161 // 当前模板最多同时运行多少个执行,选填,默认值:0,表示无限制
162 // 超出限制的执行将进行排队,等待被OOS调度执行
163 "parallelism": 20,
164}