You need to enable JavaScript to run this app.
文档中心
云服务器

云服务器

复制全文
下载 pdf
附录
自定义模板语法说明
复制全文
下载 pdf
自定义模板语法说明
模板语法用于定义模板结构,包括参数、执行顺序、输入和输出等字段约束及校验规则等,火山引擎支持通过JSON格式定义自定义模板,支持的结构如下:​
​
{​
"FormatVersion": "0.2",​
"Description": "",​
"Parameters": {},​
"Tasks": [],​
"Outputs": {}​
}​
​
​
参数​
说明​
FormatVersion​
可选,引擎版本,默认为0.2。​
Description​
可选,描述,可用于说明模版的用途、目的等。​
Parameters(参数)​
可选,Parameters用于定义模板执行过程中所使用的参数列表,了解更多。​
Tasks(任务)​
必选,Tasks是模板最重要的组成部分,每一个Task定义了一个具体的执行动作,动作由运维编排定义和实现,了解更多。​
说明​
  • 若为多个任务,默认按照从上到下的顺序依次串行执行。​
  • 若某个任务是一个循环(Loop)任务,则在该任务内部可能出现并发的子执行。​
Outputs(输出)​
可选,Outputs用于定义模板执行后输出的关键数据,可引用任务(指定任务名称)的输出,了解更多。​
​
Parameters(参数)说明​
Parameters用于定义模板执行过程中所使用的参数列表,包括参数名称、参数类型、默认值。​
说明​
若未声明默认值,则默认是参数类型的零值(即该类型的默认初始值)。​
​
{​
"Parameters": {​
"InstanceId": {​
"Type": "String" //必填,类型,支持String、Number、List、Boolean、Map​
"DisplayName":"" //可选,显示名称,若增加该字段,创建编排计划时展示DisplayName的值,若未增加,则展示该字段的key。​
},​
"ForceStop": {​
"Type": "Boolean", //可选,类型,支持String、Number、List、Boolean、Map​
"Default": true //可选,默认值,默认为true,支持true和false​
}​
}​
}​
​
​
Tasks(任务)说明​
Tasks是模板最重要的组成部分,每一个Task定义了一个具体的执行动作,动作由运维编排定义和实现,包括原子性动作和云产品动作。了解更多。​
说明​
  • 若有多个任务,默认按照从上到下的顺序依次串行执行,如果某个任务是一个循环(Loop)任务,则在该任务内部可能出现并发的子执行。​
  • 自定义模板Task不能超过30个。​
Tasks结构​
​
{​
"Tasks": [​
{​
"Name": "TaskNa****",​
"Description": "description",​
"Action": "TaskType",​
"ActionInfo": "TaskType",​
"Timeout": 10,​
"Parameters": { ​
"Property1": "Value1",​
"Property2": "Value2"​
},​
"Outputs": { ​
"outputParameterName1": {​
"Type": "String",​
"ValueSelector": "{{ .jqselector }}"​
}​
},​
"Loop": { ​
​
},​
"OnError": "VOS::END/VOS::NEXT/other-task-name",​
"OnSuccess": "VOS::NEXT/other-task-name/VOS::END"​
}​
]​
}​
​
​
参数​
是否必填​
说明​
Name​
是​
任务名称,取值:​
  • 仅支持字母、数字、中划线(-)和下划线(_)。​
  • 长度限制为1 ~ 200个字符。​
Description​
否​
描述信息,描述当前任务的用途。​
Action​
是​
动作的名称。​
Timeout​
否​
可选,超时时间,最长600s。​
Parameters​
否​
当前Task执行时需要的参数集合,可通过JQ表达获取值。需要的参数由Action确定,具体参考动作章节。​
Outputs​
否​
当前任务的输出定义,可以用作后续任务的输入或模板的输出。了解更多。​
  • Type:字段类型。​
  • Value:字段值。​
Loop​
否​
任务循环,详情请参见循环任务(Loop)。​
OnError/OnSuccess​
否​
任务执行结果为失败或成功时,指定后续的操作。取值:​
  • OnError:用于定义任务执行失败时的行为,当为:​
  • VOS::END(默认):终止整个执行。​
  • VOS::Next:继续执行下一个任务​
  • OnSuccess:用于定义任务执行成功时的行为,当为:​
  • VOS::END:终止整个执行。​
  • VOS::Next(默认):执行下一个任务。​
​
循环任务(Loop)​
火山引擎为Task提供特殊属性“循环任务”,基于LoopItem给定的Item列表,可自动生成批量任务执行,并支持配置执行批次、并发度等参数,实现规模化任务调度。​
说明​
  • API类action和云产品action的任务可支持循环,功能性的action(如Trigger、Sleep等)的任务不支持循环。​
  • 任务循环支持并发,不过单步模式执行下循环的任务则自动调整为依次执行无并发。​
  • 任务循环,相当于一个Task根据不同入参的多次执行。​
  • VOS::LoopItem:是一个内置变量,用于表示参数取值来源于“Loop”字段定义的循环项,例如 {{ .InstanceIds }} 中的每个元素会通过此变量依次获取。​
使用限制​
Loop Items的个数限制当前最大为1000个。​
语法结构​
​
{​
"Parameters": {​
"InstanceIds": {​
"Type": "List"​
}​
}, ​
"Tasks": [​
{​
"Name": "StartInstances", ​
"Action": "VOS::ECS::StartOneInstance", ​
"Parameters": {​
"InstanceId": "{{ VOS::LoopItem }}"​
}, ​
"Outputs": {​
"InstanceStatus": {​
"Type": "String", ​
"Value": "{{ .InstanceStatus }}"​
}​
}, ​
"Loop": {​
"LoopItem": "{{ .InstanceIds }}", ​
"Outputs": {​
"LoopInstanceStatus": {​
"SelectedOutputFiled": "InstanceStatus"​
}​
}​
}​
}​
], ​
"Outputs": {​
"InstanceStatus": {​
"Type": "List", ​
"Value": "{{ .\"StartInstances.LoopInstanceStatus\" }}"​
}​
}​
}​
​
参数说明​
  • LoopItem:循环对象。​
  • Outputs:单个任务的输出。​
  • 并发控制​
  • Mode:为分组执行,包括Batch和Concurrency,可以控制最大错误数。​
  • Batch:对总数进行分批次,相关参数说明如下:​
  • BatchSize:每一批次的数量,默认1。​
  • BatchPauseOption:对批次间的控制,默认自动执行下一批次。​
  • MaxErrorsValue:最大错误数。​
  • Concurrency:并发执行。​
  • ConcurrencySize:并发度。​
  • MaxErrorsValue:最大错误数。​
Outputs说明​
Outputs(输出)用于获取模板执行后的关键数据,确保使用者能准确获取所需的结果(如实例操作后的状态、任务 ID、执行时间等)。​
示例如下:​
​
{​
"Parameters": {​
"InstanceId": {​
"Type": "String"​
},​
"ForceStop": {​
"Type": "Boolean"​
}​
},​
"Tasks": [​
{​
"Name": "CheckInst****",​
"Action":"VOS::CheckFor",​
"Parameters": {​
"APIInfo":{​
"Service": "ecs",​
"APIName": "DescribeInst****",​
"Version": "2020-04-01",​
"Parameters": {​
"InstanceIds": "{{ [.InstanceId] }}"​
},​
"DesiredValues": ["RUNNING"],​
"NotDesiredValues": ["ERROR", "STOPPED"],​
"ValueSelector": "{{ [.Instances[].Status] }}"​
}​
},​
"Outputs": {​
"InstanceStatus": {​
"Type": "List",​
"Value": "{{ [.Instances[].Status] }}"​
}​
}​
}​
],​
"Outputs": {​
"InstanceStatus": {​
"Type": "String",​
"Value": "{{ .\"CheckInstances.InstanceStatus\".[0] }}"​
}​
}​
}​
​
​
最近更新时间:2025.10.14 19:51:05
这个页面对您有帮助吗?
有用
有用
无用
无用