全部产品
云市场

任务(Task)

更新时间:2019-09-27 10:16:59

任务(Task)是模板中最重要的组成部分,它定义了每一个具体的运维操作,每一个任务的类型叫做动作。OOS提供了非常丰富的动作供您使用,这些动作包括了一些常见的云产品动作,如ECS,RDS 等。如您需要其他云产品常见动作但是OOS暂未提供,您可以联系我们并提供使用场景,另外还可以使用原子动作自行编写,以便您能够立即进行运维编排和执行。

通用属性

任务在模板中的语法如下:

  • YAML格式
  1. Tasks:
  2. - Name: TaskName1 # 必填,任务名称,有效字符为[a-zA-Z0-9_-],即英文字母数字下划线中划线,长度限制200个字符。建议使用驼峰式命名,如StartInstance。
  3. Action: TaskType # 必填,任务类型(也叫动作),请参考动作相关的文档。
  4. Description: description # 可选,描述,描述当前任务的用途。
  5. Properties: # 根据所使用的动作不同,具体的属性列表不同,请参考动作相关的文档。
  6. Property1: Value1 # 动作所依赖的属性和值。
  7. Property2: Value2
  8. Outputs: # 当前任务的输出参数,可以用作续任务的输入或模板的输出。
  9. outputParameterName1:
  10. Type: # 可选,表示对输出参数类型的声明,支持的基本类型有String, Number, Boolean, List,Object,默认String。注意:outputParameterName1的输出值会按照该处的声明类型Type对ValueSelector筛选结果进行包装来生成。当Type为List时,ValueSelector的筛选结果会被放到 [] 中输出,比如筛选结果为"i-12345zxcv",那么最终输出的值则会是["i-12345zxcv"];当Type为非List类型时,ValueSelector的筛选结果会直接作为输出值。比如Type为String,筛选结果为"i-12345zxcv",那么最终输出值就是"i-12345zxcv"。
  11. ValueSelector: "jq selector" # 如Task是一个OpenAPI调用时,把OpenAPI的调用结果当做一个JSON输入,应用jq从该JSON中截取所需要的值,请参考云产品动作和公共模板等具体例子。
  12. # 流程控制参数
  13. OnError: "ACS::END/ACS::NEXT/other-task-name" # 可选,定义了当前任务执行出现错误时的执行流程,默认:END,即终止整个执行。
  14. OnSuccess: "ACS::NEXT/other-task-name/ACS::END" # 可选,定义了当前任务执行成功后的执行流程,默认:NEXT,即下一个任务。
  15. # 风险提示设置
  16. Risk: High/Normal # 可选,风险提示设置,参考风险提醒相关文档。
  17. # 任务高级控制
  18. Delay: duration # 可选,需填写正整数,代表重试间隔的时间。如'10',默认时间单位为秒。
  19. Retries: times # 可选,需填写正整数,代表重试的次数。
  20. DelayType: delayType # 可选,代表重试间隔的种类,三种类型,Constant, Linear, Exponential。如选择Constant,则Delay最终为duration;如选择Linear则Delay最终为duration + backOff * times;如选择Exponential则Delay最终为duration + backOff ^ times。默认类型为Constant。
  21. BackOff: backOff # 可选,需填写正整数,代表间隔时间补偿,仅在DelayType为Linear或Exponential时有效。
  • JSON格式(请参考YAML注释说明)
  1. {
  2. "Tasks": [
  3. {
  4. "Name": "TaskName1",
  5. "Action": "TaskType",
  6. "Description": "description",
  7. "Properties": {
  8. "Property1": "Value1",
  9. "Property2": "Value2"
  10. },
  11. "Outputs": {
  12. "outputParameterName1": {
  13. "Type": null,
  14. "ValueSelector": "jq selector"
  15. }
  16. },
  17. "OnError": "ACS::END/ACS::NEXT/other-task-name",
  18. "OnSuccess": "ACS::NEXT/other-task-name/ACS::END",
  19. "Risk": "High/Normal",
  20. "Delay": "duration",
  21. "Retries": "times",
  22. "DelayType": "delayType",
  23. "BackOff": "backOff"
  24. }
  25. ]
  26. }