- 文档首页
云服务器
云服务器ECS
用户指南
运维
运维编排
管理自定义模板
附录
自定义模板语法说明
自定义模板语法说明
模板语法用于定义模板结构,包括参数、执行顺序、输入和输出等字段约束及校验规则等,火山引擎支持通过JSON格式定义自定义模板,支持的结构如下:
Parameters用于定义模板执行过程中所使用的参数列表,包括参数名称、参数类型、默认值。
说明
若未声明默认值,则默认是参数类型的零值(即该类型的默认初始值)。
Tasks是模板最重要的组成部分,每一个Task定义了一个具体的执行动作,动作由运维编排定义和实现,包括原子性动作和云产品动作。了解更多。 说明
- 若有多个任务,默认按照从上到下的顺序依次串行执行,如果某个任务是一个循环(Loop)任务,则在该任务内部可能出现并发的子执行。
"Description": "description",
"ActionInfo": "TaskType",
"outputParameterName1": {
"ValueSelector": "{{ .jqselector }}"
"OnError": "VOS::END/VOS::NEXT/other-task-name",
"OnSuccess": "VOS::NEXT/other-task-name/VOS::END"
火山引擎为Task提供特殊属性“循环任务”,基于LoopItem给定的Item列表,可自动生成批量任务执行,并支持配置执行批次、并发度等参数,实现规模化任务调度。
说明
- API类action和云产品action的任务可支持循环,功能性的action(如Trigger、Sleep等)的任务不支持循环。
- 任务循环支持并发,不过单步模式执行下循环的任务则自动调整为依次执行无并发。
- 任务循环,相当于一个Task根据不同入参的多次执行。
- VOS::LoopItem:是一个内置变量,用于表示参数取值来源于“Loop”字段定义的循环项,例如 {{ .InstanceIds }} 中的每个元素会通过此变量依次获取。
Loop Items的个数限制当前最大为1000个。
"Name": "StartInstances",
"Action": "VOS::ECS::StartOneInstance",
"InstanceId": "{{ VOS::LoopItem }}"
"Value": "{{ .InstanceStatus }}"
"LoopItem": "{{ .InstanceIds }}",
"SelectedOutputFiled": "InstanceStatus"
"Value": "{{ .\"StartInstances.LoopInstanceStatus\" }}"
- Mode:为分组执行,包括Batch和Concurrency,可以控制最大错误数。
- Batch:对总数进行分批次,相关参数说明如下:
- BatchPauseOption:对批次间的控制,默认自动执行下一批次。
Outputs(输出)用于获取模板执行后的关键数据,确保使用者能准确获取所需的结果(如实例操作后的状态、任务 ID、执行时间等)。
示例如下:
"Name": "CheckInst****",
"Action":"VOS::CheckFor",
"APIName": "DescribeInst****",
"Version": "2020-04-01",
"InstanceIds": "{{ [.InstanceId] }}"
"DesiredValues": ["RUNNING"],
"NotDesiredValues": ["ERROR", "STOPPED"],
"ValueSelector": "{{ [.Instances[].Status] }}"
"Value": "{{ [.Instances[].Status] }}"
"Value": "{{ .\"CheckInstances.InstanceStatus\".[0] }}"
最近更新时间:2025.10.14 19:51:05