帮助文档
  • 帮助文档
  • 注册账号
    • 个人设置
    • 团队设置
  • 开发者文档
    • 开发者工具
      • Python SDK
      • CLI
      • Open API
        • Dataset Operation
        • Data Operation
      • 示例演示
        • 模型训练
        • 数据挖掘
  • 产品使用文档
    • TensorBay
      • TensorBay 适用于算法研究的各个阶段
      • 概念说明
      • 快速入门 - 开发者版
      • 快速入门 - 团队版
      • 数据集准备
        • 新建数据集
        • 管理云服务上的数据
          • 阿里云oss用户授权RAM
        • 利用数据集筛选快速新建
        • 数据合并拆分及复制移动
        • 通过Fork使用公开数据集
      • 数据版本管理
        • 管理数据文件
        • 管理标注数据
        • 管理数据集信息
        • 管理版本信息
        • 管理数据集分支
        • 数据集活动
        • 数据集设置
      • Pharos 数据可视化
        • 获取 Pharos
        • Pharos 使用指南
      • 团队协作
        • 创建团队空间
        • 资料/成员管理
        • 数据集管理
        • 团队活动日志
      • Action 流程自动化
        • 新建工作流
        • 运行工作流
        • 管理工作流
        • YAML语法说明
        • Crontab语法说明
        • 自动化配置
      • 如何与Pipeline集成
    • Open Datasets
      • 数据集概念
      • 查找公开数据集
      • 在线预览数据及标签分布
      • 在线使用并管理数据集
      • 下载公开数据集
      • 找不到想要的数据集?
  • APPs
    • GroundTruth Tools
      • 图片标注
      • 语音分类
    • TeraGood Service
      • 需求方使用手册
      • 运营方使用手册
      • 标注方使用手册
    • Sextant
      • 新建评估
      • 自定义Metrics
      • 参与评估
      • 查看评估结果
  • 更新日志
  • 格物钛官网
由 GitBook 提供支持
在本页
  • 相关概念
  • 1 Job的运行环境
  • 2 Job的依赖关系
  • 3 Job的参数设置
  • 3-1 参数的属性
  • 3-2 参数的定义
  • 3-3 参数的设定
  • 3-4 参数的引用方式
  • 4 Job的环境设置

这有帮助吗?

  1. 产品使用文档
  2. TensorBay
  3. Action 流程自动化

YAML语法说明

上一页管理工作流下一页Crontab语法说明

最后更新于3年前

这有帮助吗?

相关概念

Job是Action工作流的基本组成单位,通过定义多个job,并且设置job的依赖关系,可以生成一个,TensorBay Workflow Engine通过执行这个DAG来实现任务的自动化。通过以下YAML文件为例:

tasks:
  hello-world:
    container:
      image: alpine:latest
      command: [echo]
      args: ["hello world!"]
  1. 【tasks】: 定义该workflow下所有的job

  2. 【tasks.hello-world】: 定义了一个task,task的名字叫做"hello-world"

  3. 【tasks.hello-world.container】: 这个job执行环境是docker container

  4. 【tasks.hello-world.container.image】: docker container使用的image是alpine:latest

  5. 【tasks.hello-world.container.command】: docker container里执行的命令是echo

  6. 【tasks.hello-world.container.args】: echo的参数是"hello world"

1 Job的运行环境

job支持以下3种运行环境,每个job有且仅有一个运行环境:

1.Container:在docker container里执行任意命令,使用指定的image,生成一个container并执行,任务内容由image定义。

tasks:
  hello-world:
    container:
      image: alpine:latest
      command: [echo]
      args: ["hello world!"]
      env:
        - name: GAS-URL
          value: https://gas.graviti.cn

2.Script:在docker container里执行指定的脚本

tasks:
  hello-script-task:
    script:
      image: python:alpine3.8
      command: [python]
      source: |
        import logging
        import os
        import sys
        import time
        logging.basicConfig(level=logging.INFO)
        logging.info('environment was:')
        for key, value in os.environ.items():
            logging.info(f'\t{key} = {value}')
        args = sys.argv
        count = 20
        if len(args) > 1:
            count = int(args[1])
        logging.info(f'count was {count}')
        idx = 0
        while idx < count:
            logging.info(f'loop at index {idx}.')
            idx += 1
            time.sleep(1)
        logging.info('complete')

3.Git:在docker container内执行一个git repo的代码

tasks:
  hello:
    git:
      image: python:3.9.5-buster
      command: ["python3"]
      args: ["main.py"]
      repo: https://github.com/username/repository.git@reversion

2 Job的依赖关系

Dependencies:job可以通过dependencies关键字来定义他们的依赖关系

tasks:
  taskA:
    container:
      image: johngraviti/count_down:v0.1
      command: [python]
      args: [/root/main.py, 40]
  taskB:
    dependencies:
      - taskA
    container:
      image: johngraviti/count_down:v0.1
      command: [python]
      args: [/root/main.py, 60]
  taskC:
    dependencies:
      - taskA
    container:
      image: johngraviti/count_down:v0.1
      command: [python]
      args: [/root/main.py, 120]
  taskD:
    dependencies:
      - taskB
      - taskC
    container:
      image: johngraviti/count_down:v0.1
      command: [python]
      args: [/root/main.py, 70]

执行效果:菱形DAG图,taskA先执行,然后taskB和taskC并发执行,taskD等到taskB和taskC都结束才开始运行

3 Job的参数设置

3-1 参数的属性

Name: 参数名称,用来在workflow代码中引用该参数

Type: 参数类型,指定该参数的数据类型,支持三种简单类型

  • string: 字符串

  • number: 数字,包括整型,浮点型

  • boolean:布尔值,true/false

Default: 参数的默认值,启动workflow时,如果没有显式指定,则会取这里预定义的默认值

3-2 参数的定义

支持通过TensorBay控制台设置及查看详细参数

3-3 参数的设定

手动式:如果workflow启动方式为手动式,那么value可以通过TensorBay控制台动态设置

自动式:如果workflow启动方式为自动式,那么value取默认值

3-4 参数的引用方式

在workflow中通过参数name使用参数

tasks:
  hello-world:
    container:
      image: alpine:latest
      command: [echo]
      args: ["{{workflow.parameters.foo}}" "{{workflow.parameters.bar}}"]
  1. 引用的参数要用{{}}包围

  2. 参数的前缀必须是workflow.parameters.

  3. 参数的名称必须跟预定义的一致

4 Job的环境设置

Environment定义了container的环境变量,环境变量的引用方式跟普通的docker container环境变量一致

DAG