华为云用户手册

  • 响应参数 状态码: 200 表5 响应Body参数 参数 参数类型 描述 instanceId String DDM实例ID。 instanceName String DDM实例名称。 jobId String 任务ID。 状态码: 400 表6 响应Body参数 参数 参数类型 描述 errCode String 业务错误码。 externalMessage String 错误信息。 状态码: 500 表7 响应Body参数 参数 参数类型 描述 errCode String 业务错误码。 externalMessage String 错误信息。
  • 响应示例 状态码: 200 ok { "instanceId" : "28e8841d0b9c4f6a9a30742ee60e1068in09", "instanceName" : "ddm-fb88-test", "jobId" : "1eb697c0-1842-43a3-8671-f562d0385cb9" } 状态码: 400 bad request { "externalMessage" : "Parameter error.", "errCode" : "DBS.280001" } 状态码: 500 server error { "externalMessage" : "Server failure.", "errCode" : "DBS.200412" }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用 IAM 服务的“获取用户Token”接口来获取。 表3 请求Body参数 参数 是否必选 参数类型 描述 restart 否 RestarInstanceInfo object 重启相关的参数。 表4 RestarInstanceInfo 参数 是否必选 参数类型 描述 type 否 String 重启的类型,soft或者hard。 soft表示软重启(只重启进程)。 hard表示强制重启(重启虚拟机)。 枚举值: soft hard
  • 请求示例 扩容按需实例的节点,需要扩容的节点数量为1。 POST https://{endpoint}/v2/{project_id}/instances/{instance_id}/action/enlarge { "flavor_id" : "8f2e696c-a9c1-30bd-af90-25522bc67606", "node_number" : 1 } 扩容按需实例的节点,实例有多个组,需要扩容的节点数量为1。 POST https://{endpoint}/v2/{project_id}/instances/{instance_id}/action/enlarge { "flavor_id" : "8f2e696c-a9c1-30bd-af90-25522bc67606", "group_id" : "f080abf2010d45118068c28c8958f5fcgr09", "node_number" : 1 } 扩容包周期实例的节点,需要扩容的节点数量为1,自动从账户余额中支付。 POST https://{endpoint}/v2/{project_id}/instances/{instance_id}/action/enlarge { "flavor_id" : "8f2e696c-a9c1-30bd-af90-25522bc67606", "node_number" : 1, "is_auto_pay" : true, "available_zones": [ "az1xahz" ] }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务的“获取用户Token”接口来获取。 表3 请求Body参数 参数 是否必选 参数类型 描述 flavor_id 是 String 当前进行节点扩容的DDM实例底层虚拟机规格ID。 node_number 是 Integer 需要扩容的节点个数。 group_id 否 String 组ID,指定当前进行节点扩容的组。当实例的组大于1时,必填。 is_auto_pay 否 Boolean 变更包年包月实例规格时可指定,表示是否自动从账户中支付,此字段不影响自动续订的支付方式。 true,表示自动从账户中支付。 false,表示手动从账户中支付,默认为该方式。 available_zones 否 Array of strings 可用区Code,仅包年包月实例传递该参数,个数需与node_number一致。请参见地区和终端节点。
  • 响应示例 状态码: 200 ok { "instanceId" : "28e8841d0b9c4f6a9a30742ee60e1068in09", "instanceName" : "ddm-fb88-test", "jobId" : "1eb697c0-1842-43a3-8671-f562d0385cb9" } 状态码: 400 bad request { "externalMessage" : "Parameter error.", "errCode" : "DBS.280001" } 状态码: 500 server error { "externalMessage" : "Server failure.", "errCode" : "DBS.200412" }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 instanceId String DDM实例ID。 instanceName String DDM实例名称,仅按需实例时会返回该参数。 jobId String 任务ID,仅按需实例时会返回该参数。 orderId String 订单号,仅包年包月实例时返回该参数。 状态码: 400 表5 响应Body参数 参数 参数类型 描述 errCode String 业务错误码。 externalMessage String 错误信息。 状态码: 500 表6 响应Body参数 参数 参数类型 描述 errCode String 业务错误码。 externalMessage String 错误信息。
  • 请求消息 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务的“获取用户Token”接口来获取。 表3 请求Body参数 参数 是否必选 参数类型 描述 name 是 String DDM实例组名称,命名要求如下。 长度为4-64个字符。 必须以字母开头。 可以包含字母、数字、中划线、下划线、不能包含其它特殊字符。 最小长度:4 最大长度:64 type 是 String 实例组的类型。 rw:读写组 r:只读组 flavor_id 是 String 规格ID。 nodes 是 Array of 表 NodeInfo objects 节点信息列表。 最小:1 最大:32 表4 NodeInfo 参数 是否必选 参数类型 描述 available_zone 是 String 节点可用区。取值非空,请参见地区和终端节点。 subnet_id 是 String 子网ID。
  • 响应消息 正常响应参数说明 表5 响应Body参数 参数 参数类型 描述 instance_id String 实例ID。 job_id String 创建组的任务ID。 仅创建按需实例时会返回该参数。 order_id String 订单号,创建包年包月时返回该参数。 正常响应示例 { "instance_id" : "28e8841d0b9c4f6a9a30742ee60e1055****", "job_id" : "1eb697c0-1842-43a3-8671-f562d038****" } 异常响应 请参见异常请求结果。
  • 请求示例 创建DDM实例组,组类型:读写,节点数为1个。 POST https://{endpoint}/v3/{project_id}/instances/{instance_id}/groups { "name": "group-1", "type": "rw", "flavor_id": "a615922f-0ed8-3691-aad4-a595185febba", "nodes": [ { "available_zone": "az1", "subnet_id": "ead1e945-ca89-45dd-bcce-4a30b2054c22" } ] }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 id String 微服务引擎ID。 name String 微服务引擎专名称。 jobId Integer 微服务引擎执行的任务ID。 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 detail String 详细定位信息。 状态码: 500 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 detail String 详细定位信息。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 id String 微服务引擎ID。 name String 微服务引擎专名称。 jobId Integer 微服务引擎执行的任务ID。 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 detail String 详细定位信息。 状态码: 500 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 detail String 详细定位信息。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String IAM-Token。 X-Enterprise-Project-ID 否 String 如果不带则默认企业项目为"default",ID为"0"。 缺省值:0 表3 请求Body参数 参数 是否必选 参数类型 描述 authType 是 String authType安全认证类型,支持填写NONE和RBAC。
  • URI GET /v2/{project_id}/enginemgr/engines 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户子项目的唯一标识。字符长度为1~64。 表2 Query参数 参数 是否必选 参数类型 描述 offset 是 Integer 偏移量。 limit 是 String 每页显示的条目数量。 type 否 String 查询所有微服务引擎需要将该值设置为ALL,查询ServiceComb引擎专享版需要将该值设置为 CS E,查询注册配置中心需要将该值设置为Nacos,查询网关需要将该值设置为MicroGateway
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 X-Enterprise-Project-ID 否 String 如果不带则默认企业项目为"default",ID为"0"。 Content-Type 是 String 该字段内容填为 "application/json;charset=UTF-8"。 Accept 是 String 该字段内容填为 "application/json"。
  • 响应示例 状态码: 200 查询微服务引擎列表响应结构体。 { "total" : 0, "data" : [ { "id" : "891bf21a-4024-4f47-b38c-bd259ca8f10a", "name" : "test", "enterpriseProjectId" : "0", "enterpriseProjectName" : "default", "type" : "CSE", "description" : "string", "flavor" : "cse.s1.medium2", "payment" : "0", "authType" : "NONE", "status" : "Available", "externalAddress" : "192.168.0.169", "serviceEndpoint" : { "kie" : { "masterEntrypoint" : "https://192.168.0.169:30110", "masterEntrypointIpv6" : "https://[2407:c080:11f0:11:b11d:675c:97ab:65f6]:30110", "slaveEntrypoint" : "string", "slaveEntrypointIpv6" : "string", "type" : "REGISTRY" } }, "publicAddress" : "", "publicServiceEndpoint" : { "kie" : { "masterEntrypoint" : "", "masterEntrypointIpv6" : "", "slaveEntrypoint" : "", "slaveEntrypointIpv6" : "", "type" : "REGISTRY" } }, "totalInstance" : 200, "usedInstance" : 0, "availableInstance" : 200, "version" : "2.3.1", "latestVersion" : "2.3.4", "createTime" : 1635576800332, "dueTo" : 4102415999000, "latestJobId" : 12339, "engineAdditionalActions" : [ "Retry" ], "specType" : "CSE2", "reference" : { "vpc" : "vpc-test", "azList" : [ "string" ], "networkId" : "88550801-e892-4f8e-b21b-f7147f604f69", "subnetCidr" : "192.168.0.0/24", "subnetCidrV6" : "2407:c080:11f0:11::/64", "subnetGateway" : "192.168.0.2", "publicIpId" : "", "serviceLimit" : 200, "instanceLimit" : 200, "inputs" : { "is_arm_cluster" : "true", "nodeFlavor" : "s6.large.2" } } } ] }
  • 响应参数 状态码: 200 表10 响应Body参数 参数 参数类型 描述 id String 微服务引擎ID。 name String 微服务引擎专名称。 jobId Integer 微服务引擎执行的任务ID。 状态码: 400 表11 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 detail String 详细定位信息。 状态码: 500 表12 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 detail String 详细定位信息。
  • 请求示例 POST https://{endpoint}/v2/{project_id}/enginemgr/engines { "name" : "string", "description" : "string", "payment" : "string", "flavor" : "cse.s1.small2", "azList" : [ "string" ], "authType" : "NONE", "vpc" : "string", "networkId" : "string", "subnetCidr" : "string", "publicIpId" : "string", "specType" : "string", "inputs" : { "nodeFlavor" : "string" } }
  • 响应示例 状态码: 200 查询微服务引擎任务详情结构体。 { "id" : 12339, "engineId" : "ad76972c-a743-4770-859c-c98a680f4d98", "type" : "Create", "description" : "", "status" : "Finished", "scheduling" : 0, "createUser" : "test", "startTime" : 1636540095901, "endTime" : 1636540460230, "context" : "string", "tasks" : [ { "taskName" : "resourcePrepare", "taskNames" : [ "TenantTaskExecutor" ], "status" : "Finished", "startTime" : 1636540100216, "endTime" : 1636540110215, "taskExecutorBrief" : { "duration" : 6000, "description" : "资源准备" }, "tasks" : [ { "jobId" : 12339, "id" : 89117, "type" : "Create", "assigned" : "string", "taskName" : "TenantTaskExecutor", "engineName" : "test", "taskOrder" : 0, "status" : "Init", "startTime" : 1636540100216, "endTime" : 1636540110215, "createTime" : 1636540095910, "updateTime" : 1636540110230, "timeout" : -1, "log" : "string", "output" : "{}", "taskExecutorBrief" : { "duration" : 6000, "description" : "租户处理" } } ] } ] }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 X-Enterprise-Project-ID 否 String 如果不带则默认企业项目为"default",ID为"0"。 Content-Type 是 String 该字段内容填为 "application/json;charset=UTF-8"。 Accept 是 String 该字段内容填为 "application/json"。
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 id Integer 任务ID engineId String 任务所属引擎ID type String 任务类型 枚举值: Create Delete Upgrade Modify description String 任务描述 status String 任务状态 枚举值: Init Executing Error Timeout Finished scheduling Integer 任务是否正在执行,0表示不在执行,1表示执行中 createUser String 任务创建者 startTime Long 任务开始时间 endTime Long 任务结束时间 context String 任务执行上下文 tasks Array of TaskSteps objects 任务包含的处理阶段 表4 TaskSteps 参数 参数类型 描述 taskName String 处理阶段名称 taskNames Array of strings 当前处理阶段包含的处理步骤名称列表 status String 处理阶段状态 枚举值: Init Executing Error Timeout Finished startTime Long 处理阶段开始时间 endTime Long 处理阶段结束时间 taskExecutorBrief TaskExecutorBrief object 处理阶段元数据 tasks Array of Task objects 处理步骤 表5 Task 参数 参数类型 描述 jobId Integer 子任务所属任务ID id Long 子任务ID,使用uuid type String 子任务的类型 枚举值: Create Delete Upgrade Modify assigned String 子任务的执行者 taskName String 子任务名称 engineName String 子任务所属引擎名称 taskOrder Integer 子任务执行的顺序, 从小到大 status String 子任务状态 枚举值: Init Executing Error Timeout Finished startTime Long 子任务开始时间 endTime Long 子任务结束时间 createTime Long 子任务创建时间 updateTime Long 子任务更新时间 timeout Integer 子任务是否超时 log String 子任务详细信息,执行过程中产生的辅助信息 output String 子任务输出信息 缺省值:{} taskExecutorBrief TaskExecutorBrief object 任务元数据 表6 TaskExecutorBrief 参数 参数类型 描述 duration Long 子任务持续时长 description String 子任务描述 状态码: 400 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 detail String 详细定位信息。 状态码: 500 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 detail String 详细定位信息。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 id String 微服务引擎ID。 name String 微服务引擎专名称。 jobId Integer 微服务引擎执行的任务ID。 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 detail String 详细定位信息。 状态码: 500 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 detail String 详细定位信息。
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 id String 微服务引擎ID。 name String 微服务引擎专名称。 jobId Integer 微服务引擎执行的任务ID。 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 detail String 详细定位信息。 状态码: 500 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 detail String 详细定位信息。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String IAM-Token X-Enterprise-Project-ID 否 String 如果不带则默认企业项目为"default",ID为"0" 缺省值:0 Content-Type 是 String 该字段内容填为 "application/json;charset=UTF-8" Accept 是 String 该字段内容填为 "application/json"
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 X-Enterprise-Project-ID 否 String 如果不带则默认企业项目为"default",ID为"0"。 Content-Type 是 String 该字段内容填为 "application/json;charset=UTF-8"。 Accept 是 String 该字段内容填为 "application/json"。
  • 响应示例 状态码: 200 查询微服务引擎详情响应结构体。 { "id" : "891bf21a-4024-4f47-b38c-bd259ca8f10a", "name" : "test", "description" : "string", "authType" : "NONE", "flavor" : "cse.s1.medium2", "payment" : "0", "version" : "2.3.1", "latestVersion" : "2.3.4", "status" : "Creating", "beDefault" : true, "createUser" : "string", "createTime" : 1635576800332, "cceSpec" : { "id" : 7465, "engineId" : "891bf21a-4024-4f47-b38c-bd259ca8f10a", "specType" : "CCE", "cluster" : "", "clusterId" : "41115a6f-912f-11eb-9af9-0255ac100188", "clusterNodes" : { "clusterNodes" : [ { "id" : "c13aaf5c-2192-421c-8e03-522e2b9a06b5", "az" : "test", "ip" : "172.31.25.277", "label" : "test", "status" : "Active" } ] }, "flavor" : "string", "region" : "test", "version" : "", "extendParam" : "" }, "externalEntrypoint" : { "externalAddress" : "192.168.0.169", "publicAddress" : "", "serviceEndpoint" : { "serviceCenter" : { "masterEntrypoint" : "https://192.168.0.169:30110", "masterEntrypointIpv6" : "https://[2407:c080:11f0:11:b11d:675c:97ab:65f6]:30110", "slaveEntrypoint" : "", "slaveEntrypointIpv6" : "", "type" : "REGISTRY" } }, "publicServiceEndpoint" : { "serviceCenter" : { "masterEntrypoint" : "", "masterEntrypointIpv6" : "", "slaveEntrypoint" : "", "slaveEntrypointIpv6" : "", "type" : "REGISTRY" } } }, "reference" : { "vpc" : "vpc-test", "azList" : [ "string" ], "networkId" : "88550801-e892-4f8e-b21b-f7147f604f69", "subnetCidr" : "192.168.0.0/24", "subnetCidrV6" : "2407:c080:11f0:11::/64", "subnetGateway" : "192.168.0.2", "publicIpId" : "", "serviceLimit" : 200, "instanceLimit" : 200, "inputs" : { "nodeFlavor" : "s6.large.2", "is_arm_cluster" : "false" } }, "latestJobId" : 12339, "enterpriseProjectId" : "0", "enterpriseProjectName" : "default", "engineAdditionalActions" : [ "Noting" ], "specType" : "CSE2", "type" : "CSE", "projectId" : "string", "vmIds" : [ ] }
  • 响应示例 状态码: 200 查询微服务引擎的规格列表响应结构体。 { "total" : 0, "data" : [ { "flavor" : "cse.s1.small2", "description" : "string", "spec" : [ { "availableCpuMemory" : "2-4", "linear" : false, "availablePrefix" : "s,c,t" } ] } ] }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 total Integer 微服务引擎的规格总个数 data Array of FlavorBrief objects 微服务引擎的规格详情 表5 FlavorBrief 参数 参数类型 描述 flavor String 微服务引擎的规格 description String 微服务引擎的规格描述 spec EngineSpec object 微服务引擎专享版相关参数。 表6 EngineSpec 参数 参数类型 描述 availableCpuMemory String CPU及内存规格。 linear String 是否为线性规格。 availablePrefix String 可用节点规格类型前缀。 状态码: 400 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 detail String 详细定位信息。 状态码: 500 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。 detail String 详细定位信息。
  • URI GET /v2/{project_id}/enginemgr/flavors 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户子项目的唯一标识。字符长度为1~64。 表2 Query参数 参数 是否必选 参数类型 描述 specType 否 String 微服务引擎的应用部署类型,查询ServiceComb引擎专享版需要将该值设置为CSE2,注册配置中心设置为Nacos2,应用网关(公测)为MicroGateway。
  • 配置中心概述 配置中心用来管理微服务应用的配置。微服务连接配置中心,能够从配置中心获取配置信息及其变化。配置中心还是其他微服务管控功能的核心部件,比如服务治理规则的下发,也是通过配置中心实现的。 ServiceComb引擎支持的配置中心为:config-center和kie。 当ServiceComb引擎版本为1.x时,取值为config-center。 当ServiceComb引擎版本为2.x时,取值为kie或config-center,推荐使用kie作为配置中心。 本章节介绍不同微服务开发框架使用配置中心的一些开发细节,包括如何配置依赖、连接配置中心有关的配置项等,并简单的介绍微服务应用中如何读取配置和响应配置变化。 ServiceComb引擎使用kie作为配置中心。 微服务默认会读取配置中心应用配置、服务配置、自定义配置。应用配置指环境、应用和微服务相同的配置;服务配置指环境、应用、微服务名称和微服务相同的配置。微服务可以在配置文件中指定一个特定的label及label值,自定义配置指label及label值与微服务相同的配置。 简单的场景,可以使用应用级配置和服务级配置。应用级配置被该应用下的所有微服务共享,是公共配置;服务级配置只对具体微服务生效,是独享配置。 复杂的场景,可以通过使用customLabel和customLabelValue来定义配置。例如某些配置,是对所有应用共享的,那么就可以使用这个机制。在配置文件增加如下配置(以Spring Cloud为例): spring: cloud: servicecomb: config: kie: customLabel: public# 默认值是public customLabelValue: default # 默认值是空字符串 只要配置项带有public标签,并且标签值为default,这些配置项就会对该微服务生效。 把配置中心当成数据库的一个表tbl_configurations,key是主键,每个label都是属性。 客户端会根据如下3个条件查询配置: 自定义配置 select * from tbl_configurations where customLabel=customLabelValue & match=false 应用级配置 select * from tbl_configurations where app=demo_app & environment=demo_environment & match=true 服务级配置 select * from tbl_configurations where app=demo_app & environment=demo_environment & service=demo_service & match=true 其中,match为true的时候,表示有且只有条件里面指定的属性;match为false的时候,表示除了条件里面的属性,允许有其他的属性。还可以给标签app指定多个应用,或者给标签service指定多个服务,这样配置项就可以对多个服务和应用生效,非常灵活。 ServiceComb引擎的TEXT、XML等类型,SDK会简单的当成key-value对使用;YAML和Properties类型, SDK会解析内容,应用程序将内容作为实际的应用程序配置项。比如: 类型:TEXT key: cse.examples.hello value: World 应用程序会发现1个配置项: cse.examples.hello = World。 类型:YAML key: cse.examples.hello value: | cse: key1: value1 key2: value2 应用程序会发现2个配置项: cse.key1 = value1和cse.key2 = value2。 ServiceComb引擎使用config-center作为配置中心。 微服务默认会读取配置中心全局配置、服务配置。全局配置指环境和微服务相同的配置;服务配置指环境、应用、微服务名称和微服务相同的配置。 ServiceComb引擎只支持key-value的配置项。如果用户需要使用yaml格式的配置文件,可以使用具体SDK提供的fileSource功能。通过在配置文件中指定fileSource的key列表,SDK会将这些key对应的value全部当成yaml解析。以Spring Cloud为例,在bootstrap.yml中增加配置项: spring: cloud: servicecomb: config: fileSource: file1.yaml,file2.yaml 并且在配置中心创建配置,“配置项”及其对应的“值”的示例如下表所示。其中,值的格式为yaml。 配置项 值 file1.yaml cse.example.key1: value1 cse.example.key2: value2 file2.yaml cse.example.key3: value3 cse.example.key4: value4 配置创建方法请参考配置管理中的“创建配置”操作。 应用程序中会发现4个配置项:cse.example.key1=value1,cse.example.key2=value2,cse.example.key3=value3和cse.example.key4=value4。 父主题: 使用配置中心
共100000条