流程配置文件说明
EIHealth中的分析流程包含分析过程中所需应用的执行信息和数据的输入、输出等参数定义。分析流程至少由一个应用组成,在多个应用构成的流程中,一个应用的输出作为另一个应用的输入,流程中的各个应用由其前后顺序形成完整的计算工作流。
在EIHealth平台,创建流程通过拖拽应用的方式完成。在命令行工具中,该过程以配置文件的形式给出,对于由多个应用搭建出来的流程,命令行工具中通过指定不同应用间的输入输出关系,完成应用的连接。您可以基于获取到的模板使用命令行工具创建流程,创建好的流程将同步显示到EIHealth平台。
获取流程模板
使用health get workflow -s命令获取创建流程的模板,复制模板并保存到本地,您可以保存成.yaml或txt文件,保存为txt文件时,其内容需为yaml格式。
在本地编写模板,模板填写好后,再使用命令行工具上传模板,创建流程。示例流程由app1和app2两个应用构成,通过指定输入、输出关系链接两个应用。
# 详情说明可参考API文档中流程管理- 创建流程 workflow: name: 'demo-workflow' # 流程名称,取值范围[1,56],以大小写字母开头,允许出现中划线(-)、下划线(_)、大小写字母和数字,且必须以大小写字母或数字结尾。更新流程时,流程名称不支持修改。 version: '1.0.0' # 流程版本,取值范围[1,24],以小写字母或数字或大写字母开头,允许出现中划线,必须以大小写字母或数字结尾。更新流程时,流程版本不支持修改。 summary: 'summary' # 流程简述 取值范围[0,128] description: 'description' # 流程描述 取值范围[0,65535],后续支持markdown文本 labels: # 流程标签,取值范围[0,5],单个标签最大长度32字符,支持中文、字母、数字、空格、下划线和中划线,且不能以空格开头或者结尾。 - labelA - labelB timeout: 1440 # 流程超时时间,取值范围[1,144000],单位分钟,默认1440 output_dir: # 流程的当前工作目录,默认为根目录,用户可显示指定,输出路径必须以斜杠(/)开头且不能以斜杠(/)结尾,不能包含两个以上相邻的斜杠(/),不能包含以下特殊字符:\ : ; * ? < " > | 。其中单个文件夹名称不能以中划线(-)开头,不能以英文句号(.)或斜杠(/)或空格开头或结尾 tasks: # 流程中子任务的描述信息,子任务数量取值范围:[1,128] - task_name: app1-1 # 子任务实际名称,取值范围[1,32],只能以大小写字母开头,由大小写字母、数字、中划线(-)、下划线(_)组成,以大小写字母或数字结尾。 app_id: 'demo-app::1.0.0::gwj-test-01' # 应用id,取值范围[1,135],正则先不能有中文,两种格式。特殊id,采用{app_name}::{app_version}::{src_project_name}格式,用于手动创建场景; # 其他场景,app_id为系统分配的唯一标识 display_name: '步骤1' # 流程的子任务展示名称,最大长度64 resources: # 子任务的资源配额 cpu: '0.1C' # cpu申请使用量,取值范围[0.1-128],单位C,支持一位小数。对于应用,不填默认1C;对于流程和作业,不填默认使用前一级的配置,填值会覆盖更新。覆盖关系:作业->流程->应用 memory: '0.1G' # 内存申请使用量,取值范围[0.1-3072],单位G,支持一位小数。对于应用,不填默认1G;对于流程和作业,不填默认使用前一级的配置,填值会覆盖更新。覆盖关系:作业->流程->应用 gpu_type: '' # gpu架构类型,取值范围 ' '|GPU|Snt9|D310。对于流程和作业,不填默认使用前一级的配置,填值会覆盖更新。覆盖关系:作业->流程->应用 gpu: '0' # gpu申请使用量,取值范围[0-16],仅支持整数,Snt9有特殊约束,申请数量需要是0,1,2,4,8。对于应用,不填默认0;对于流程和作业,不填默认使用前一级的配置,填值会覆盖更新。 # 覆盖关系:作业->流程->应用 output_dir: # 子任务的输出存放路径,用户可显示指定,输出路径必须以斜杠(/)开头且不能以斜杠(/)结尾,不能包含两个以上相邻的斜杠(/),不能包含以下特殊字符:\ : ; * ? < " > | 。其中单个文件夹名称不能以中划线(-)开头,不能以英文句号(.)或斜杠(/)或空格开头或结尾 inputs: - name: 'input-dir' # 子任务的参数名称,长度为[1,32],以小写字母开头,允许出现中划线(-)、小写字母和数字,且必须以小写字母或数字结尾。需要和已有应用的参数名称一致。 values: # 子任务的参数数值,根据参数类型进行合法性校验 - 'gwj-test-01:/test' - task_name: app1-2 app_id: 'demo-app::1.0.0' display_name: '步骤2' resources: cpu: '0.1C' memory: '0.1G' gpu_type: '' gpu: '0' output_dir: inputs: - name: 'input-dir' values: # 子任务的参数数值,格式为${task_name.output_name},表示连线关系,即app1-2需要app1-1成功执行后才会运行 - '${app1-1.output-dir}'