- 最新动态
- 服务公告
- 产品介绍
- 快速入门
- 用户指南
- 最佳实践
- API参考
- SDK参考
- Edgectl使用指南
- 合作伙伴对接指南
- 常见问题
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
更新服务
功能介绍
更新一个服务
调试
您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。
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 |
服务详情 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
meta_data |
是 |
SvcMetadata object |
服务详情 |
spec |
是 |
SvcSpec 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_msg |
String |
错误描述信息 |
状态码: 500
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
错误码 |
error_msg |
String |
错误描述信息 |
请求示例
更新服务,暴露的端口为“8888”,转发到后端Pod的端口号为“80”,TCP协议。
{
"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 |
错误响应 |
错误码
请参见错误码。