更新服务 - UpdateService
功能介绍
该API用于更新一个服务。

仅企业版支持服务相关功能。
URI
PUT /v2/{project_id}/edgemgr/services/{service_id}
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
project_id | 是 | String | 项目ID |
service_id | 是 | String | 服务ID |
请求参数
参数 | 是否必选 | 类型 | 描述 |
|---|---|---|---|
Content-Type | 是 | String | 消息体的类型(格式) 推荐您使用默认值application/json。 |
X-Auth-Token | 是 | String | 用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 |
ief-instance-id | 否 | String | 企业版实例ID,专业版实例为空值 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
service | 否 | ServiceReqDetail object | 服务详情 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
labels | 否 | Map<String,String> | 自定义标签属性列表 |
name | 是 | String | 服务名称,只允许英文小写字母、数字、中划线,最大长度64,英文小写字母开头,数字或小写字母结尾 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
cluster_ip | 否 | String | 虚拟服务IP地址 |
external_ips | 否 | Array of strings | 外部IP列表(暂不支持) |
external_name | 否 | String | 外部域名(暂不支持) |
ports | 否 | Array of SvcPort objects | 服务需要暴露的端口列表 |
selector | 是 | Map<String,String> | 标签选择器,将选择具有指定Label标签的Pod作为管理范围 |
type | 否 | String | 服务的类型 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
name | 否 | String | 服务端口必须进行命名,而且名称只允许是{protocol}-{suffix}这种格式,其中{protocol}可以是tcp、http等,IEF根据在端口上定义的协议来提供对应的路由能力。例如“name:http-0”和“name:tcp-0”是合法的端口名,“name:http2forecast”是非法的端口号。 |
node_port | 否 | String | 当spec.type=NodePort时,指定映射到物理机的端口号 |
port | 否 | String | 服务监听的端口号 |
protocol | 否 | String | 具体的协议,比如TCP |
target_port | 否 | String | 需要转发到后端Pod的端口号 |
响应参数
状态码为 200 时:
参数 | 参数类型 | 描述 |
|---|---|---|
service | ServiceRespDetail object | 服务详情 |
参数 | 参数类型 | 描述 |
|---|---|---|
created_at | String | 创建时间 |
id | String | 服务ID |
meta_data | SvcMetadata object | 服务的静态属性 |
project_id | String | 租户ID |
spec | SvcSpec object | 服务的动态属性 |
updated_at | String | 更新时间 |
参数 | 参数类型 | 描述 |
|---|---|---|
labels | Map<String,String> | 自定义标签属性列表 |
name | String | 服务名称,只允许英文小写字母、数字、中划线,最大长度64,英文小写字母开头,数字或小写字母结尾 |
参数 | 参数类型 | 描述 |
|---|---|---|
cluster_ip | String | 虚拟服务IP地址 |
external_ips | Array of strings | 外部IP列表(暂不支持) |
external_name | String | 外部域名(暂不支持) |
ports | Array of SvcPort objects | 服务需要暴露的端口列表 |
selector | Map<String,String> | 标签选择器,将选择具有指定Label标签的Pod作为管理范围 |
type | String | 服务的类型 |
参数 | 参数类型 | 描述 |
|---|---|---|
name | String | 服务端口必须进行命名,而且名称只允许是{protocol}-{suffix}这种格式,其中{protocol}可以是tcp、http等,IEF根据在端口上定义的协议来提供对应的路由能力。例如“name:http-0”和“name:tcp-0”是合法的端口名,“name:http2forecast”是非法的端口号。 |
node_port | String | 当spec.type=NodePort时,指定映射到物理机的端口号 |
port | String | 服务监听的端口号 |
protocol | String | 具体的协议,比如TCP |
target_port | String | 需要转发到后端Pod的端口号 |
状态码为 400 时:
参数 | 参数类型 | 描述 |
|---|---|---|
error_code | String | 异常错误信息编码 |
error_message | String | 异常错误信息描述 |
状态码为 500 时:
参数 | 参数类型 | 描述 |
|---|---|---|
error_code | String | 异常错误信息编码 |
error_message | String | 异常错误信息描述 |
请求示例
{
"service" : {
"meta_data" : {
"name" : "service-example",
"labels" : { }
},
"spec" : {
"cluster_ip" : "None",
"external_ips" : [ ],
"external_name" : "",
"ports" : [ {
"name" : "http-0",
"port" : "8888",
"target_port" : "80",
"protocol" : "TCP",
"node_port" : ""
} ],
"selector" : {
"app" : "ief-nginx"
},
"type" : ""
}
}
} 响应示例
状态码为 200 时:
{
"service" : {
"id" : "81acf9ff-de6d-4736-8d1a-f43bb058e79d",
"project_id" : "e78acc02d9d141eda5ca8e88fa35f6f8",
"meta_data" : {
"name" : "service-example"
},
"spec" : {
"selector" : {
"app" : "ief-nginx"
},
"ports" : [ {
"name" : "http-0",
"protocol" : "TCP",
"port" : "8888",
"target_port" : "80"
} ],
"cluster_ip" : "None"
},
"created_at" : "2020-07-08 01:23:25.845332209 +0000 UTC",
"updated_at" : "2020-07-08 01:23:25.845332209 +0000 UTC"
}
} 状态码
状态码 | 描述 |
|---|---|
200 | 更新成功 |
400 | 错误响应 |
500 | 错误响应 |
错误码
请参见错误码。

