调用CreateIngress接口创建一条路由规则。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求头

该接口使用公共请求头,无特殊请求头。更多信息,请参见公共请求和返回头

请求语法

POST /pop/v1/sam/ingress/Ingress HTTP/1.1

请求参数

名称 类型 位置 是否必选 示例值 描述
NamespaceId String Query cn-beijing:sae-test

应用所在命名空间ID,目前不支持跨命名空间的应用。

Description String Query ingress-for-sae-test

路由规则名称。

SlbId String Query lb-uf6hucc7inlqrtcq5****

路由规则所使用的SLB。

ListenerPort Integer Query 80

SLB监听端口,该端口不能被占用。

CertId String Query 188077086902****_176993d****_181437****_108724****

CLB证书ID。取值说明如下:

  • LoadBalanceTypeclb时,使用该字段来配置HTTPS监听证书。

CLB使用SSL证书ID的更多信息,请参见管理证书(CLB)

CertIds String Query 87***35-cn-hangzhou,812***3-cn-hangzhou

ALB多证书ID。取值说明如下:

  • LoadBalanceTypealb时,使用该字段来配置HTTPS监听多证书,多个证书ID之间使用逗号分割。
  • ALB使用的SSL证书ID需要从数字证书产品获取。例如配置756***-cn-hangzhou756***为产品页获取的证书ID, -cn-hangzhou为固定后缀。更多信息,请参见管理证书(ALB)
DefaultRule String Query {"appId":"395b60e4-0550-458d-9c54-a265d036****","containerPort":8080}

默认转发规则。按照IP地址,通过指定端口转发流量到指定应用。参数说明如下:

  • appId:应用ID。
  • containerPort:应用实例端口。
说明 所有未匹配或不满足Rules转发规则的请求都会转到该指定应用。
Rules String FormData [{"appId":"395b60e4-0550-458d-9c54-a265d036****","containerPort":8080,"domain":"www.sae.site","path":"/path1"},{"appId":"666403ce-d25b-47cf-87fe-497565d2****","containerPort":8080,"domain":"sae.site","path":"/sys/(.*)/(.*)/aaa","rewritePath":"/${1}","backendProtocol":"http"}]

转发规则。按照域名和请求路径,通过指定端口转发流量到指定应用。参数说明如下:

  • appId:应用ID。
  • containerPort:应用实例端口。
  • domain:域名。
  • path:请求路径。
  • backendProtocol:后端服务协议,支持http/https/grpc,默认值为http。
  • rewritePath:重写路径。
LoadBalanceType String Query clb

负载均衡SLB的类型。取决于创建路由规则时填写的类型,更新时不可变更。取值说明如下:

  • clb:传统型负载均衡CLB(原SLB)。
  • alb:应用型负载均衡ALB。
ListenerProtocol String Query HTTP

请求转发协议。取值说明如下:

  • HTTP:适用于需要对数据内容进行识别的应用。
  • HTTPS:适用于需要加密传输的应用。

返回数据

名称 类型 示例值 描述
RequestId String 91F93257-7A4A-4BD3-9A7E-2F6EAE6D****

请求ID。

Message String success

附加信息。取值说明如下:

  • 请求正常,返回success
  • 请求异常,返回具体异常错误码。
TraceId String 0a98a02315955564772843261e****

调用链ID,用于精确查询调用信息。

Data Object

返回结果。

IngressId Long 87

路由规则ID。

ErrorCode String

错误码。取值说明如下:

  • 请求成功:不返回ErrorCode字段。
  • 请求失败:返回ErrorCode字段。具体信息,请参见本文的错误码列表。
Code String 200

接口状态或POP错误码。取值说明如下:

  • 2xx:成功。
  • 3xx:重定向。
  • 4xx:请求错误。
  • 5xx:服务器错误。
Success Boolean true

创建路由规则是否成功。取值说明如下:

  • true:创建成功。
  • false:创建失败。

示例

请求示例

POST /pop/v1/sam/ingress/Ingress?NamespaceId=cn-beijing:sae-test&Description=ingress-for-sae-test&SlbId=lb-uf6hucc7inlqrtcq5****&ListenerPort=80&CertId=188077086902****_176993d****_181437****_108724****&DefaultRule={"appId":"395b60e4-0550-458d-9c54-a265d036****","containerPort":8080}&LoadBalanceType=clb&ListenerProtocol=HTTP HTTP/1.1
Host:sae.aliyuncs.com
Content-Type:application/json

Rules=[{"appId":"395b60e4-0550-458d-9c54-a265d036****","containerPort":8080,"domain":"www.sae.site","path":"/path1"},{"appId":"666403ce-d25b-47cf-87fe-497565d2****","containerPort":8080,"domain":"sae.site","path":"/path2"}]

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<CreateIngressResponse>
    <RequestId>91F93257-7A4A-4BD3-9A7E-2F6EAE6D****</RequestId>
    <Message>success</Message>
    <TraceId>0a98a02315955564772843261e****</TraceId>
    <Data>
        <IngressId>87</IngressId>
    </Data>
    <Code>200</Code>
    <Success>true</Success>
</CreateIngressResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "RequestId" : "91F93257-7A4A-4BD3-9A7E-2F6EAE6D****",
  "Message" : "success",
  "TraceId" : "0a98a02315955564772843261e****",
  "Data" : {
    "IngressId" : 87
  },
  "Code" : "200",
  "Success" : true
}

错误码

HttpCode 错误码 错误信息 描述
400 InvalidParameter.NotEmpty You must specify the parameter %s. 不合法的参数:%s不能为空。
400 InvalidParameter.Obviously The specified parameter is invalid {%s}. 不合法的参数{%s}。
400 InvalidParameter.WithMessage The parameter is invalid {%s}: %s 不合法的参数{%s}:%s。
400 Slb.NotFound The SLB instance does not exist: slbId [%s] SLB不存在:slbId[%s]。
400 Exceed.IngressRule The number of Ingress related rules must be less than or equal to 40. Ingress配置对应规则不可超过40条。
400 SlbListenerPort.NotAvailable The SLB listening port is unavailable: slbId [%s], port [%s] SLB监听端口被占用:slbId[%s], port[%s]。
400 SSLCert.NotFound The specified SSL certificate cannot be found. 找不到对应的SSL证书。
404 InvalidResponse.Api The response of API %s is empty. API返回数据为空。

访问错误中心查看更多错误码。