共绩科技
共绩科技

使用说明

通过 API 调用 Job 任务

共绩算力提供 Open API 接口,用户可通过 API 调用 job 任务,如启动任务、停止任务、查询任务状态、获取任务结果等,实现任务的自动化调度和管理。

共绩算力提供 Open API 接口,用户可通过 API 调用 job 任务,如启动任务、停止任务、查询任务状态、获取任务结果等,实现任务的自动化调度和管理。

一、前置准备

  • 登录共绩算力个人中心后台,访问 API 密钥管理页面,点击“新建密钥”,选择模式并生成 (为降低密钥泄漏的风险,密钥创建后仅会展示一次,请及时保存。如果丢失,需要重新创建新的密钥。)
  • 熟悉 API 接口文档:查看共绩算力Open API 文档,明确各接口的请求地址、请求方法、参数说明、返回格式等。

二、通用规范

  • 请求头:所有 API 请求需携带身份验证信息,请求头格式如下:https://openapi.suanli.cn
  • 请求方法:根据接口类型,使用 GET(查询)、POST(创建/启动/停止)方法。
  • 请求参数:分为路径参数、查询参数、请求体参数,需严格按照接口文档要求传递,参数格式为 JSON。
  • 返回结果:所有 API 返回结果均为 JSON 格式,包含状态码(code)、提示信息(message)、数据(data),其中 code=200 表示请求成功。

三、调用示例

查询 job 任务列表

查询 job 任务列表示意图

参数解析:

  • status:任务状态。如果有多个值,请使用英文逗号(,)分隔
  • type:任务类型
  • page:页码
  • page_size:每页数量
  • token:请填入您在平台内创建的 API 密钥,获取路径为:右上角头像 → API 密钥
  • timestamp:时间戳(示例:1770194570564)
  • version:固定值(示例:1.0.0)

获取设备资源列表

获取设备资源列表示意图

参数解析:

  • task_type:任务类型
  • device_type:设备类型

创建指定的 job 任务

创建指定的 job 任务示意图

body 参数参考文档

{
  "job_support": {
    "mod_param": {
      "default": {
        "backoff_limit": 3,
        "restart_policy": "OnFailure"
      }
    },
    "parallelism": 1,
    "timeout_sec": 86400,
    "estimated_exec_sec": 600
  },
  "task_name": "j01081829-dailyhot10",
  "points": 1,
  "resources": [
    {
      "resource": {
        "device_name": "4090-48G x 8",
        "region": "chengde-p1",
        "gpu_name": "4090-48G",
        "gpu_count": 8,
        "gpu_memory": 3145728,
        "memory": 516096,
        "cpu_cores": 128
      },
      "region_name": "先择所需区域",
      "mark": "通过查询资源来获取"
    }
  ],
  "services": [
    {
      "env": [],
      "health_checks": {
        "liveness_probe": {
          "failure_threshold": 3,
          "initial_delay_seconds": 0,
          "path": "/live",
          "period_seconds": 10,
          "port": 80,
          "probe_type": "httpGet",
          "switch": false,
          "timeout_seconds": 1
        },
        "readiness_probe": {
          "failure_threshold": 3,
          "initial_delay_seconds": 0,
          "path": "/ready",
          "period_seconds": 10,
          "port": 80,
          "probe_type": "httpGet",
          "switch": false,
          "timeout_seconds": 1
        },
        "startup_probe": {
          "failure_threshold": 3,
          "initial_delay_seconds": 0,
          "path": "/health",
          "period_seconds": 10,
          "port": 80,
          "probe_type": "httpGet",
          "switch": false,
          "timeout_seconds": 1
        }
      },
      "is_update_repository": null,
      "remote_ports": [],
      "repository_account": null,
      "resource_weight": {
        "cpu_weight": 1,
        "gpu_weight": 1,
        "mem_weight": 1
      },
      "service_image": "所需镜像地址",
      "service_name": "j1767868176690-5675100",
      "share_disk_config": [],
      "share_mem_config": [],
      "share_storage_config": [],
      "start_script": {
        "command": [
          "sleep"
        ],
        "args": [
          "300"
        ]
      },
      "storage_config": []
    }
  ],
  "share_disk_volumes": [],
  "share_mem_volumes": [],
  "task_qos": null,
  "task_type": "Job",
  "sub_type": "Spot"
}

参数注释解析

1 .顶层字段

字段类型必填说明示例/备注
job_supportObject必填任务运行配置见下方 job_support 子表
task_nameString必填任务名称,需在平台唯一“j01081829-dailyhot10”
pointsNumber必填任务对应的积分数,用于计费或优先级1
resourcesArray必填资源申请列表,通常只包含一个对象见下方 resources 数组子表
servicesArray必填容器服务配置列表,通常只包含一个对象见下方 services 数组子表
share_disk_volumesArray可选共享磁盘卷配置,无则空数组[]
share_mem_volumesArray可选共享内存卷配置,无则空数组[]
task_qosNull / String可选任务 QoS 级别,通常可为 nullnull
task_typeString必填任务类型,固定为 Job“Job”
sub_typeString必填子类型,例如 Spot 或 OnDemand“Spot”

2 .job_support 字段

字段类型必填说明示例
mod_paramObject必填作业控制参数
mod_param.defaultObject必填默认配置
mod_param.default.backoff_limitNumber必填失败重试次数上限3
mod_param.default.restart_policyString必填重启策略:OnFailure、Never、Always“OnFailure”
parallelismNumber必填并行运行的 Pod 数量1
timeout_secNumber必填任务超时时间,单位为秒86400,即 1 天
estimated_exec_secNumber可选预估执行时间,单位为秒,用于调度优化600,即 10 分钟

3 .resources 数组内的对象字段

字段类型必填说明示例/备注
resourceObject必填详细的资源规格,部分平台可能不需要嵌套,请查阅文档见下表
region_nameString必填资源所在区域的中文名称必须替换为真实区域名,如 “河北六区”
markString必填资源标识码,由平台分配,需要通过资源查询接口获取占位符无效,必须替换为真实 mark 字符串

4 .resource 对象内部字段

字段类型说明示例
device_nameString设备名称“4090-48G x 8”
regionString区域代码“chengde-p1”
gpu_nameStringGPU 型号“4090-48G”
gpu_countNumberGPU 数量8
gpu_memoryNumber总显存,单位为 MB3145728
memoryNumber系统内存,单位为 MB516096
cpu_coresNumberCPU 核心数128

部分平台可能不接受 resource 这种嵌套结构,请以官方文档为准。更常见的方式是直接在 resources 对象中平铺 gpu_name、gpu_count 等字段,或仅提供 mark 即可自动关联资源规格。

5 .services 数组内的对象字段

字段类型必填说明示例/备注
envArray可选环境变量列表每个元素格式为 {“name”:“KEY”,“value”:“VAL”}
health_checksObject可选健康检查配置,若不需要可移除整个对象见下方探针表格
is_update_repositoryNull可选是否更新仓库,通常为 nullnull
remote_portsArray可选需要暴露的远程端口列表[]
repository_accountNull可选私有镜像仓库账户,无则为 nullnull
resource_weightObject视平台要求资源权重,部分平台要求放在顶层见下方说明
service_imageString必填容器镜像地址必须替换为有效镜像,例如 “harbor.suanleme.cn/project/ubuntu:22.04”
service_nameString必填服务名称,建议保持唯一“j1767868176690-5675100”
share_disk_configArray可选共享磁盘挂载配置[]
share_mem_configArray可选共享内存挂载配置[]
share_storage_configArray可选共享存储挂载配置[]
start_scriptObject必填容器启动命令及参数见下方 start_script 表
storage_configArray可选存储卷挂载配置[]

6 .health_checks 下的探针字段

适用于:

  • liveness_probe
  • readiness_probe
  • startup_probe

每个探针的结构相同:

字段类型必填说明示例
failure_thresholdNumber必填连续失败次数阈值3
initial_delay_secondsNumber必填容器启动后延迟探测时间,单位为秒0
pathStringprobe_type 为 httpGet 时必填“/live”
period_secondsNumber必填探测间隔,单位为秒10
portNumberHTTP 探测时必填80
probe_typeString必填探测类型,支持 httpGet、tcpSocket、exec“httpGet”
switchBoolean必填是否启用该探针false,表示禁用
timeout_secondsNumber必填探测超时时间,单位为秒1

建议:如果 switch 为 false,表示探针被禁用,但某些 API 仍要求保留所有字段。若不需要任何探针,可尝试省略整个 health_checks 对象。

7 .resource_weight 对象

字段类型说明示例
cpu_weightNumberCPU 权重系数1
gpu_weightNumberGPU 权重系数1
mem_weightNumber内存权重系数1

历史错误提示:之前出现过 “missing field ‘resource_weight’” 错误,可能是因为平台期望该字段在顶层,即与 task_name 同级,且类型为数字,例如 “resource_weight”: 1。请务必查阅官方文档确认正确的位置和类型。

8 .start_script 对象

字段类型说明示例
commandArray可执行命令,第一个元素为命令名[“sleep”]
argsArray命令参数列表[“300”],表示睡眠 300 秒

9 .请求前必须替换的占位符

占位符文本所在位置正确值来源
“指定区域”resources[0].region_name调用资源查询 API 返回的 region_name
“根据查讯资源信息所获得”resources[0].mark调用资源查询 API 返回的 mark 字段
“指定所使用的镜像地址”services[0].service_image自己构建并推送的镜像地址,如 harbor 仓库

10 .发送请求前的检查清单

  1. mark 已替换为真实有效的资源标识码
  2. service_image 已替换为真实存在的容器镜像地址
  3. 如果平台要求 resource_weight 在顶层且为数值,已调整 JSON 结构
  4. 如果不需要健康检查,已删除 health_checks 对象
  5. resources 的结构符合官方文档,已确认是否允许嵌套 resource 对象
  6. 所有字符串值没有包含 Postman 模板语法,例如 {{$timestamp}}

查询指定 job 任务状态

查询指定 job 任务状态示意图

查询指定 job 任务状态示意图

参数解析:

  • task_id:任务 id(与平台任务列表中的 id 一致,例如 TASK-2025753-186,task_id 为 2025753)
  • token:请填入您在平台内创建的 API 密钥,获取路径为:右上角头像 → API 密钥
  • timestamp:时间戳(示例:1770194570564)
  • version:固定值(示例:1.0.0)

停止指定 job 任务

停止指定 job 任务示意图

停止指定 job 任务示意图

参数解析:

  • token:请填入您在平台内创建的 API 密钥,获取路径为:右上角头像 → API 密钥
  • timestamp:时间戳(示例:1770194570564)
  • version:固定值(示例:1.0.0)
  • task_id:任务 id(与平台任务列表中的 id 一致,例如 TASK-2025753-186,id 为 2025753)

API 调用注意事项

  • API 密钥需妥善保管,若泄露需及时在平台“API 密钥管理”页面重置。
  • 调用 API 时,需确保参数正确(如 jobId 需与平台任务列表中的一致),避免因参数错误导致请求失败。
  • 若任务处于“运行中”状态,不可重复启动;若需重新执行,需先停止任务,再新建、启动。
  • API 调用有频率限制,避免高频调用导致请求被拦截频率限制参数。

四、注意事项

  • 镜像构建时,需确保基础镜像与云主机操作系统一致,依赖安装命令适配操作系统,避免镜像无法正常启动。
  • 镜像推送至仓库时,需确认仓库地址、用户名、镜像标签正确,否则推送失败。
  • job 任务配置时,资源配置需匹配任务需求,资源不足会导致任务执行失败,资源过剩会造成浪费。
  • Open API 调用时,若返回 code≠200,可根据 message 提示排查问题(如权限不足、参数错误、任务状态异常等)。
  • 任务执行完成后,及时查看任务日志,若有报错,根据日志信息调整镜像或程序,重新构建镜像并执行任务。

五、常见问题排查

  • 问题 1:job 任务启动失败? 排查:检查镜像是否推送成功、镜像标签是否正确、资源配置是否充足,查看任务日志,排查程序运行报错。
  • 问题 2:Open API 调用失败? 排查:检查 API 密钥是否正确、请求头是否完整、请求参数是否符合要求、API 基础地址是否正确,联系平台管理员确认 API 权限。

六、联系客服

六、联系客服示意图