更新时间:2024-04-30 GMT+08:00

属性总览

您可以使用ConditionStep来构建条件节点,ConditionStep结构如下:

表1 ConditionStep

属性

描述

是否必填

数据类型

name

条件节点的名称,命名规范(只能包含英文字母、数字、下划线(_)、中划线(-),并且只能以英文字母开头,长度限制为64字符),一个Workflow里的两个step名称不能重复

str

conditions

条件列表,列表中的多个Condition执行'逻辑与'操作

Condition或者Condition的列表

if_then_steps

条件表达式计算结果为True时,执行的step列表

str或者str列表

else_then_steps

条件表达式计算结果为False时,执行的step列表

str或者str列表

title

title信息,主要用于前端节点的名称展示

str

description

条件节点的描述信息

str

depend_steps

依赖的节点列表

Step或者Step的列表

表2 Condition

属性

描述

是否必填

数据类型

condition_type

条件类型,支持"==", ">", ">=", "in", "<", "<=", "!=", "or"操作符

ConditionTypeEnum

left

条件表达式的左值

int,float,str,bool,Placeholder,Sequence,Condition,MetricInfo

right

条件表达式的右值

int,float,str,bool,Placeholder,Sequence,Condition,MetricInfo

表3 MetricInfo

属性

描述

是否必填

数据类型

input_data

metric文件的存储对象,当前仅支持JobStep节点的输出

JobStep的输出

json_key

需要获取的metric信息对应的key值

str

结构内容详解:

  • Condition对象(由三部分组成:条件类型,左值以及右值)
    • 条件类型使用ConditionTypeEnum来获取,支持"==", ">", ">=", "in", "<", "<=", "!=", "or"操作符,具体映射关系如下表所示

      枚举类型

      操作符

      ConditionTypeEnum.EQ

      ==

      ConditionTypeEnum.GT

      >

      ConditionTypeEnum.GTE

      >=

      ConditionTypeEnum.IN

      in

      ConditionTypeEnum.LT

      <

      ConditionTypeEnum.LTE

      <=

      ConditionTypeEnum.NOT

      !=

      ConditionTypeEnum.OR

      or

    • 左右值支持的类型有:int、float、str、bool、Placeholder、Sequence、Condition、MetricInfo。
    • 一个ConditionStep支持多个Condition对象,使用list表示,多个Condition之间进行&&操作。
  • if_then_steps 和 else_then_steps
    • if_then_steps表示的是当Condition比较的结果为true时允许执行的节点列表,存储的是节点名称;此时else_then_steps中的step跳过不执行。
    • else_then_step表示的是当Condition比较的结果为false时允许执行的节点列表,存储的是节点名称;此时if_then_steps中的step跳过不执行。