华为云用户手册

  • BCE权限 默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 BCE部署时通过物理区域划分,为项目级服务。授权时,“作用范围”需要选择“区域级项目”,然后在指定区域(如华东-上海一)对应的项目(cn-east-3)中设置相关权限,并且该权限仅对此项目生效;如果在“所有项目”中设置权限,则该权限在所有区域项目中都生效。访问BCE时,需要先切换至授权区域。 根据授权精细程度分为角色和策略。 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于华为云各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。例如:针对BCE服务,管理员能够控制IAM用户仅能对某一类容器批量计算资源进行指定的管理操作。多数细粒度策略以API接口为粒度进行权限拆分,BCE支持的API授权项请参见权限策略和授权项。
  • 基本概念 镜像 容器镜像是一个应用的快照。例如,一个容器镜像可以包含一个完整的Ubuntu操作系统环境,里面仅安装了用户需要的应用程序及其依赖文件。容器镜像用于创建容器,您也可以下载其他人已经创建好的镜像来使用。 容器 容器是对软件和其依赖环境的标准化打包,可以实现应用层面的隔离,并且可以运行在主流的操作系统上。 镜像类似于操作系统,而容器类似于虚拟机。它可以被启动、开始、停止、删除等操作,每个容器都是相互隔离的 流程 基因测序流程包含测序过程所需工具的执行先后信息以及数据输入输出等定义。流程由至少一个工具组成。流程中的各个工具由其前后顺序关系形成数据流,前序工具为后序工具提供输入。 流程描述文件 基因容器提供特定的描述语言,用于控制流程的详细步骤。基因容器的流程描述文件的编写请参见流程语法参考。 工具 工具是生物信息软件的镜像封装,工具既可以编排入流程串联使用,也可以独立使用,同时用户可以制作自定义工具,这些工具都存放在工具仓库中。 OBS 对象存储服务(Object Storage Service,OBS)是华为云中基于对象的存储服务,可以为您提供海量、安全、高可靠、低成本的数据存储能力。 桶 桶(Bucket)是OBS中存储对象的容器。对象存储提供了基于桶和对象的扁平化存储方式,桶中的所有对象都处于同一逻辑层级,去除了文件系统中的多层级树形目录结构。 对象存储服务设置有三类存储类别,分别为:标准存储、低频访问存储、归档存储,从而满足客户业务对存储性能、成本的不同诉求。创建桶时可以指定桶的存储类别。桶的存储类别可以修改。 SFS 弹性文件服务(Scalable File Service,SFS)为您的弹性云服务器(Elastic Cloud Server,ECS)提供一个完全托管的共享文件存储,能够弹性伸缩至PB规模,具备可扩展的性能,为海量数据、高带宽型应用提供有力支持。
  • 文档导读 基因容器的计算环境可以使用云容器实例(Cloud Container Instance,CCI)、云容器引擎(CloudContainer Engine,CCE)、Cromwell引擎和病毒基因分析平台。 云容器实例,不需要关注底层计算资源的创建与维护,通过简单的配置即可快速部署容器负载。如果基因分析流程成熟稳定,建议您使用云容器实例环境,可以省去对资源的关注。基于云容器实例的快速入门,请参见基于CCI执行gcs-grammar流程。 云容器引擎,您需要创建管理集群及节点资源。云容器引擎使与云容器实例不同点在于环境的底层资源不同,其余基本相同。 Cromwell引擎,Cromwell 是 Broad Institute 开发的工作流管理系统。通过 Cromwell 可以将 WDL(Workflow Description Language) 描述的 workflow 运行在CCI容器中。详细使用方法请参见Cromwell引擎使用指南。 病毒基因分析平台,使用基因容器分析病毒基因组,实时反馈分析结果,简单易用,请参见病毒基因组分析平台入门。
  • 常见问题 我不懂容器技术,可以使用基因容器服务吗? 基因容器已将容器技术实现做了封装,提供了简单易用的控制台界面,您可以基于基因容器提供的控制台快速开始基因测序分析,无需额外了解容器或是云计算等相关技术。 已有测序流程和工具迁移到基因容器服务上,方便吗? 方便。基因容器提供了工具仓库,用于存储自有工具,此外,您可基于基因容器提供的图形化编辑器,通过界面上拖拽的方式,快速创建测试流程,从而将已有测试流程迁移至基因容器服务上。
  • 查看分析结果 测序流程执行时间需要数小时,具体时长与环境资源类型、环境资源大小、处理数据大小等相关。使用测试数据,预计要20分钟。 执行过程可以通过“执行结果”页面查看,可查看内容包括“任务进度图”、“流程事件”、“任务事件”、“日志”、“输入”、“输出”和“监控”等。 gcs-grammar流程在exec-script-flie步骤会执行echo hello world命令,可以在日志中看到该步骤输出的日志。选中“日志”标签,找到exec-script-flie的输出日志文件。 单击“查看”,跳转到应用运维服务中,可以查看到stdout.log输出了hello world。
  • 响应消息 响应参数 请求成功的响应参数如表5所示。 表5 成功响应参数 参数 参数类型 描述 executions Array of 表6 objects 执行结果 表6 executions详细信息 参数 参数类型 描述 id String execution GUID error 表9 Object 错误信息,如果execution创建成功,该字段返回为空,创建失败,展示错误详情 响应示例 { "executions": [ { "id": "edbd357f-a3ac-11e9-b509-0255ac100860" }, { "id": "ee0603be-a3ac-11e9-b509-0255ac100860" } ]}
  • 响应消息 响应参数 请求成功的响应参数如表8所示。 表8 成功响应参数 参数 参数类型 描述 id String 部署成功的环境ID。 响应示例 { "id": "e19d3faf-9f04-9685-e5c0-fbe8d40b96cd"} 请求失败的响应参数如表9所示。 表9 失败响应参数 参数 参数类型 描述 error_msg String 请求失败的详细原因。 error_code String 请求失败的错误码,错误码详细描述请参见错误码。 extend String 请求失败的扩展原因。 失败响应示例 { "error_msg": "Server internal error, please contact the administrator.", "error_code": "GENE.5008012", "extend": ""}
  • 请求消息 请求参数 请求参数如表1所示。 表1 请求参数 参数 是否必选 参数类型 描述 project_id 否 String 项目ID,获取方式详见获取项目ID。 source 是 String 部署环境的方式,支持选项: cci:指GCS部署的底层资源使用的是华为云服务云容器实例(简称CCI)。使用该服务,您不需要关注底层资源的创建和管理,通过简单的配置即可快速创建容器负载。如果基因测序流程成熟稳定,建议您使用CCI,可以省去对资源的关注。CCI的详细信息请参见什么是云容器实例。 cce:指GCS部署的底层资源使用的是华为云服务云容器引擎(简称CCE)。使用该服务,您需要创建并管理自己的资源。CCE的详细信息请参见什么是云容器引擎。 cluster_id 否 String 集群ID。当“source”填写的为“cce”,并且需要通过已有集群来部署环境时,此处需要填写已有集群的集群ID。否则此处不用填写。 cluster_name 否 String 命名空间。当“source”填写的为“cci”,并且需要通过已有命名空间来部署环境时,此处需要填写已有命名空间名称。否则此处不用填写。 bucket_name 否 String 对象存储桶名。当“source”填写的为“cce“,该字段必填,当“source”填写的为“cci“,若使用桶,必须为并行文件系统,若未使用桶可不填。 inputs_json 否 表2 当“source”填写的为“cce”,并且需要通过创建新的集群来部署环境时,此上需要填写新建集群需要的入参。 default_env 否 String 是否设置为默认环境,默认值false。支持选项: ture:设置为默认环境 false:不设置为默认环境 env_name 是 String 环境名称,输入字符最大长度为64,以小写字母开头,允许出现中划线(-)、小写字母和数字,且必须以小写字母或数字结尾。 ak 否 String 用户AK。当“source ”为”cci”时,需要填写。获取方法请参见访问密钥。 sk 否 String 用户SK。当“source ”为”cci”时,需要填写。获取方法请参见访问密钥。 enterprise_project_id 否 String 环境的企业项目id,默认为“0”,default企业项目,注意企业项目id要与命名空间的企业项目对应 表2 inputs_json参数 参数 是否必选 类型 描述 kind 是 String 资源类型,必须设置为“cluster”。 apiVersion 是 String API的版本,当前为固定值“v2”。 metadata 是 表 3 metadata字段数据结构说明 - spec 是 表 4 ClusterSpec字段数据结构说明 - 表3 metadata字段数据结构说明 参数 是否必选 类型 描述 name 是 String 集群名称。 annotations 否 Map[String]String 集群注解。 表4 ClusterSpec字段数据结构说明 参数 是否必选 类型 描述 authentication 是 Map[String]String 认证方式。 kubeProxyMode 是 String KubeProxy代理模式。 description 否 String 集群描述信息。 region 否 String 集群所在的地域。 az 是 String 集群所在的可用分区。 vpc 是 String 集群所在的虚拟私有云。 vpcId 是 String 集群所在虚拟私有云的ID。 subnet 是 String 集群所在的子网。 subnetId 是 String 集群子网的ID。 version 否 String 集群版本号,一般类似v1.11.7。 networkMode 否 String 集群容器网络的类型,类似overlay_l3,vpc_router等。 containerNetworkCIDR 否 String 容器网络的CIDR,一般为172.16.0.0/16。 template 否 表5 节点模板,创建集群时若需要添加节点则填写。 chargeMode 否 Integer 计费模式:0为包周期计费,1为按需计费。 flavor 否 String 集群规格,类似cce.s1.large等。 表5 Host字段数据结构说明 参数 是否必选 类型 描述 kind 是 String 资源类型,必须设置为“host”。 apiVersion 是 String API的版本,当前为固定值“v2”。 metadata 是 表 3 metadata字段数据结构说明 - spec 是 表6 - 表6 HostSpec字段数据结构说明 参数 是否必选 类型 描述 az 否 String 节点所在的可用分区。如果没有指定az值,节点将创建在所属集群的可用分区内。 flavor 是 String 虚拟机规格。 volume 是 表7 虚拟机磁盘信息。 sshKey 是 String 节点所使用的密钥对的名字。 num 是 Integer 批量创建节点的个数。 enableEip 否 Boolean 是否使用EIP。 os 否 String 节点的操作系统 extendParam 否 Interface 扩展参数,key/value对格式 表7 Volume字段数据结构说明 参数 是否必选 类型 描述 diskType 是 String 磁盘类型,区分是系统盘还是数据盘。 diskSize 是 Integer 磁盘大小,单位为GB,不同磁盘类型对磁盘大小有不同的约束。 root:表示系统盘,磁盘大小必须为40。 data:表示数据盘,则磁盘大小范围是100-32768。 volumeType 是 String 磁盘IO类型。类型枚举值如下: SATA:普通IO,指由SATA存储介质构成的云硬盘。 SAS:高IO,指由SAS存储介质构成的云硬盘。 SSD:超高IO,指由SSD存储介质构成的云硬盘。 deleteAble 是 Boolean 是否可被删除。 editIoSize 是 Boolean 是否可编辑IO大小。 editIoType 是 Boolean 是否可编辑IO类型。 editShareType 是 Boolean 是否可编辑租户共享类型。 maxSize 是 Integer 最大规格。 minSize 是 Integer 最小规格。 product 是 String 产品名称。 product_id 是 String 产品ID。 shareable 是 Boolean 是否支持租户共享。 sysDiskIops 否 String 系统盘IO速率。 volumnType 是 String 卷类型。 请求示例 已有集群ID为3aaa7db4-3bfa-11e9-9e24-0255ac10576a的CCE集群资源部署名为gcs-env-cce环境,使用gene-container-bucket对象存储桶。 POST /v1/environmentsHost:Host Server Content-Type:application/json{"source":"cce","project_id":"c515675*********8a8a81ede51894ac","cluster_id":"3aaa7db4-3bfa-11e9-9e24-0255ac10576a","bucket_name":"gene-container-bucket","env_name":"gcs-env-cce","default_env":false, "enterprise_project_id":"0"}
  • 请求消息 请求参数 请求参数如表2所示。 表2 请求参数 参数 是否必选 参数类型 取值范围 描述 action 是 String cancel/retry/update 执行结果操作名称,支持选项为: cancel: 取消 retry: 重试 update: 更新priority inputs_json 否 Map 根据其流程定义 流程输入参数,当为空时,将使用流程文件的inputs中定义的默认值。 timeout 否 Integer64 为空取默认值,默认值为1440分钟 超时时间,如果不填,则默认是1440分钟。 priority 否 Integer64 默认值为0,取值范围[0,999] execution的调度优先级,默认值为0,取值范围[0,999]。数值越高优先级越高。 请求示例 PUT /v1/executions/e19d3faf-9f04-9685-e5c0-fbe8d40b96cd HTTP/1.1 Host:Host Server Content-Type:application/json{ "action": "cancel", }
  • 响应消息 响应参数 响应中结构如表2所示。 表2 Execution事件结构 参数 参数类型 描述 metadata 表3 元信息。 involvedObject 表3 事件相关主体信息。 reason String 事件状态。 message String 事件详细信息。 firstTimestamp String 事件首次上报时间。 lastTimestamp String 事件末次上报时间。 count Integer 事件发生次数。 type String 事件类型。 elemType String 元素type. elemId String 元素名称。 actionName String 执行动作名称。 表3 简化的元信息结构 参数 参数类型 描述 name String 名称。 namespace String 命名空间。 响应示例 [ { "metadata": { "name": "gcs-exec-3-08-20-144951.154c848add38e9f9", "namespace": "c51567523b744d098a8a81ede51894ac" }, "involvedObject": { "name": "gcs-exec-3-08-20-144951", "namespace": "c51567523b744d098a8a81ede51894ac" }, "reason": "执行成功##SuccessfulFinish", "message": "元素(job-a-init)执行create成功. ## Element(job-a-init) execute Action: create successfully", "firstTimestamp": "2018-08-20T06:41:44Z", "lastTimestamp": "2018-08-20T06:41:44Z", "count": 1, "type": "Normal", "elemType": "KubeDAG.init", "elemId": "job-a-init", "actionName": "create" }, { "metadata": { "name": "gcs-exec-3-08-20-144951.154c848ade084c88", "namespace": "c51567523b744d098a8a81ede51894ac" }, "involvedObject": { "name": "gcs-exec-3-08-20-144951", "namespace": "c51567523b744d098a8a81ede51894ac" }, "reason": "启动##ActionStart", "message": "元素(job-c-init)开始执行(create)流程. ## Element(job-c-init) start to Action(create).", "firstTimestamp": "2018-08-20T06:41:44Z", "lastTimestamp": "2018-08-20T06:41:44Z", "count": 1, "type": "Normal", "elemType": "KubeDAG.init", "elemId": "job-c-init", "actionName": "create" }, { "metadata": { "name": "gcs-exec-3-08-20-144951.154c848ade7ed58e", "namespace": "c51567523b744d098a8a81ede51894ac" }, "involvedObject": { "name": "gcs-exec-3-08-20-144951", "namespace": "c51567523b744d098a8a81ede51894ac" }, "reason": "启动##ActionStart", "message": "元素(job-d-init)开始执行(create)流程. ## Element(job-d-init) start to Action(create).", "firstTimestamp": "2018-08-20T06:41:44Z", "lastTimestamp": "2018-08-20T06:41:44Z", "count": 1, "type": "Normal", "elemType": "KubeDAG.init", "elemId": "job-d-init", "actionName": "create" },]
  • 功能介绍 清理基因测序的环境。如果您不再使用此环境,建议您清理环境,避免资源及费用的浪费。如默认环境被清理,则最新创建的环境会自动变成默认环境。 如果您使用的环境是云容器实例,环境清理后,基因容器将不再使用该命名空间,但是命名空间并未删除。如果需要删除命名空间,请前往CCI控制台删除。 如果您使用的环境是云容器引擎,环境清理后,基因容器将不再使用该集群。对于部署环境时创建的集群,可以通过入参“delete_cluster”选择是否同时删除集群,对于部署环境前已创建的集群,只能往CCE控制台删除。
  • URI DELETE /v1/environments/{environment_id} 表1 请求参数 参数 是否必选 参数类型 描述 environment_id 是 String 环境ID。 delete_cluster 否 String 通过部署环境而新创的集群资源,可以使用delete_cluster字段来删除该集群;通过已有集群来部署环境不允许删除集群,需通过云容器引擎界面删除,默认false。 支持的取值: "1", "t", "T", "true", "TRUE", "True":表示需要删除集群。 "0", "f", "F", "false", "FALSE", "False":表示不删除集群。
  • URI GET /v1/workflows/{workflow_id} 表1 参数说明 参数 是否必选 参数类型 描述 workflow_id 是 String 流程id,即创建workflow的返回值。 get_archive 否 Boolean 是否获取流程内容,默认为false。 支持的取值: "1", "t", "T", "true", "TRUE", "True":表示需要删除集群。 "0", "f", "F", "false", "FALSE", "False":表示不删除集群。
  • 终端节点 终端节点即调用API的请求地址,不同服务不同区域的终端节点不同,您可以从地区和终端节点中查询所有服务的终端节点。 基因容器的终端节点如表1所示,请您根据业务需要选择就近区域的终端节点。 表1 基因容器的终端节点 区域名称 区域 终端节点(Endpoint) 华北-北京一 cn-north-1 gcs.cn-north-1.myhuaweicloud.com 华北-北京四 cn-north-4 gcs.cn-north-4.myhuaweicloud.com 华东-上海二 cn-east-2 gcs.cn-east-2.myhuaweicloud.com
  • 响应消息 响应消息为字节数组类型流程描述文件(文件组成请参见流程语法说明)。 响应示例 version: genecontainer_0_1inputs: tool: default: gatk:4.0.2.0 type: stringworkflow: jb-2018-0807-130209-be9e8: type: GCS.Job tool: $'{tool}' resources: memory: 1G cpu: 1c commands: - bash gene/jb-2018-0807-130209-be9e8/jb.sh
  • 概述 基因容器(GeneContainer Service,GCS)提供云端基因测序解决方案,支持DNA、RNA、液态活检等主流生物基因测序场景。基因容器基于轻量级容器技术,结合大数据、深度学习算法,优化官方标准算法,为您提供灵活可定制的测序流程、秒极可伸缩的高可靠资源。 基因容器提供了REST(Representational State Transfer)风格API,支持您通过HTTPS请求调用。您可以使用本文档了解GCS提供的接口,GCS支持的接口范围请参见API概览。
  • URI GET /v1/executions 表1 请求参数 参数 是否必选 参数类型 描述 project_id 否 String 已用项目ID,如果指定,需与token中携带的值一致,如果不指定,默认返回当前项目的执行结果。 name 否 String 执行结果名称,如果指定,将返回当前项目名称中含有改名字的所有执行结果。 workflow_name 否 String 执行结果使用的流程名称,如果指定,将返回当前项目下,通过该流程文件创建的所有执行结果。 status 否 String 执行结果的状态。如果指定,将返回当前项目下,状态为指定状态的所有执行结果。 Succeeded:成功 Failed:失败 Running:执行中 Cancelled:已停止 Deleting:删除中 Cancelling:停止中 Pending:初始化 offset 否 String 偏移量,查询起始偏移,必须由数字组成,默认为0。 limit 否 String 限制量,单次查询总量,必须由数字组成,和offset必须成对出现。 batch_name 否 String 执行结果的批次名称,如果指定,将返回通过该批次名称创建的所有执行结果。
  • 响应消息 响应参数 响应中含有多个execution结构,结构如表2所示。 响应示例 { "executions": [ { "enterprise_project":{"id": "ccc130bb-fa32-4af9-9370-7458470169cf", "name": "dts"}, "execution": { ... }, "object": { ... }, "status": null }, { "execution": { ... }, "object": { ... }, "status": null }, ], "total_num": 2}
  • 响应消息 响应参数 响应中含有多个流程结构,结构请参见流程语法说明。 响应示例 { "version": "genecontainer_0_1", "inputs": { "count": { "default": 1, "description": "执行的job个数", "type": "number", "label": "basic" }, "prepare-command": { "default": "echo job-prepare", "description": "执行在所有命令之前的命令", "type": "string", "label": "basic" } }, "workflow": { "task": { "type": "GCS.Job", "tool": "nginx:latest", "image": "nginx:1.14", "commands_iter": { "command": "${prepare-command}; echo ${1};", "vars_iter": [ "range(0, ${count})" ] }, "depends": null } }, "volumes": null, "outputs": null, "tools": { "nginx:latest": { "type": "container", "name": "nginx", "version": "latest", "image": "nginx:1.14", "cpu": "2C", "memory": "8G", "command": "", "description": "", "scope": "domain" } }
  • 请求消息 请求参数 请求参数如表1所示。 表1 请求参数 参数 是否必选 参数类型 描述 workflow_content 是 表2 需要校验的流程内容。 表2 workflow_content 参数 是否必选 参数类型 描述 inputs 是 表3 流程输入,子元素为输入参数/输入参数属性键值对。 metadata 否 表4 流程中各Job关系定义。 version 是 String 模板版本号。 volumes 是 表5 存储卷。 workflow 是 workflow 流程中每个Job的具体内容。 表3 inputs 参数 是否必选 参数类型 描述 输入参数名 是 表6 输入参数/输入参数属性键值对,key为输入参数名,value结构见表7 输入参数value。 表4 metadata 参数 是否必选 参数类型 描述 Designer 是 表7 每个Job的设计器属性。 relationships 是 表12 各Job依赖关系。 version 是 String 模板版本号。 表5 volumes 参数 是否必选 参数类型 描述 用户自定义卷名称 否 表16 挂载卷的情况,具体结构见表17 卷信息 表6 输入参数value 参数 是否必选 参数类型 描述 default 是 String 默认值 description 是 String 描述信息 type 是 String 参数类型。支持选项: string,类型为字符串。 number,类型为数字。 bool,类型为布尔值。 array,类型为数组。 表7 Designer 参数 是否必选 参数类型 描述 Job 是 Map 每个Job的属性,包括任务属性和连线属性,具体结构见表8 任务元素属性和表11 连线元素属性 表8 任务元素属性 参数 是否必选 参数类型 描述 position 是 表9 元素的锚点坐标。 relateto 否 List 以该Job为起点的依赖关系。 size 是 表10 元素的大小。 z 是 Integer 元素的z坐标。 表9 position 参数 是否必选 参数类型 描述 x 是 Integer 锚点x坐标。 y 是 Integer 锚点y坐标。 表10 size 参数 是否必选 参数类型 描述 width 是 Integer 元素宽度。 height 是 Integer 元素高度。 表11 连线元素属性 参数 是否必选 参数类型 描述 source 是 表12 连线起点元素。 target 是 表12 连线终点元素。 z 是 Integer 元素的z坐标。 表12 端点元素 参数 是否必选 参数类型 描述 id 是 String 端点元素的id 表13 relationships 参数 是否必选 参数类型 描述 Job 是 表14 该Job的依赖和被依赖关系,map中只有一个以“references”为key的键值对,references的具体结构见表15 references。 表14 references 参数 是否必选 参数类型 描述 depends 否 List 该Job所依赖的Job列表,List中每个元素的结构见表16 depends。 relateto 否 List 依赖该Job的Job列表,List中每个元素为Job ID。 表15 depends 参数 是否必选 参数类型 描述 target 是 String 所依赖的任务名,请确保指定的任务名必须存在。 type 是 Enum 依赖方式,可取值为: whole,整体依赖,此为默认值。 iterate,迭代式依赖。 例如,如果步骤一和步骤二都并发执行100个容器。 设置whole则表示步骤一全部执行结束后,才能开始执行步骤二。 设置iterate则表示,步骤一的1号执行完成,就可以开始执行步骤二的1号,并行执行,可以提高整体的并发效率。 表16 卷信息 参数 是否必选 参数类型 描述 mount_from 是 Map 挂载卷的来源,Map子元素为以“pvc”为key的键值对,value可使用inputs或系统默认的输入值。 mount_path 是 String 卷挂载到的路径。 表17 Job具体内容 参数 是否必选 参数类型 描述 commands 是 List Job所要执行的命令,List每个元素代表一条命令 depends 是 List 所依赖的Job和依赖类型,具体结构见表16 depends metadata 是 Map Job元信息,Map子元素为以“Designer”为key的Map,该嵌套的Map中只有一个以“id”为key的Map,value为Job ID resources 是 Map Job资源申请量,两个子元素分别为“cpu”和“memory” tool 是 String Job所要用到的工具 type 是 Enum Job投递的环境类型。["GCS.job"] 请求示例 POST /v1/workflows/validate HTTP/1.1 Host:Host Server Content-Type:application/json{"workflow_content": {"version": "genecontainer_0_1","inputs": {"prepare-command": {"default": "echo job-prepare","description": "执行在所有命令之前的命令","type": "string","label": "basic"},"count": {"default": 1,"description": "执行的job个数","type": "number","label": "basic"}},"workflow": {"task": {"type": "GCS.Job","tool": "nginx:latest","commands_iter": {"command": "${prepare-command}; echo ${1};","vars_iter": ["range(0, ${count})"]}}}}}
  • 响应消息 响应参数 响应中结构如表2所示 表2 流程输入结构 参数 参数类型 描述 inputs JSONObject,详细请参见流程语法说明 流程输入信息。 响应示例 { "inputs": { "cpu": { "default": 1, "type": "number" }, "memory": { "default": "1G", "type": "string" }, "tool": { "default": "gatk:4.0.2.0", "type": "string" } }}
  • 请求消息 表1 参数说明 参数 是否必选 参数类型 描述 execution_id 是 String 执行结果ID,即创建execution接口返回值。 请求示例 GET /v1/executions/e19d3faf-9f04-9685-e5c0-fbe8d40b96cd/outputs HTTP/1.1 Host:Host Server Content-Type:application/json
  • 响应消息 响应参数 响应中结构如表2所示。 表2 execution输出结构 参数 参数类型 描述 outputs JSONObject,请参见outputs 执行结果输出信息。 响应示例 { "outputs": { "jb-2018-0816-064501-fed5b": { "paths": ["sample/merge.HaplotypeCaller.raw.vcf.gz"] } }}
  • 错误码 调用接口出错后,将不会返回结果数据。调用方可根据每个接口对应的错误码来定位错误原因。 当调用出错时,HTTP 请求返回一个 4xx 或 5xx 的 HTTP 状态码。返回的消息体中是具体的错误代码及错误信息。在调用方找不到错误原因时,可以联系华为云客服,并提供错误码,以便我们尽快帮您解决问题。 当您使用智能边缘平台的API时,如果遇到“APIGW”开头的错误码,请参见API网关错误码进行处理。 更多服务错误码请参见 API错误中心。 表1 environment错误码 状态码 错误码 错误信息 处理措施 400 GCS.4003001 Bad request, environment id is invalidate. 请求环境Id不合法 400 GCS.4003007 Bad request, limit or offset is invalidate. 请求错误,请求参数中的limit或offset非法 400 GCS.4003008 Bad request, request body is invalidate. 请求参数错误,获取环境的请求体非法 400 GCS.4003009 Bad request, request body is invalidate. 请求参数错误,删除环境的请求体非法 400 GCS.4003011 Bad request, environment is already exist. 请求错误,环境已经存在 400 GCS.4003015 Bad request, request body is invalidate. 请求错误,请求体非法 400 GCS.4003019 Bad request, request cluster id is invalidate. 请求错误,请求的cluster 400 GCS.4003020 Bad request, request cluster not exist. 请求错误,请求的集群不存在 400 GCS.4003021 Bad request, request, cluster is not available. 请求错误,请求的cluster不可用 400 GCS.4003022 Bad request, sfs pvc name is null. 请求错误,未指定sfs pvc名称 400 GCS.4003024 Bad request, specified sfs pvc name not exist. 请求错误,请求的sfs pvc不存在 400 GCS.4003025 Bad request, cluster not specified. 请求错误,未指定集群 400 GCS.4003026 Bad request, environment is already deleting. 请求错误,环境已经在删除中 400 GCS.4003028 Bad request, request body of operating environment invalidate. 请求错误,请求体非法,操作cce集群的请求体非法 400 GCS.4003029 Bad request, invalidate operating action. 请求错误,请求的action不合法 400 GCS.4003030 Bad reqeust, source in request body is invalid. 请求错误,请求体中的source不合法 404 GCS.4043003 Bad request, environment not exist. 请求的环境不存在 500 GCS.5003002 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,从数据库获取单个环境信息或者获取环境列表失败 500 GCS.5003004 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,从aos获取堆栈信息失败 500 GCS.5003005 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,从aos获取堆栈的outputs信息失败 500 GCS.5003006 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,往数据库中更新环境状态信息失败 500 GCS.5003010 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,从aos删除堆栈失败 500 GCS.5003012 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,创建环境的时候,向aos创建堆栈,aos返回错误 500 GCS.5003013 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,往数据库里面插入环境记录失败 500 GCS.5003014 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,merge 环境信息失败 500 GCS.5003016 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,从cce获取集群节点,cce返回错误 500 GCS.5003017 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,从cce获取集群信息,cce返回错误 500 GCS.5003018 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,merge 环境信息失败 500 GCS.5003023 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,从cce获取sfs信息失败 500 GCS.5003027 Operate cluster failed. 操作集群失败,操作cce的集群,cce返回错误 表2 workflow错误码 状态码 错误码 错误信息 处理措施 400 GCS.4007000 Bad request, resource parameter is invalid. 请求错误,请求体中的resource参数不合法, 在解析请求体时,Unmarshal请求体失败 400 GCS.4007001 Bad request, upload_file parameter is invalid. 请求错误,请求中archive_content参数错误, 解析请求体时,请求参数中的archive_content参数错误 400 GCS.4007009 Bad request, invalid workflow Id. 请求错误,workflowid不合法 400 GCS.4007010 Bad request, request parameters error. 请求错误,请求体不合法 400 GCS.4007011 Bad request, name of workflow is already used. 请求错误,workflow名称已被使用 400 GCS.4007015 Bad request, request workflow is invalidate. 请求错误,请求的workflow非法 400 GCS.4007020 Bad request, content file is null. 请求失败,请求workflow内容为空,请求content file 是空的 400 GCS.4007030 Bad request, the domain does not have authority when scope is public. 请求失败,scope为public时仅有特权租户可以上传workflow 400 GCS.4007031 Bad request, request body is invalid. 请求错误,请求体非法,validate workflow请求体非法 400 GCS.4007032 Bad request, request body is invalid. 请求错误,请求体非法,marshal workflow请求体失败 400 GCS.4007036 Bad request, invalid inputset Id. 请求错误,inputset id不合法 400 GCS.4007037 Bad request, no certain inputset in db.. 请求错误,数据库中该inputset不存在 404 GCS.4047008 Bad request, no certain workflow in db. 请求错误,数据库中该workflow不存在 409 GCS.4097038 Bad request, workflow is used by execution. 请求错误,该工作流已被使用 500 GCS.5007002 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,往数据库存储workflow失败 500 GCS.5007003 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,往数据库删除workflow失败 500 GCS.5007004 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,往数据库更新workflow失败 500 GCS.5007005 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,从数据库获取workflow数据失败 500 GCS.5007006 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,从数据库获取workflow列表失败 500 GCS.5007007 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,从数据库根据workflow名获取workflow失败 500 GCS.5007012 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,从数据库获取tools失败 500 GCS.5007013 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,上传模板包时,为模板文件创建临时目录失败 500 GCS.5007014 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,上传模板包时,将模板文件存入临时目录失败 500 GCS.5007016 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,marshal parser返回的workflow失败 500 GCS.5007017 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,marshal parser返回的workflow 中inputs失败 500 GCS.5007018 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,marshal parser返回的workflow 中tools失败 500 GCS.5007019 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,获取content file失败 500 GCS.5007021 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,Unmarshal workflow的inputs失败 500 GCS.5007022 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,Unmarshal workflow的tools失败 500 GCS.5007023 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,获取obsclient失败 500 GCS.5007024 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,创建obs桶失败 500 GCS.5007025 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,确认桶是否存在失败 500 GCS.5007026 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,向obs存储文件失败 500 GCS.5007027 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,获取obs文件失败 500 GCS.5007028 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,删除obs内文件失败 500 GCS.5007029 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,读取obs返回值失败 500 GCS.5007033 Server internal error, please contact the administrator. 服务器内部错误,请联系管理员,数据库增加inputset数据失败 500 GCS.5007034 Server internal error, please contact the administrator. 服务器内部错误,请联系管理员,数据库删除inputset记录失败 500 GCS.5007035 Server internal error, please contact the administrator. 服务器内部错误,请联系管理员,数据库读取inputset记录失败 表3 execution错误码 状态码 错误码 错误信息 处理措施 400 GCS.4004000 Bad request, request body is invalid. 请求错误,请检查,创建execution失败 400 GCS.4004001 Bad request, request body is invalid. 请求错误,请检查,创建execution时请求体不合法 400 GCS.4004002 Bad request, request body is invalid. 请求错误,请求参数不合法,创建execution时请求参数不合法 400 GCS.4004006 Bad request, execution id is invalidate. 请求错误,请求的execution id不合法 400 GCS.4004014 Bad request, invalid bucket name. 请求参数出错,请检查,obs桶名无效 404 GCS.4044007 Bad request, execution is not exist. 请求错误,请求的execution不存在 409 GCS.4094024 Bad reqeust, request to patch stack is already existed. 请求错误,execution已经被patch 500 GCS.5000103 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,数据库新建execution记录失败 500 GCS.5004004 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,数据库查询execution所有记录失败 500 GCS.5004005 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,数据库查询execution记录失败 500 GCS.5004008 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,往cce创建PVC,cce返回错误 500 GCS.5004009 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,从查询查询PVC,cce返回错误 500 GCS.5004010 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,workflow转化成execution失败 500 GCS.5004011 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,marshal从parser获得的execution失败 500 GCS.5004012 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,merge execution结构体失败 500 GCS.5004013 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,获取obs桶失败 500 GCS.5004015 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,unmarshal execution的inputs失败 500 GCS.5004016 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,unmarshal execution的outputs失败 500 GCS.5004017 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,从cce获取resource失败 500 GCS.5004018 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,unmarshal事件列表失败 500 GCS.5004019 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,加密token失败 500 GCS.5004020 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,marshal execution请求秒失败 500 GCS.5004021 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,往etcd中创建exectuion失败 500 GCS.5004022 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,创建堆栈时读取etcd的返回失败 500 GCS.5004023 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,当调用kubedag接口创建execution时,Unmarshal etcd返回信息失败 500 GCS.5004025 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,patch execution的时候,返回错误 500 GCS.5004026 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,从etcd获取execution失败 500 GCS.5004027 Server internal error, please contact the administrator. 系统内部错误,请联系管理员,获取execution下node的状态失败 表4 tool错误码 状态码 错误码 错误信息 处理措施 400 GCS.4006001 Bad request, request body is invalidate. 请求错误,请求体非法 400 GCS.4006002 Bad request, request tool id is invalidate. 请求错误,请求ID非法 400 GCS.4006004 Bad request, tool not exist. 请求错误,请求的tool不存在 400 GCS.4006007 Bad request, request body is invalidate. 请求错误,请求体非法 400 GCS.4006009 Bad request, the domain does not have authority when scope is public. 请求错误,scope为public时仅有特权租户可以上传tool 500 GCS.5006003 Server internal error, please contact the administrator. 系统内部错误,请联系管理员 500 GCS.5006005 Server internal error, please contact the administrator. 系统内部错误,请联系管理员 500 GCS.5006006 Server internal error, please contact the administrator. 系统内部错误,请联系管理员 500 GCS.5006008 Server internal error, please contact the administrator. 系统内部错误,请联系管理员 500 GCS.5006010 Server internal error, please contact the administrator. 系统内部错误,请联系管理员 500 GCS.5006011 Bad request, version of tool is already existed. 请求错误,工具的版本已存在 父主题: 附录
  • URI GET /v1/workflows 表1 请求参数 参数 是否必选 参数类型 描述 name 否 String 指定流程名称,模糊匹配获取含有该name的流程列表。 scope 否 String 指定流程的scope,过滤scope为当前指定值的流程列表。如果scope为空,将返回该租户下的所有自定义流程和公共流程。支持选项为: “domain”:仅当前租户可见可用。 “public”:流程所有租户可见可用。 offset 否 String 偏移量,查询起始偏移,默认为0。必须由数字组成。 limit 否 String 限制量,单次查询总量,和offset必须成对出现。必须由数字组成。 project_id 否 String 已用项目ID。如果指定,需与token中携带的值一致,如果不指定,默认返回当前项目的执行结果。
  • 响应消息 响应参数 响应中含有多个流程结构,结构如表2所示。 响应示例 { "workflow": [ { "id": "8a50f68a-bd2b-b223-c31a-5d2fa48cbbb7", "name": "gcs-2018-0816-080719", "description": "", "vendor": "gcs-user", "scope": "domain", "domain": "gcs-user", "domain_id": "b0148a2cb4*********77bab429e48e7", "project_id": "c51567523b********a81ede51894ac", "create_at": "2018-08-16T08:07:20Z", "update_at": "2018-08-16T08:07:20Z", "workflow_url": "https://geneworkflows-149-b0148a2cb4f347289b477bab429e48e7.192.149.46.200:443/gcs-2018-0816-080719/gcs-2018-0816-064501-1.0.yaml", "logo": "", "image": "", "enterprise_project_id":{"id":"0", "name":"default"} }, { "id": "1dc19791-f34d-5403-7125-b9e32ccef95f", "name": "parser", "description": "", "vendor": "gcs-user", "scope": "domain", "domain": "gcs-user", "domain_id": "b0148a2cb4f3********bab429e48e7", "project_id": "c51567523b********a81ede51894ac", "create_at": "2018-08-13T02:44:22Z", "update_at": "2018-08-13T02:44:22Z", "workflow_url": "https://geneworkflows-149-b0148a2cb4f347289b477bab429e48e7.192.149.46.200:443/parser/gatk4-best-practi.yaml", "logo": "hw-gcs-logo-southchina-b0148a2cb4f347289b477bab429e48e7:", "image": "", "enterprise_project_id":{"id":"0", "name":"default"} }, ], "total_num": 2}
  • 响应消息 响应参数 响应中结构如表2所示。 表2 流程工具结构 参数 参数类型 描述 tools 表3 流程 tools信息。 表3 工具结构 参数 参数类型 描述 command String 直接写要执行的命令。 cpu String 工具默认需要的cpu。 description String 工具描述信息。 image String 工具镜像。 memory String 工具默认需要memory。 name String 工具名称。 scope String 工具范围。 type String 工具类型。 version String 工具版本。 响应示例 { "tools": { "nginx:latest": { "command": "your command here", "cpu": "2C", "description": "", "image": "nginx:latest", "memory": "8G", "name": "nginx", "scope": "domain", "type": "container", "version": "latest" } }}
  • API概览 GCS提供包括环境管理、流程创建、执行结果、工具相关的API,具体API如下所示。 Environment:运行基因计算所需要的设施环境,例如K8S集群; Workflow:基因计算流程的定义; Execution:某个基因计算流程的一次执行过程的结果; Tool:基因计算所依赖的软件工具。 表1 GCS API API 说明 部署environment 部署基因计算所需的环境 删除environment 清理删除基因测序的环境 查询environment列表 查询环境列表信息 查询environment 查询环境的详细信息 创建workflow 创建测序流程 删除workflow 删除测序流程 更新workflow 更新测序流程 下载workflow 下载测序流程 查询workflow 查询测序流程详细信息 查询workflow输入 查询测序流程输入 查询workflow工具 查询测序流程的工具 查询workflow列表 查询测序流程列表 校验流程 校验流程合法性 创建execution 开始执行测序流程 批量创建execution 批量执行测序流程 删除execution 删除执行结果 查询execution 查询执行结果详细信息 查询execution列表 查询执行结果列表 查询execution输入 查询执行结果的输入 查询execution输出 查询执行结果的输出 查询execution事件 查询指定执行结果的事件 操作execution 启动/停止/更新执行任务 创建tool 创建工具 删除tool 删除工具 更新tool 更新工具 查询tool 查询工具详细信息 查询tool列表 查询工具列表
  • AK/SK认证 AK/SK签名认证方式仅支持消息体大小在12MB以内,12MB以上的请求请使用Token认证。 AK/SK认证就是使用AK/SK对请求进行签名,在请求时将签名信息添加到消息头,从而通过身份认证。 AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。 SK(Secret Access Key):私有访问密钥。与访问密钥ID结合使用,对请求进行加密签名,可标识发送方,并防止请求被修改。 使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门的签名SDK对请求进行签名。详细的签名方法和SDK使用方法请参见API签名指南。 签名SDK只提供签名功能,与服务提供的SDK不同,使用时请注意。
  • Token认证 Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。 Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头中,从而通过身份认证,获得操作API的权限。Token可通过调用获取用户Token接口获取。 调用本服务API需要项目级别的Token,即调用获取用户Token接口时,请求body中auth.scope的取值需要选择project,如下所示。 { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", //IAM用户名 "password": "********", //IAM用户密码 "domain": { "name": "domainname" //IAM用户所属帐号名 } } } }, "scope": { "project": { "name": "xxxxxxxx" //项目名称 } } }} 获取Token后,再调用其他接口时,您需要在请求消息头中添加“X-Auth-Token”,其值即为Token。例如Token值为“ABCDEFJ....”,则调用接口时将“X-Auth-Token: ABCDEFJ....”加到请求消息头即可,如下所示。 123 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/projectsContent-Type: application/jsonX-Auth-Token: ABCDEFJ.... 您还可以通过这个视频教程了解如何使用Token认证:https://bbs.huaweicloud.com/videos/101333。
共100000条