• 沒有找到結果。

● 已创建至少一个可用密钥对,具体请参见创建密钥对。

● 已创建OBS桶,桶的创建方法参见添加OBS桶。

● 已创建的可用文件存储卷名称,CCE的文件存储卷的创建和导入参见文件存储卷。

● 已创建的集群,集群创建方法参见CCE的集群管理部分,创建好集群后,请设置 弹性伸缩策略,可以参见CCE插件管理的autoscaler。

创建 Environment

假设区域选择为华北北京四区,则前提条件中的信息为如下值(实际操作中您需要根 据实际情况替换):

● IAM的Endpoint为:iam.cn-north-4.myhuaweicloud.com

● GCS的Endpoint为:gcs.cn-north-4.myhuaweicloud.com

● 区域名称:"cn-north-4"

● 秘钥对名称:"KeyPair-3587"

● 项目ID:10556c21********8bf10512591189e

● OBS桶:gene-container-bucket

● 集群ID:d9d8912d-a6cb-11e8-bc20-0255ac105709

步骤1 调用其他接口前,需要参见3.1-构造请求中的调用方式获取token,并设置成环境变 量。

1. 获取token。

其中加粗的蓝色字体部分,需要替换为真实的数据。

– iam_endpoint:IAM的Endpoint,以cn-north-4的Endpoint为例则应该为 iam.cn-north-4.myhuaweicloud.com。

– username:华为云的用户账号,必填项。

– password:华为云的用户密码,必填项。

– domainname:若是子账号,请填写对应的主账号名称。若不是子账号,请 与username保持一致,必填项。

– cn-north-4:此处以中国华北区4为例,必填项。

curl -H "Content-Type:application/json" https://{iam_endpoint}/v3/auth/tokens -X POST -d '{"auth": {"identity":{"methods":["password"],"password":{"user":

{"name":"username","password":"password","domain":{"name":"domainname"}}}},"scope":

{"project":{"name":"cn-north-4"}}}}' -v -k

响应Header中“X-Subject-Token”的值即为Token:

X-Subject-Token:

MIIDkgYJKoZIhvcNAQcCoIIDgzCCA38CAQExDTALBglghkgBZQMEAgEwgXXXXX...

2. 使用如下命令将token设置为环境变量,方便后续使用。

export Token=

{X-Subject-Token}

X-Subject-Token即为上一步骤获取到的token,如下所示。

export Token=MIIDkgYJKoZIhvcNAQcCoIIDgzCCA38CAQExDTALBglghkgBZQMEAgEwgXXXXX...

3. 将API的入口地址设置为环境变量,方便后续事使用,入口地址为“https://

GCS_ENDPOINT”。

export GCS_Endpoint="https://gcs.cn-north-4.myhuaweicloud.com"

步骤2 创建环境。

调用5.1.1-部署Environment接口,利用前提条件中已创建的集群创建GCS环境。

curl -i -k -X POST -H "X-Auth-Token: $Token" ${GCS_ENDPOINT}/v1/environments -d

'{"source":"cce","project_id":"10556c21********8bf10512591189e","cluster_id":"d9d8912d-a6cb-11e8-bc20-0255ac105709","bucket_name":"gene-container-bucket","env_name":"gcs-env-cce-new"}'

命令中主要参数说明如下:

● project_id: 前提条件中获取到的项目ID

● source: 创建环境的来源 cce表示,创建cce环境

● bucket_name: 前提条件中已创建的OBS桶名称

● cluster_id:前提条件中已创建的集群ID

● env_name:要创建的环境的名称

创建成功的时候会返回环境的ID,为了后续操作,需要记录下环境的ID。

{ "id": "6e03f731-9c31-569a-4121-6a10b6996458"

}

步骤3 将环境ID设置为环境变量。

export ENVIRONMENT_ID=6e03f731-9c31-569a-4121-6a10b6996458

步骤4 查看环境。

调用5.1.4-查询Environment接口,查询GCS环境。

curl -i -k -X GET -H "X-Auth-Token: $Token" ${GCS_ENDPOINT}/v1/environments/${ENVIRONMENT_ID}

查询成功的时候会返回环境的详情。

{ "guid": "bcdd92fd-0380-e114-5dbe-38dac77857e9", "project_id": "10556c21********8bf10512591189e", "domain_id": "b0148a2cb********477bab429e48e7", "name": "gcs-env-cce-new",

"description": "Gene container environment form cce", "status": "Running",

"create_at": "2018-08-13T03:50:30Z", "update_at": "2018-08-13T07:27:02Z",

"cluster_id": "d9d8912d-a6cb-11e8-bc20-0255ac105709", "cluster_name": "gcs-cluster",

"cpu": 8,

"memory": 16, "source": "cce",

"stack_id": "10185add-acde-cc18-b8dd-b3a87a1f484c"

"is_gene_cluster": false,

"bucket_name": "gene-container-bucket", "default_env": false,

"order_id": ""

}

步骤5 将集群的ID设置为环境变量。

export CLUSTER_ID=d9d8912d-a6cb-11e8-bc20-0255ac105709

----结束

创建 Workflow

步骤1 登录GCS控制台,下载示例流程。

1. 选择左侧导航栏的“基因测序”>“示例流程”。

2. 找到gcs-grammar示例流程,单击下载文件,保存示例流程到本地。

步骤2 上传示例流程gcs-grammar.yaml到执行curl命令的服务器的任一路径,例如/home/

gcs-user。

步骤3 进入服务器中流程文件所在路径,调用5.2.1 创建workflow接口,上传gatk4-best-practices.yaml作为自己的流程。

curl -k -X POST -H "X-Auth-Token: ${Token}" -F 'resource={"name":"gcs-demo-workflow", "description":"gcs demo workflow", "filename":"gatk4-best-prectices.yaml" }' -F '[email protected]'

${GCS_Endpoint}/v1/workflows

命令中参数说明如下:

● name:流程名字。

● description:流程描述。

● filename:要上传的workflow文件的文件名

● archive_content:要上传的workflow文件。如果执行curl命令时,未进入到模板 文件所在路径,可以在此处加上路径,例如模板文件gcs-grammar.yaml在/

home/gcs-user路径下,则命令为archive_content=@

/home/gcs-user/gcs-grammar.yaml

创建成功的时候会返回流程的ID,为了后续操作,需要记录下此流程的ID。

{ "id": "f2637630-5d83-11e8-a6de-0255ac101a0c"

}

步骤4 将workflow ID设置为环境变量。

export WORKFLOW_ID=d9d8912d-a6cb-11e8-bc20-0255ac105709

----结束

创建 Execution

假设已获取前提条件中的信息为如下值(实际操作中您需要根据实际情况替换):

● 集群下文件存储卷名称:"gcs-sfs-358712"

● 项目ID:10556c2112784111b8bf10512591189e 步骤1 调用5.3.1-创建execution接口,创建execution。

curl -k -X POST -H "X-Auth-Token: $Token" ${GCS_Endpoint}/v1/executions -d '{"name":demo-execution", "workflow_id": ${WORKFLOW_ID}, "cluster_id": ${CLUSTER_ID}, "sfs_pvc_name": "gcs-sfs-358712", "data_bucket_name": "gene-container-bucket", "target": "cce"}'

命令中参数说明如下

● name:自定义execution名称,例如gcs-demo-execution

● workflow_id:创建流程过程中创建的流程ID

● sfs_pvc_name:文件存储卷名称

● cluster_id:创建环境过程中创建的集群ID

● data_bucket_name:前提条件中的OBS桶

● target:执行execution的环境类型,cce表示使用的是cce环境

{ "id": "10185add-acde-cc18-b8dd-b3a87a1f484c"

}

步骤2 将execution id设置为环境变量。

export EXECUTION_ID=10185add-acde-cc18-b8dd-b3a87a1f484c

步骤3 调用5.3.4 查询execution接口,查询execution。

curl -k -X GET -H "X-Auth-Token: $Token" ${GCS_Endpoint}/v1/executions/${EXECUTION_ID}

GCS界面可以查看运行成功的execution

----结束

清理资源

假设已获取前提条件中的信息为如下值(实际操作中您需要根据实际情况替换):

● 项目ID:10556c2112784111b8bf10512591189e

须知

OBS、SFS等资源如果不再需要,请至对应该服务的控制台手动删除。

步骤1 调用5.3.3 删除execution接口,删除创建的execution。

curl -k -X DELETE -H "X-Auth-Token: $Token" ${GCS_Endpoint}/v1/executions/${EXECUTION_ID}

如果使用的集群是创建环境时一并创建的,可以设置delete_cluster参数,将集群一并 删除。

curl -k -X DELETE -H "X-Auth-Token: $Token" ${GCS_Endpoint}/v1/executions/${EXECUTION_ID}?

delete_cluster=true

步骤2 如果后续不再需要执行计算任务,调用5.1.2 删除environment接口,删除创建的 environment。

curl -k -X DELETE -H "X-Auth-Token: $Token" ${GCS_Endpoint}/v1/environments/${ENVIRONMENT_ID}

步骤3 如果后续不再需要此计算流程,调用5.2.2 删除workflow接口,删除创建的 workflow。

curl -k -X DELETE -H "X-Auth-Token: $Token" ${GCS_Endpoint}/v1/workflow/${WORKFLOW_ID}

----结束

5 API

5.1 Environment 5.2 Workflow 5.3 Execution 5.4 Tool

5.1 Environment

5.1.1 部署 environment

功能介绍

部署基因测序所需的环境,开始基因测序之前,请先进行必要的资源配置。

URI

POST /v1/environments

请求消息

请求参数

请求参数如表5-1所示。

5-1 请求参数

参数 是否必选 参数类型 描述

project_id 否 String 项目ID,获取方式详见

7.3 获取项目ID。

参数 是否必选 参数类型 描述

source 是 String 部署环境的方式,支持

选项:

● cci:指GCS部署的 底层资源使用的是

● cce:指GCS部署的 底层资源使用的是

cluster_id 否 String 集群ID。当“source”

填写的为“cce”,并

cluster_name 否 String 命名空间。当

“source”填写的为

参数 是否必选 参数类型 描述

bucket_name 否 String 对象存储桶名。当

“source”填写的为

“cce“,该字段必 填,当“source”填写 的为“cci“,若使用 桶,必须为并行文件系 统,若未使用桶可不 填。

inputs_json 否 表5-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要与命名空间的企业 项目对应

5-2 inputs_json 参数

参数 是否必选 类型 描述

kind 是 String 资源类型,必须设置为

“cluster”。

apiVersion 是 String API的版本,当前为固定值

“v2”。

metadata 是 表 3

metadata字 段数据结构说 明

-spec 是 表 4

ClusterSpec 字段数据结构 说明

-表

5-3 metadata 字段数据结构说明

参数 是否必选 类型 描述

name 是 String 集群名称。

annotations 否 Map[String]St

ring 集群注解。

5-4 ClusterSpec 字段数据结构说明

参数 是否必选 类型 描述

authentication 是 Map[String]St

ring 认证方式。

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等。

containerNetwo

rkCIDR 否 String 容器网络的CIDR,一般为

172.16.0.0/16。

template 否 表5-5 节点模板,创建集群时若需要

添加节点则填写。

chargeMode 否 Integer 计费模式:0为包周期计费,1 为按需计费。

flavor 否 String 集群规格,类似cce.s1.large 等。

5-5 Host 字段数据结构说明

参数 是否必选 类型 描述

kind 是 String 资源类型,必须设置为

“host”。

apiVersion 是 String API的版本,当前为固定值

“v2”。

metadata 是 表 3

metadata字 段数据结构说 明

-spec 是 表5-6

-表

5-6 HostSpec 字段数据结构说明

参数 是否必选 类型 描述

az 否 String 节点所在的可用分区。如果没

有指定az值,节点将创建在所 属集群的可用分区内。

flavor 是 String 虚拟机规格。

volume 是 表5-7 虚拟机磁盘信息。

sshKey 是 String 节点所使用的密钥对的名字。

num 是 Integer 批量创建节点的个数。

enableEip 否 Boolean 是否使用EIP。

os 否 String 节点的操作系统

参数 是否必选 类型 描述

extendParam 否 Interface 扩展参数,key/value对格式

5-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/environments Host: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"

}

新建入参为inputs_json的cce集群资源部署名为gcs-env-cce-new环境,使用gene-container-bucket对象存储桶。

{ "source": "cce",

"project_id": "c515675********8a8a81ede51894ac", "inputs_json": {

"cluster.install.addons/install": "[{\"addonTemplateName\":\"storage-driver\",\"version\":\"\"}]"

}

"subnetId": "959903d0-383d-47d4-8565-7ffdeab4d31b", "vpcId": "005d2390-0cbc-4f8d-a0eb-4cd22b71f79b", "vpc": "vpc-fcb-hl",

"diskSizeTip": "",

"bucket_name": "gene-container-bucket", "env_name": "gcs-env-cce-new", "default_env": false

}

已有CCI命名空间cci-namespace部署名为gcs-env-gcsenv-cci环境,使用gene-container-bucket对象存储桶。

POST /v1/environments Host:Host Server

Content-Type:application/json { "source":"cci",

"project_id":"c515675********98a8a81ede51894ac", "cluster_name":"cci-namespace",

"bucket_name":"gene-container-bucket", "env_name":"gcs-env-gcsenv-cci", "ak":"ZHV********RJQVFSCJQ",

"sk":"YVfTZqpgFOH********3XNTrAbhQmw7JhxaaadNf", "default_env":false

}

响应消息

响应参数

请求成功的响应参数如表5-8所示。

5-8 成功响应参数

参数 参数类型 描述

id String 部署成功的环境ID。

响应示例

{ "id": "e19d3faf-9f04-9685-e5c0-fbe8d40b96cd"

}

请求失败的响应参数如表5-9所示。

5-9 失败响应参数

参数 参数类型 描述

error_msg String 请求失败的详细原因。

error_code String 请求失败的错误码,错误码

详细描述请参见7.2 错误

详细描述请参见7.2 错误

相關文件