- 产品文档
- > 计算服务
- > 容器服务
- > 开发指南
- > 容器 OpenAPI
- > Ingress 接口
Ingress 接口
1. 接口详情
1.1 GetLoadBalancers
GET /ing?Action=GetLoadBalancers[&Type=mix][&Limit=10][&Offset=20]&Version=2017-12-05
描述
获取指定用户经典负载均衡实例
参数说明
- TenantId: 租户ID
- Namespace: 命名空间
- [Type]: 负载均衡类型,mix|tcp, 默认为全部
- [Offset]: 起始偏移量,需要>0 ,默认值0
- [Limit]: 获取实例数目,需要>0,<200,默认值50
返回码
- 200 成功
- 404 租户不存在
- 500 内部错误
结果说明
- InstanceId: 实例ID
- TenantId: 租户ID
- Name: 实例名称
- Type: 实例类型
- Network: 网络类型
- Description: 用户自定义描述
- Address: 实例对应的外网ip地址
- Status: 实例状态,CREATING:创建中,WORKING:正常工作,DELETING:删除中,UPDATING: 更新中,FAILED:异常(创建或删除失败)
- SubStatus: 实例子状态,CREATE_FAILED: 创建失败, DELETE_FAILED:删除失败
- InstanceStatus: 后端服务器综合状态,只要一个端口为DOWN,则为DOWN,其余情况为UP
- Createtime: 创建时间
- Updatetime: 修改时间
- TopAzInfos: [
TopAz: az信息
SubNetId: 子网Id
]
示例
请求:
GET /ing?Action=GetLoadBalancers&Version=2017-12-05
HEADER:
Content-type: application/json
X-Product-Id: ${tenantId}
Namespace: ${namespace}
响应:
[{
"InstanceId": "default-namespace@inglb1",
"Name": "inglb1",
"Namespace": "default-namespace",
"TenantId": "86abf149903840199ffdffc86e408d74",
"Network": "public",
"Description": "for qa smoke create",
"Status": "WORKING",
"SubStatus": "WORKING",
"Address": "115.238.125.52",
"Createtime": 1487750503291,
"Updatetime": 1487751710560,
"Type": "vpc_mix",
"InstanceStatus": "UP",
"TopAzInfos": [
"TopAz": "cn-eash-1a",
"SubNetId": "01a6b5e8-5b13-49b9-8cbe-23f7cf89f124"
]
}]
1.2 GetLoadBalancer
GET /ing?Action=GetLoadBalancer&InstanceId=&Version=2017-12-05
描述
获取单个实例详情
参数说明
- TenantId: 租户ID
- InstanceId: 实例Id
结果说明
- InstanceId: 实例ID
- TenantId: 租户ID
- Name: 实例名称
- Namespace: 命名空间
- Type: 实例类型
- Network: 网络类型
- Description: 用户自定义描述
- Address: 实例对应的外网ip地址
- Status: 实例状态,CREATING:创建中,WORKING:正常工作,DELETING:删除中,UPDATING: 更新中,FAILED:异常(创建或删除失败)
- SubStatus: 实例子状态,CREATE_FAILED: 创建失败, DELETE_FAILED:删除失败
- InstanceStatus: 后端服务器综合状态,只要一个端口为DOWN,则为DOWN,其余情况为UP
- InstanceNum: 后端实例数目
- Createtime: 创建时间
- Updatetime: 修改时间
- Standard: {
  BandwidthLimit: 带宽限制
  ChargeType: 计费类型,hour按量, month包月
emsp; ChargeMode: 计费方式,netflow流量,bandwidth带宽
  AutoRenewPeriod: 自动续费, 0 表示关闭,非0表示续费时间,单位为月
}
- TopAzInfos: [
  TopAz: az信息
  SubNetId: 子网Id
]
- VpcId: vpc Id
- Listeners: {
"ListenerId": 监听ID,
"Name": 监听名字,
"Status": 监听状态,需要状态为ON时才允许设置
"ListenerPort": 监听端口
"Protocol": 监听协议
"CreateTime": 创建时间
"UpdateTime": 修改时间
"TraceVip": vip 跟踪,在请求头中带NLB-VIP字段,用于监控统计
"Balance": 负载均衡算法,目前支持 roundrobin和leastconn两种算法
"Gzip": 1 代表打开gip功能,0代表关闭GZIP
"CipherSuiteId": 加密套件ID, https可以指定加密套件
"Cluster": 后端集群,http可以根据path/domain来分流,可以有多个,对于tcp只有一个后端集群
[{
"Id": 集群ID
"CertId": https 证书id
"Name": 集群名字
"ClientTimeout": 超时时间
"Path": 路径
"ServerName": 域名
"ClusterPort": 集群端口
"CreateTime": 创建时间
"UpdateTime": 修改时间
"Service": 服务名字
"Monitor": 健康检查
{
"Protocol": 检查协议
"Fall": 失败阈值
"Rise": 健康阈值
"Url": 健康检查url, http使用
"Period": 健康检查间隔
"Rstatus": 期望返回码
"Timeout": 超时时间
}
}]
}
- SecurityGroups: 安全组ID
- VpcIps: 实例在vpc中使用的ip地址
- Stanard: 规格相关的信息
- Limit: 限制信息
{
"TGroupLimit": 目标组个数限制
"TGroupInstanceLimit": 目标组后端个数限制
"ListenerLimit": 监听器个数限制
"PathLimit": 单个监听器Path限制
"DomainLimit": 单个监听器域名限制
}
返回码
- 204 查询成功
- 404 实例不存在
- 403 权限错误
- 500 内部错误
示例
请求:
GET /ing?Action=GetLoadBalancer&InstanceId=default-namespace@inglb1&Version=2017-12-05
HEADER:
Content-type: application/json
X-Product-Id: ${tenantId}
响应:
{
"InstanceId": "default-namespace@inglb1",
"TenantId": "34493fd33b874583ac7b24c1f60138fd",
"Name": "inglb1",
"Network": "public",
"Description": "for testSmokeDescribeLodBalancer!",
"Status": "WORKING",
"SubStatus": "WORKING",
"InstanceStatus": "UP",
"Address": "60.191.87.8",
"Createtime": 1514901357136,
"Updatetime": 1514902499054,
"InstanceNum": 1,
"VpcId": "94140c56-bf1e-4b4f-9bc9-8e6cb406e638",
"Standard": {
"ChargeMode": "netflow",
"ChargeType": "hour",
"BandwidthLimit": 1000,
"AutoRenewPeriod": 0
},
"Listeners": [
{
"Id": "5ff9f89e-62d2-4c14-b99d-91587995a02a",
"Name": "aaa",
"Status": "ON",
"ListenPort": 80,
"Protocol": "https",
"Createtime": 1514901511282,
"Updatetime": 1514901511282,
"TraceVip": 1,
"Balance": "roundrobin",
"Gzip": 1,
"CipherSuiteId": "707709d7-5fc9-4c87-92a4-99a7a10e316a",
"Clusters": [
{
"Id": "679fa686-eb2a-402d-9fc1-23c90c6bf637",
"CertId": "59ba54bf-df08-4f65-aaf7-c4c70ee64b2f",
"Name": "aaa",
"path": "/",
"clientTimeout": 900,
"serverName": "*",
"clusterPort": 0,
"Createtime": 1514901509467,
"Updatetime": 1514902497591,
"UseSamePort": 1,
"ServiceName": "default-service"
"Monitor": {
"Protocol": "tcp",
"Rise": 2,
"Fall": 3,
"Url": "",
"Timeout": 2000,
"Period": 5000,
"Rstatus": null
}
}
]
}
],
"Limit": {
"tGroupLimit": 20,
"tGroupInstanceLimit": 50,
"ListenerLimit": 10,
"PathLimit": 100,
"DomainLimit": 20
},
"TopAzInfos": [
{
"TopAz": "cn-east-1b",
"SubNetId": "61ecc606-2cbf-4a37-ab21-35f47de4dbbe"
}
],
"SecurityGroups": [
"62f814f5-85c0-4eab-8053-a079ff3252a2",
"c98659bb-13ad-45dc-b2b0-da02ebebf393"
],
"VpcIps": [
"10.177.1.99"
]
}
1.3 CheckLoadBalancerParams
POST /ing?Action=CheckLoadBalancerParams&Version=2017-12-05
描述
检查创建参数(webConsole)
参数说明
- TenantId: 租户ID
- Namespace: 命名空间
- Name: 负载均衡名字
- Type: 负载均衡类型,目前支持mix vpc_mix类型
- Network: 网络类型,public|private|idc
- Description: 用户描述信息
- Standard: {
BandwidthLimit: 带宽限制
ChargeType: 计费类型,hour按量, month包月
ChargeMode: 计费方式,netflow流量,bandwidth带宽
AutoRenewPeriod: 自动续费, 0 表示关闭,非0表示续费时间,单位为月
Period: 对于包月计费类型,指定包月时长,单位为月
}
- TopAzInfos: 指定az和子网信息
- SecurityGroups: 指定安全组
- VpcId: 指定vpc Id
结果说明
无
返回码
- 200 检查成功
- 400 参数错误
- 403 权限错误
- 409 重复创建
- 500 内部错误
示例
请求:
POST /ing?Action=CheckLoadBalancerParams&Version=2017-12-05
HEADER:
Content-type: application/json
X-Product-Id: ${tenantId}
Namespace: ${namespace}
BODY:
{
"Name": "lb-1",
"Description" : "test description",
"Type": "vpc_mix",
"Network": "public"
"TopAzInfos": [
{
"TopAz":"cn-eash-1a",
"SubNetId": "13f009c8-e661-41cd-bc58-1f4a79bb728c"
}
],
"SecurityGroups": [
"92282f88-4940-4aea-8dfc-4774fe1d90df"
],
"VpcId": "8d71d5e7-e621-46fa-9ab9-69844d698015",
"Standard": {
"ChargeType": "netflow",
"BandwithLimit": 100,
"ChargeMode": "month",
"AutoRenewPeriod": 10
}
}
响应:
无
1.4 CreateLoadBalancer
POST /ing?Action=CreateLoadBalancer&Version=2017-12-05
描述
创建实例,假如指定订单创建,则实例绑定订单; 否则使用余额下订单支付, 然后绑定实例
参数说明
- TenantId: 租户ID
- Namespace: 命名空间
- Name: 负载均衡名字
- Type: 负载均衡类型,目前支持mix vpc_mix类型
- Network: 网络类型,public|private|idc
- Description: 用户描述信息
- TopAzInfos: 指定az和子网信息
- SecurityGroups: 指定安全组
- VpcId: 指定vpc Id
- Standard: {
BandwidthLimit: 带宽限制
ChargeType: 计费类型,hour按量, month包月
ChargeMode: 计费方式,netflow流量,bandwidth带宽
AutoRenewPeriod: 自动续费, 0 表示关闭,非0表示续费时间,单位为月
Period: 对于包月计费类型,指定包月时长,单位为月
OrderId: 已经支付的订单ID
}
结果说明
- InstanceId: 实例ID
- TenantId: 租户ID
- Name: 实例名称
- Type: 实例类型
- Network: 网络类型
- Description: 用户自定义描述
- Address: 实例对应的外网ip地址
- Status: 实例状态,CREATING:创建中,WORKING:正常工作,DELETING:删除中,UPDATING: 更新中,FAILED:异常(创建或删除失败)
- SubStatus: 实例子状态,CREATE_FAILED: 创建失败, DELETE_FAILED:删除失败
- InstanceStatus: 后端服务器综合状态,只要一个端口为DOWN,则为DOWN,其余情况为UP
- InstanceNum: 后端实例数目
- Createtime: 创建时间
- Updatetime: 修改时间
- Standard: {
BandwidthLimit: 带宽限制
ChargeType: 计费类型,hour按量, month包月
ChargeMode: 计费方式,netflow流量,bandwidth带宽
AutoRenewPeriod: 自动续费, 0 表示关闭,非0表示续费时间,单位为月
}
- TopAzInfos: [
TopAz: az信息
SubNetId: 子网Id
]
返回码
- 204 创建成功
- 400 参数错误
- 403 权限错误
- 409 重复创建
- 500 内部错误
示例
请求:
POST /ing?Action=CreateLoadBalancer&Version=2017-12-05
HEADER:
Content-type: application/json
X-Product-Id: ${tenantId}
Namespace: ${namespace}
BODY:
{
"Name": "lb-1",
"Description" : "test description",
"Type": "vpc_mix",
"Network": "public"
"TopAzInfos": [
{
"TopAz":"cn-eash-1a",
"SubNetId": "13f009c8-e661-41cd-bc58-1f4a79bb728c"
}
],
"SecurityGroups": [
"92282f88-4940-4aea-8dfc-4774fe1d90df"
],
"VpcId": "8d71d5e7-e621-46fa-9ab9-69844d698015",
"Standard": {
"ChargeType": "netflow",
"BandwithLimit": 100,
"ChargeMode": "month",
"AutoRenewPeriod": 10
"Period": 20,
"OrderId": "112b8749-0fdb-4add-834a-220471a64f5d"
}
}
响应:
{
"InstanceId": "default-nm1@lb-1",
"Namespace": "default-nm1",
"TenantId": "06358fcd-7266-4bad-a664-ab697377a48e",
"Address": "60.191.87.55",
"Status": "CREATING",
"Name": "lb-1",
"Description" : "test description",
"Type": "vpc_mix",
"Network": "public"
"TopAzInfos": [
{
"TopAz":"cn-eash-1a",
"SubNetId": "13f009c8-e661-41cd-bc58-1f4a79bb728c"
}
],
"SecurityGroups": [
"92282f88-4940-4aea-8dfc-4774fe1d90df"
],
"VpcId": "8d71d5e7-e621-46fa-9ab9-69844d698015",
"Standard": {
"ChargeType": "netflow",
"BandwithLimit": 100,
"ChargeMode": "month",
"AutoRenewPeriod": 10
}
}
1.5 DeleteLoadBalancer
GET /ing?Action=DeleteLoadBalancer&InstanceId=&Version=2017-12-05
描述
删除实例
参数说明
- TenantId: 租户ID
- InstanceId: 实例Id
结果说明
- 无
返回码
- 204 删除成功
- 400 参数错误
- 403 权限错误
- 500 内部错误
示例
请求:
GET /ing?Action=DeleteLoadBalancer&InstanceId=default-nm1@lb-1&Version=2017-12-05
HEADER:
Content-type: application/json
X-Product-Id: ${tenantId}
响应:
无
1.6 UpdateLoadBalancer
POST /ing?Action=UpdateLoadBalancer&Version=2017-12-05
描述
修改实例信息,包括描述信息,安全组
参数说明
- TenantId: 租户ID
- InstanceId: 实例Id
- SecurityGroups: 安全组
- Description: 描述信息
结果说明
- 无
返回码
- 204 修改成功
- 400 参数错误
- 403 权限错误
- 500 内部错误
示例
请求:
POST /ing?Action=UpdateLoadBalancer&Version=2017-12-05
HEADER:
Content-type: application/json
X-Product-Id: ${tenantId}
BODY:
{
"InstanceId": "default-nm1@lb1",
"SecurityGroups": [
"93821c129dce40c1b157734138d782d5"
]
}
响应:
无
1.7 UpdateLoadBalancerSpec
POST /ing?Action=UpdateLoadBalancerSpec&Version=2017-12-05
描述
删除实例
参数说明
- TenantId: 租户ID
- InstanceId: 实例Id
- Standard: {
BandwidthLimit: 带宽限制
ChargeType: 按量转包年包月
ChargeMode: 计费方式,流量,带宽
AutoRenewPeriod: 自动续费, 0 表示关闭,非0表示续费时间,单位为月
OrderId: 对于规格修改的,包括带宽,计费方式修改的,没有OrderId,则后台自动下单,使用余额支付,否则使用订单支付
}
结果说明
- 无
返回码
- 204 修改成功
- 400 参数错误
- 403 权限错误
- 500 内部错误
示例
请求:
POST /ing?Action=UpdateLoadBalancerSpec&Version=2017-12-05
HEADER:
Content-type: application/json
X-Product-Id: ${tenantId}
BODY:
{
"InstanceId": "default-nm1@lb1",
"Standard": {
"BandwidthLimit": 100
}
}
响应:
无
1.8 RenewOrder
GET /ing?Action=RenewOrder&Version=2017-12-05
描述
下续费订单,并支付, 预付费实例有效
参数说明
- TnantId: 租户ID
- InstanceId: 实例Id
- Period: 时长,单位10
结果说明
- OrderId: 订单Id
返回码
- 204 修改成功
- 400 参数错误
- 403 权限错误
- 409 重复创建
- 500 内部错误
示例
请求:
GET /ing?Action=RenewOrder&InstanceId=default-nm1@lb1&Period=14&Version=2017-12-05
HEADER:
Content-type: application/json
X-Product-Id: ${tenantId}
响应:
{
"OrderId": "074723ee-994c-43b1-a193-86403112390d"
}
1.9 GetLoadBalancerCount
GET /ing?Action=GetLoadBalancerCount&Version=2017-12-05
描述
获取某租户负载均衡实例的总数
示例
请求:
GET /ing?Action=GetLoadBalancerCount&Version=2017-12-05
HEADER:
Content-type: application/json
X-Product-Id: ${tenantId}
响应:
{
"Total": 8
}
参数说明
- 接口版本:2017-12-05
- http header
参数 | 参数描述 | 是否必选 | 类型 | 说明 |
---|---|---|---|---|
X-Product-Id | 租户ID | 是 | string定长32 | 租户ID |
结果说明
字段 | 字段名称 | 取值特征 | 字段描述 |
---|---|---|---|
Total | 总计 | 正整数 | 所有实例的总数 |
2. 监听相关接口
2.1 CreateLBListener
POST /ing?Action=CreateLBListener&Version=2017-12-05
描述
创建监听器
参数说明
- TenantId: 租户ID
- InstanceId: 实例Id
- Name: 监听名字
- ListenPort: 监听端口
- Protocol: 监听类型
- Clusters: 后端集群
- ServerName: 域名,*代表匹配所有
- Path: 路径,支持正则表达式
- ServiceName: 服务名称
- ServicePort: 服务端口
- Policy: 会话保持策略
{
"Mode": 模式, insert或者rewrite模式
"CookieName": cookie 名字, rewrite必选,insert没有使用
"Expire": 失效时间,单位s,默认30s
}
- Monitor: 健康检查规则
- Balancer: 负载均衡策略
- Timeout: tcp超时时间
结果说明
- 无
返回码
- 204 修改成功
- 400 参数错误
- 403 权限错误
- 500 内部错误
示例
请求:
POST /ing?Action=CreateLBListener&Version=2017-12-05
HEADER:
Content-type: application/json
X-Product-Id: ${tenantId}
BODY:
{
"InstanceId": "default-nm1/lb1",
"Name": "l1",
"ListenPort": 8088,
"Protocol": "http",
"Balance": "leastconn",
"Clusters": [
{
"ServerName": "1.com",
"CertId":"f271a811-d277-4d23-822e-9b9e71bf05a1"(https时必选)
"Path": "/1",
"ServiceName": "default-service",
"ServicePort": 80,
"Policy": {
"Mode": "insert",
"Expire": 30000
}
}
]
}
响应:
无
2.2 UpdateLBListener
POST /ing?Action=UpdateLBListener&Version=2017-12-05
描述
修改监听器
参数说明
- TenantId: 租户ID
- InstanceId: 实例Id
- Name: 监听器名字
- Clusters: 后端集群
- Service: Service名字
- Policy: 会话保持策略
{
"Mode": 模式, insert或者rewrite模式
"CookieName": cookie 名字, rewrite必选,insert没有使用
"Expire": 失效时间,单位s,默认30s
}
- Monitor: 健康检查规则
- Balancer: 负载均衡策略
- Gzip:压缩
- CipherSuiteId: 加密套件Id
结果说明
- 无
返回码
- 204 修改成功
- 400 参数错误
- 403 权限错误
- 500 内部错误
示例
请求:
POST /ing?Action=UpdateLBListener&Version=2017-12-05
HEADER:
Content-type: application/json
X-Product-Id: ${tenantId}
BODY:
{
"InstanceId": "default-nm1@lb1",
"Name": "l1",
"Balance": "leastconn",
"Clusters": [
{
"ServerName": "1.com",
"CertId":"f271a811-d277-4d23-822e-9b9e71bf05a1"(https时必选)
"Path": "/1",
"ClusterPort": 80,
"ServiceName": "default-service1",
"ServicePort": "8080",
"Policy": {
"Mode": "insert",
"Expire": 30000
}
}
]
}
响应:
无
2.3 DeleteLBListener
GET /ing?Action=DeleteLBListener&InstanceId=&Name=&Version=2017-12-05
描述
删除监听器
参数说明
- TenantId: 租户ID
- InstanceId: 实例Id
- Name: 监听器名字
结果说明
- 无
返回码
- 204 修改成功
- 400 参数错误
- 403 权限错误
- 500 内部错误
示例
请求:
GET /ing?Action=DeleteLBListener&InstanceId=&Name=&Version=2017-12-05
HEADER:
Content-type: application/json
X-Product-Id: ${tenantId}
响应:
无