• 沒有找到結果。

5.2 微服务

5.2.4 创建微服务静态信息

功能介绍

在注册微服务实例前需要创建服务静态信息,之后注册的微服务实例根据service_id这 个字段与静态信息关联,一个服务对应对多个实例。

service_id可以定制。如果定制了,系统将使用定制的service_id;如果没有定制,系统 会随机生成service_id。

接口约束

调试

您可以在API Explorer中调试该接口。

URI

POST /v4/{project_id}/registry/microservices

5-26 路径参数

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

project_id 是 String 租户子项目的唯一标识,字符长 度为1~64。

请求参数

5-27 请求 Header 参数

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

Authorization 否 String 若微服务引擎专享版开启了安全 认证,此参数必填。

请参考访问开启了安全认证的微

服务引擎专享版的接口

5-28 请求 Body 参数

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

service 否

MicroService

object 微服务信息。

rules 否 Array of Rule

objects 黑白名单信息。

instances 否 Array of

MicroServiceInsta nce objects

实例信息。

tags 否 Object 微服务扩展属性,可以自定义

KEY和相应的Value。长度最 小1字节。

5-29 MicroService

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

serviceId 否 String 微服务唯一标识。字符长度为 1~64。正则表达式为^.*$

environment 否 String 用于区分微服务环境,取值为 development、testing、

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 微服务访问契约内容的外键ID,

数组长度最大100个契约。

status 否 String 微服务状态,UP表示上线,

DOWN表示下线,默认值UP timestamp 否 String 微服务注册时间

modTimesta

mp 否 String 最后修改UTC时间

framework 否

Framework

object 开发框架信息

paths 否 Array of

ServicePath

objects

服务路由信息

5-30 Framework

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

name 否 String 微服务开发框架,默认值为

UNKNOWN。

version 否 String 微服务开发框架版本号。

5-31 ServicePath

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

Path 否 String 路由地址。

Property 否 Object 微服务扩展属性,可以自定义

KEY和相应的Value。长度最小1 字节。

5-32 Rule

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

ruleId 否 String 自定义ruleId。

ruleType 否 String rule类型:WHITE或者BLACK。

attribute 否 String 如果是tag_xxx开头,则按Tag过 滤attribute属性,否则,则按

"serviceId", "AppId",

"ServiceName", "Version",

"Description", "Level",

"Status"过滤。

pattern 否 String 匹配规则,正则表达式,长度1

到64。

description 否 String rule描述。

timestamp 否 String 只有获取rule时返回使用,创建 rule的时间。

modTimesta

mp 否 String 更新时间。

5-33 MicroServiceInstance

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

instanceId 否 String 实例id,唯一标识。创建实例,

instanceId由service-center产 生。

serviceId 否 String 微服务唯一标识。创建实例时,

以url里面的为准,不用这里的 serviceId。

version 否 String 微服务版本号。

hostName 是 String 主机信息。

参数 是否必选 参数类型 描述 endpoints 是 Array of

strings 访问地址信息。

status 否 String 实例状态:UP、DOWN、

STARTING、OUTOFSERVICE,

默认值UP。

properties 否 Object 微服务扩展属性,可以自定义 KEY和相应的Value。长度最小1 字节。

healthCheck 否

HealthCheck

object 健康检查信息。

dataCenterInf

o 否

DataCenterIn

fo object

数据中心信息。

timestamp 否 String 实例创建时间戳,自动生成。

modTimesta

mp 否 String 更新时间。

5-34 HealthCheck

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

mode 是 String 心跳模式: push或者pull。

port 否 Integer 端口。

interval 是 Integer 心跳间隔(秒),当值小于5秒 时,按5秒注册。

times 是 Integer 允许失败次数,不允许小于0。

5-35 DataCenterInfo

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

name 是 String 区域名称

region 是 String 区域

availableZone 是 String 可获取区

响应参数

5-36 响应 Body 参数

参数 参数类型 描述

serviceId String 微服务唯一标识。

状态码: 400

5-37 响应 Body 参数

参数 参数类型 描述

errorCode String 错误代码。

errorMessage String 错误信息。

detail String 详细定位信息。

状态码: 500

5-38 响应 Body 参数

参数 参数类型 描述

errorCode String 错误代码。

errorMessage String 错误信息。

detail String 详细定位信息。

请求示例

POST https://{endpoint}/v4/{project_id}/registry/microservices { "service" : {

"serviceName" : "helloworld", "alias" : "HelloWorld", "appId" : "TestApp", "version" : "1.0.1",

"description" : "some descrition message!", "level" : "FRONT",

"schemas" : [ "com.test.HelloWorld" ], "status" : "UP",

"path" : "/rest/url2", "property" : {

"match" : "accurate", "local" : "force"

} } ] }}

响应示例

状态码: 200

创建成功。service_id该微服务生成的id。后续的操作都是针对该微服务ID进行操作。

{ "serviceId" : "string"

}

状态码

状态码 描述

200 创建成功。

400 错误的请求。

500 服务内部错误。

错误码

请参见ServiceComb错误码。

相關文件