华为云用户手册

  • 响应消息 表5 响应参数 参数 参数类型 描述 id String 环境ID。 name String 环境名称。 description String 环境描述。 project_id String 项目ID。 enterprise_project_id String 企业项目ID。 deploy_mode String 环境类型。 vpc_id String 虚拟私有云ID。 creator String 环境创建人。 create_time Integer 环境创建时间。 update_time Integer 环境修改时间。 labels Array of objects 标签,可使用标签管理服务通过标签过滤资源,请参考表6。 resources Array of objects 资源,请参考表7。 表6 labels 参数 参数类型 描述 key String 标签名称。 value String 标签值。 表7 resources 参数 参数类型 描述 id String 资源ID。 name String 资源名称。 type String 资源类型。 vpc,虚拟私有云。 eip,弹性公网IP。 elb,弹性负载均衡。 cce,云容器引擎。 ecs,弹性云服务器。 as,弹性伸缩组。 cse,微服务引擎。 dcs,分布式缓存服务。 rds,云数据库。
  • 请求示例 修改环境名称为development-env,描述设置为空,为环境增加键值对为"test": "value"的标签。 { "name": "development-env", "description": "", "labels": [ { "key": "test", "value": "value" } ] }
  • 请求消息 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 消息体的类型(格式),默认取值为“application/json;charset=utf8”。 X-Auth-Token 是 String 调用接口的认证方式分为Token和AK/SK两种,如果您使用的Token方式,此参数为必填,请填写Token的值。Token获取方式,请参考获取用户Token。 表3 请求Body参数 参数 是否必选 参数类型 描述 name 是 String 环境名称。 由英文字母、数字、中划线(-)、下划线(_)组成,并以英文字母开头,英文字母或者数字结尾,英文字母不区分大小写,长度为2~64个字符。 description 否 String 环境描述。 最大长度为128个字符。 labels 否 Array of objects 标签,可使用标签管理服务通过标签过滤资源,请参考表4。 同一个环境下最多可以添加20个标签。 表4 labels 参数 是否必选 参数类型 描述 key 是 String 标签名称。 标签用于标识资源,当您拥有相同类型的许多资源时,可以使用标签按各种维度(例如用途、所有者或环境)对资源进行分类。 长度为1到36个字符,只能包含数字、英文字母、下划线(_)、中划线(-)或中文。 value 是 String 标签值。 长度为2到43个字符,只能包含数字、英文字母、下划线(_)、点(.)、中划线(-)或中文。
  • 响应示例 { "id": "00078e9d-a61c-476e-ac63-a10c9cb2638e", "name": "development-env", "description": "", "project_id": "e7d2e9c589e5445e808a8ff0d1235aca", "enterprise_project_id": "0", "deploy_mode": "virtualmachine", "vpc_id": "29d55020-ae0e-4a18-871c-93e6976ee7bd", "creator": "ss-test", "create_time": 1610418873730, "update_time": 1610418873730, "resources": [ { "id": "329b135e-7b31-4ea6-afb9-b69017bd0a80", "type": "ecs", "name": "ecs-test" } ], "labels": [ { "key": "test", "value": "value" } ] }
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 x-engine-id 是 String 待上传配置的引擎id,获取方法请参考查询微服务引擎专享版列表。 X-Enterprise-Project-ID 否 String 企业项目id。 如果不配置此参数,则默认企业项目为“default”,ID为0。 表4 请求Body参数 参数 是否必选 参数类型 描述 upload_file 是 File 导入的文件,文件名格式为:fileName.json 文件格式为: { "data": [ { "key": "keyItem1", "value": "valueItem1", "labels":{ "1": "1" }, "status": "enabled", "value_type": "text" } ] }
  • 响应示例 查询成功 { "success": [ { "id": "7e2d346e-d907-4871-bf51-a17fc7e52ad4", "key": "2", "value": "2", "value_type": "text", "create_revision": 3, "update_revision": 3, "status": "enabled", "create_time": 1636374809, "update_time": 1636374809, "labels": { "2": "2", "environment": "production" } }, { "id": "907b3891-c691-4ae0-816f-e91eba705e28", "key": "1", "value": "1", "value_type": "text", "create_revision": 4, "update_revision": 4, "status": "enabled", "create_time": 1636374809, "update_time": 1636374809, "labels": { "1": "1", "environment": "production" } } ], "failure": [] }
  • URI POST /v1/{project_id}/kie/file 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户子项目的唯一标识,字符长度为1~64位,获取方法请参考获取项目ID。 表2 Query参数 参数 是否必选 参数类型 描述 override 是 String force:强制导入,会覆盖重复项。 skip:跳过导入,会跳过重复项。 abort:终止导入,遇到重复项会停止导入操作。 label 否 String 指定label导入,格式为:{标签key}:{标签value},如果不填则按body的label导入。
  • 请求示例 导入配置文件,当存在相同配置时,会强制导入覆盖重复项,按body的label导入。 POST https://{endpoint}/v1/{project_id}/kie/file/override=force ----WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="upload_file"; filename="custom_1663124521493.json" Content-Type: application/json ----WebKitFormBoundary7MA4YWxkTrZu0gW
  • 响应示例 状态码: 200 查询成功。 { "services": [ { "serviceId": "8aed80ea052ac04a64dfc79c24f2170224d074f5", "appId": "default", "serviceName": "test", "version": "1.0.0", "description": "this is a test", "level": "BACK", "status": "UP", "timestamp": "1650543950", "modTimestamp": "1650543950" }, { "serviceId": "dcc6c1073eab3cadb47cea2e1a874b7883b02a63", "appId": "test", "serviceName": "test1", "version": "1.0.0", "level": "BACK", "status": "UP", "timestamp": "1650544223", "modTimestamp": "1650544223" } ] }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 services Array of MicroService objects 微服务列表。 表4 MicroService 参数 参数类型 描述 serviceId String 微服务唯一标识。字符长度为1~64。正则表达式为^.*$。 environment String 用于区分微服务环境,取值为development、testing、acceptance、production。当配置为development、testing或acceptance时,可以通过批量上传schemas接口新增或者修改已存在的Schema;当配置为production时,则不可以新增或者修改Schema。默认值development。 appId String 应用App唯一标识。字符长度为1~160。 正则表达式为^[a-zA-Z0-9]$|^[a-zA-Z0-9][a-zA-Z0-9_-.][a-zA-Z0-9]$。 serviceName String 微服务名称,同一个App要保证唯一。字符长度为1~128。 正则表达式为^[a-zA-Z0-9]$|^[a-zA-Z0-9][a-zA-Z0-9_-.][a-zA-Z0-9]$。 version String 微服务版本号。字符长度为1~64。 正则表达式为^[0-9]$|^[0-9]+(.[0-9]+)$。 description String 微服务描述信息。字符长度不超过256。 level String 微服务层级:FRONT、MIDDLE、BACK。 registerBy String 微服务注册方式:SDK、PLATFORM、SIDECAR、UNKNOWN。 schemas Array of strings 微服务访问的契约内容。支持数字、字母,支持使用括号内字符做连接符(_-.),长度1-160字节,数组长度最大100个契约。 status String 微服务状态,UP表示上线,DOWN表示下线,默认值UP。 timestamp String 微服务注册时间。 modTimestamp String 最后修改UTC时间。 framework Framework object 开发框架信息。 paths Array of ServicePath objects 服务路由信息。 表5 Framework 参数 参数类型 描述 name String 微服务开发框架,默认值为UNKNOWN。 version String 微服务开发框架版本号。 表6 ServicePath 参数 参数类型 描述 Path String 路由地址。 Property Object 微服务扩展属性,可以自定义KEY和相应的Value。长度最小1字节。 状态码: 400 表7 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。 状态码: 500 表8 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。
  • 请求示例 场景一:CCE容器环境下创建组件 创建名为mycomponent的组件。组件部署使用1.2.0版本的Java技术栈,组件来源选择存储在OBS下bucket00001桶里的weather-1.0.0.jar包,部署使用的资源为id为fd92bfab-73b3-11ee-90f0-0255ac1001b3的云容器引擎。 { "name": "mycomponent", "description": "", "labels": [ { "key": "com-key", "value": "com-value" } ], "version": "2023.1102.17105", "environment_id": "b489f7b4-2539-45a1-ba71-4728961434ca", "runtime_stack": { "name": "OpenJDK8", "version": "1.2.0", "type": "Java", "deploy_mode": "container" }, "source": { "kind": "package", "url": "obs://bucket0001/weather-1.0.0.jar", "version": "", "storage": "obs" }, "tomcat_opts": { "server_xml": "" }, "refer_resources": [ { "id": "fd92bfab-73b3-11ee-90f0-0255ac1001b3", "type": "cce", } ], "replica": 1, "limit_cpu": 0.25, "limit_memory": 0.5, "request_cpu": 0.25, "request_memory": 0.5 } 场景二:E CS 虚拟机环境下创建组件 创建名为mycomponent的组件。组件部署使用1.2.0版本的Java技术栈,组件来源选择存储在OBS下bucket00001桶里的weather-1.0.0.jar包,部署使用的资源为id为67835bb3-1235-4cc9-be71-becbb2b4ca0d的弹性云服务器。 { "name": "mycomponent", "description": "", "labels": [ { "key": "com-key", "value": "com-value" } ], "version": "2023.1102.17540", "environment_id": "9a075df5-104f-4e21-9dbf-ffc3572effdf", "runtime_stack": { "name": "OpenJDK8", "version": "1.2.0", "type": "Java", "deploy_mode": "virtualmachine" }, "source": { "kind": "package", "url": "obs://bucket0001/weather-1.0.0.jar", "version": "", "storage": "obs" }, "tomcat_opts": { "server_xml": "" }, "refer_resources": [ { "id": "23598aa9-7a6b-43c7-a53a-39ca5e7290fb", "type": "ecs" } ], "replica": 1, "external_accesses": [ { "protocol": "http", "address": "192.168.0.169", "forward_port": 80 } ] }
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 Authorization 否 String 若微服务引擎专享版开启了安全认证,此参数必填。否则,无此参数。 开启了安全认证的微服务引擎专享版Token,格式为: Authorization:Bearer {Token} Token获取方法,请参考获取微服务引擎专享版用户Token。 表4 请求Body参数 参数 是否必选 参数类型 描述 serviceIds 是 Array of strings 服务ID列表,获取方法请参考查询所有微服务信息。
  • 响应参数 状态码: 200 表5 响应Body参数 参数 参数类型 描述 services Array of DelServicesRspInfo objects 需要删除的服务信息列表。 表6 DelServicesRspInfo 参数 参数类型 描述 serviceId String 微服务id。 状态码: 400 表7 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。 状态码: 500 表8 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。
  • URI DELETE /v4/{project_id}/registry/microservices 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 微服务引擎专业版,请填租户项目id,长度为1~64,获取方法请参考获取项目ID。也可以填固定值default。 微服务引擎专享版,请填固定值:default。 表2 Query参数 参数 是否必选 参数类型 描述 force 否 Boolean 是否强制删除。 true表示强制删除,false表示非强制删除。 选择强制删除会自动注销所有服务实例,并且删除相关的服务依赖关系。如果未传此参数,那么在服务拥有实例时,无法被删除。 缺省值:false。
  • URI PUT /v4/{project_id}/registry/microservices/{service_id}/instances/{instance_id}/heartbeat 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 微服务引擎专业版,请填租户项目id,长度为1~64,获取方法请参考获取项目ID。也可以填固定值default。 微服务引擎专享版,请填固定值:default。 service_id 是 String 微服务唯一标识。字符长度为1~64,正则表达式为^.*$。获取方法请参考查询所有微服务信息。 instance_id 是 String 微服务实例唯一标识。字符长度不超过64位, 正则表达式为^[A-Za-z0-9_.-]*$。获取方法请参考根据service_id查询微服务实例。
  • 响应参数 状态码: 400 表3 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。 状态码: 500 表4 响应Body参数 参数 参数类型 描述 errorCode String 错误代码。 errorMessage String 错误信息。 detail String 详细定位信息。
  • 响应消息 表3 响应参数 参数 参数类型 描述 resources Array of objects 资源,请参考表4。 表4 schemas 参数 参数类型 描述 id String 资源ID。 name String 资源名称。 type String 资源类型。 eip,弹性公网IP。 elb,弹性负载均衡。 cce,云容器引擎。 ecs,弹性云服务器。 dcs,分布式缓存服务。 rds,云数据库。 cse,ServiceComb引擎。 nacos,注册配置中心。 ms_gateway,应用网关。 subnet,子网。 acl,网络ACL。
  • 请求消息 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 消息体的类型(格式),默认取值为“application/json;charset=utf8”。 X-Auth-Token 是 String 调用接口的认证方式分为Token和AK/SK两种,如果您使用的Token方式,此参数为必填,请填写Token的值。Token获取方式,请参考认证鉴权。
  • 操作场景 微服务是业务概念,某个进程提供某种服务,那它就是个微服务。每一个服务都具有自主运行的业务功能,对外开放不受语言限制的API (最常用的是HTTP)。多个微服务组成应用程序。 下面介绍如何调用创建微服务静态信息API注册微服务my-provider后,先调用注册微服务实例API注册微服务my-provider的实例,再次调用创建微服务静态信息API注册微服务微服务my-consumer,然后调用按条件查询微服务实例API,my-consumer带着自身的serviceId去服务中心查询my-provider的实例信息。 以上微服务名称均为示例。 API的调用方法请参见如何调用API。
  • 操作步骤 调用创建微服务静态信息API注册微服务my-provider,请求示例如下: curl -k -H "x-domain-name:default" -H "x-auth-token:$Token" -XPOST "https://{cse_endpoint}/v4/default/registry/microservices" -d '{ "service": { "serviceName": "my-provider", "appId": "default", "version": "1.0.0", "description": "test", "level": "MIDDLE", "status": "UP" } }' 返回结果: {"serviceId":"918282e8562dc5fdc9a8dcd4d1baabb492190aa4"} 记录加粗显示的serviceId值,用于替换后续示例中的{providerServiceId}。 调用注册微服务实例API注册微服务my-provider的实例。 实例有效期1小时,到期自动下线。假设provider实例监听的地址为127.0.0.1:8080,请求示例如下: curl -k -H "x-domain-name:default" -H "x-auth-token:$Token" -XPOST "https://{cse_endpoint}/v4/default/registry/microservices/{providerServiceId}/instances" -d '{ "instance": { "hostName": "test", "endpoints": [ "rest:127.0.0.1:8080" ], "status": "UP", "healthCheck": { "mode": "push", "interval": 900, "times": 3 } } }' 返回结果: {"instanceId":"2be605a095ed11eabcbe0255ac100fa3"} 调用创建微服务静态信息API注册微服务my-consumer,请求示例如下: curl -k -H "x-domain-name:default" -H "x-auth-token:$Token" -XPOST "https://{cse_endpoint}/v4/default/registry/microservices" -d '{ "service": { "serviceName": "my-consumer", "appId": "default", "version": "1.0.0", "description": "test", "level": "MIDDLE", "status": "UP" } }' 返回结果: {"serviceId":"9db248934c31fc754d6e922b48ede4a5c004d3c1"} 记录加粗显示的serviceId值,用于替换后续示例中的{consumerServiceId}代替。 调用按条件查询微服务实例接口,my-consumer带着自身的serviceId去服务中心查询my-provider的实例信息。请求示例如下: curl -k -H "x-domain-name:default" -H "x-auth-token:$Token" -H "X-ConsumerId:{consumerServiceId}" -XGET "https://{cse_endpoint}/v4/default/registry/instances?appId=default&serviceName=my-provider&version=0.0.0%2B" 返回结果: { "instances": [ { "instanceId": "2be605a095ed11eabcbe0255ac100fa3", "serviceId": "918282e8562dc5fdc9a8dcd4d1baabb492190aa4", "endpoints": [ "rest:127.0.0.1:8080" ], "hostName": "test", "status": "UP", "healthCheck": { "mode": "push", "interval": 150, "times": 3 }, "timestamp": "1589465646", "modTimestamp": "1589465646", "version": "1.0.0" } ] } 在实际业务中,my-consumer可从实例查询结果中的"endpoint"字段获取my-provider实例的地址,发起业务调用。 您还可以进入ServiceStage控制台,单击微服务引擎的“查看控制台”,在“服务目录”查看服务注册信息。
  • 响应示例 { "buildlog": "Starting...", "next": 25524, "phase_states": "Successful,Successful,Successful,Successful,Successful,Successful", "phases": "Init,Download,PreProcess,Build,Artifact,PostProcess" }
  • 响应消息 表3 响应参数 参数 参数类型 描述 buildlog String 返回的构建日志。 next Integer 返回的日志字符串结束位置。 phase_states String 构建阶段状态。 NotStarted:未开始 Queuing:排队中 Building:构建中 Pushing:正在推送包 Successful:成功 Failed:失败 Timeout:超时 Cancel:取消 Deleted:已删除 phases String 构建阶段名称。 Init:初始化阶段 Download:下载阶段 PreProcess:预处理阶段 Build:构建阶段 Artifact:归档阶段 PostProcess:后置处理阶段
  • 请求消息 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 消息体的类型(格式),默认取值为“application/json;charset=utf8”。 X-Auth-Token 是 String 调用接口的认证方式分为Token和AK/SK两种,如果您使用的Token方式,此参数为必填,请填写Token的值。Token获取方式,请参考获取用户Token。
  • 请求消息 表3 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 消息体的类型(格式),默认取值为“application/json;charset=utf8”。 X-Auth-Token 是 String 调用接口的认证方式分为Token和AK/SK两种,如果您使用的Token方式,此参数为必填,请填写Token的值。Token获取方式,请参考认证鉴权。
  • 响应示例 { "job": { "execution_status": "SUCCEEDED", "job_id": "JOB17cb1778-07b1-4c8f-a183-c86cffbe8f9e", "job_type": "PROVISION" }, "tasks": [ { "task_id": "Task-af75dd60-0b04-4f4b-b669-0bad38fcdd97", "task_index": 4, "task_name": "VMAPP_CONTEXT_PREPARE_01", "task_status": "SUCCEEDED", "created_at": "2024-06-06T15:55:31.115Z", "update_at": "2024-06-06T15:55:31.136Z", "messages": "{}" }, { "task_id": "Task-50110d26-3973-49e1-95d3-d46755e865af", "task_index": 5, "task_name": "VMAPP_UPGRADE_002", "task_status": "SUCCEEDED", "created_at": "2024-06-06T15:55:31.136Z", "update_at": "2024-06-06T15:55:31.36Z", "messages": "{}" } ], "task_count": 2 }
  • URI GET /v3/{project_id}/cas/jobs/{job_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户项目ID。获取方法,请参考获取项目ID。 job_id 是 String 部署任务ID,为应用中创建组件、根据组件ID修改组件信息、根据组件ID下发组件任务接口响应参数的job_id。 表2 查询参数 参数 是否必选 参数类型 描述 limit 否 Integer 指定个数。 offset 否 Integer 指定偏移量。 desc 否 String 是否降序: true=desc,false=asc。
  • 响应示例 { "id": "9974a8b3-cbd7-4084-bac9-194f7d5ba3da", "name": "gray", "swimlane_group_id": "b76dad96-66cf-4ae7-aa55-11b6d630e777", "type": "GRAY", "tag": "gray", "weight": 0, "route_status": "DISABLED", "rule_match_mode": null, "project_id": "4008a952b3f44b5a919c9a48d90811f3", "rules": null, "creator": "test_user", "create_time": 1722928561358, "update_time": 1722928561358 }
  • 请求消息 表3 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 消息体的类型(格式),默认取值为“application/json;charset=utf8”。 X-Auth-Token 是 String 调用接口的认证方式分为Token和AK/SK两种,如果您使用的Token方式,此参数为必填,请填写Token的值。Token获取方式,请参考获取用户Token。
  • 响应消息 表4 响应参数 参数 参数类型 描述 id String 泳道ID。 name String 泳道名称。 swimlane_group_id String 所属的泳道组ID。 type String 泳道类型。 BASE:基线泳道。 GRAY:灰度泳道。 tag String 泳道标签,根据标签来控制流量的走向。 route_status String 泳道路由状态。 ENABLE:开启路由。 DISABLED:关闭路由。 rule_match_mode String 路由规则匹配模式。 当泳道组灰度类型为基于内容,即gray_release_type为CONTENT时生效。 ALL:匹配所有的规则。 ANY:匹配任一规则。 rules Array of objects 路由规则。当泳道组灰度类型为基于内容,即gray_release_type为CONTENT时生效。请参考表5。 weight Integer 泳道流量权重,范围在0-100之间。当泳道组灰度类型为基于流量,即gray_release_type为WEIGHT时生效。 project_id String 项目ID。 create_time Integer 创建时间。 update_time Integer 更新时间。 creator String 创建人。 表5 rules 参数 参数类型 描述 type String 灰度匹配规则类型。当前只支持HEADER,即基于Header头进行匹配。 key String 键。 value String 值。 condition String 匹配条件。 EXACT:精确匹配。 PREFIX:前缀匹配。 REGEX:正则匹配。
  • 请求示例 修改id为ba1ca687-1895-4fc3-88ca-9db02ce2a14e的泳道组的名称、描述、流量入口网关以及目标服务。 { "name": "test", "description": "test-descption", "gateways": [ { "id": "71949725-9c8f-483a-a05f-74d33ff1613e", "name": "microGateway-cy8bhr", "engine_id": "d68a5ca7-b5b6-4917-a464-0adef94b8067", "target_services": [ { "id": "8177d237-b912-4167-a90d-33c603610d0b", "host": "provider..demo-java-chassis-cse-v2.servicecomb", "name": "provider", "engine_type": "servicecomb", "engine_id": "d68a5ca7-b5b6-4917-a464-0adef94b8067" } ] } ] }
共100000条