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错误码。