CreateIngress - 创建一条路由规则

更新时间:
复制为 MD 格式

创建一条路由规则。

调试

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

调试

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。

  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。

  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:

    • 对于必选的资源类型,用前面加 * 表示。

    • 对于不支持资源级授权的操作,用全部资源表示。

  • 条件关键字:是指云产品自身定义的条件关键字。

  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。

操作

访问级别

资源类型

条件关键字

关联操作

sae:CreateIngress

create

*全部资源

*

请求语法

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

请求参数

名称

类型

必填

描述

示例值

NamespaceId

string

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

cn-beijing:sae-test

Description

string

路由规则名称。

ingress-for-sae-test

SlbId

string

路由规则所使用的 SLB 实例 ID。

说明

负载均衡 SLB 包括 CLB 实例和 ALB 实例。

lb-uf6hucc7inlqrtcq5****

ListenerPort

integer

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

80

CertId

string

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

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

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

188077086902****_176993d****_181437****_108724****

CertIds

string

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

  • LoadBalanceTypealb 时,使用该字段来配置 HTTPS 监听多证书,多个证书 ID 之间使用逗号分割。

  • ALB 使用的 SSL 证书 ID 需要从数字证书产品获取。例如配置756***-cn-hangzhou756***为产品页获取的证书 ID, -cn-hangzhou为固定后缀。更多信息,请参见管理证书(ALB)

87***35-cn-hangzhou,812***3-cn-hangzhou

DefaultRule

string

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

  • appId:应用 ID。

  • containerPort:应用实例端口。

说明

所有未匹配或不满足 Rules 转发规则的请求都会转到该指定应用。

{"appId":"395b60e4-0550-458d-9c54-a265d036****","containerPort":8080}

Rules

string

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

  • appId:应用 ID。

  • containerPort:应用实例端口。

  • domain:域名。

  • path:请求路径。

  • backendProtocol:后端服务协议,支持 http/https/grpc,默认值为 http。

  • rewritePath:重写路径。

说明

目前仅有 ALB 支持设置 URL 路径重写(RewritePath)功能,CLB 不支持此功能。

[{"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","backendProtocol":"http"}]

LoadBalanceType

string

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

  • clb:传统型负载均衡 CLB(原 SLB)。

  • alb:应用型负载均衡 ALB。

clb

ListenerProtocol

string

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

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

  • HTTPS:适用于需要加密传输的应用。

HTTP

SecurityPolicyId

string

安全策略实例 ID。

sp-bp1bpn0kn9****

RequestTimeout

integer

指定请求超时时间。单位:秒。取值范围:1~180。 如果在超时时间内后端服务器一直没有响应,负载均衡将放弃等待,给客户端返回 HTTP 504 错误码。

3

IdleTimeout

integer

指定连接空闲超时时间。单位:秒。取值范围:1~60。 如果在超时时间内一直没有访问请求,负载均衡会暂时中断当前连接,直到一下次请求来临时重新建立新的连接。

15

EnableXForwardedFor

boolean

是否开启通过 X-Forwarded-For 头字段获取来访者客户端 IP。

true

EnableXForwardedForClientSrcPort

boolean

是否通过 X-Forwarded-Port 头字段获取负载均衡实例的监听端口。

true

EnableXForwardedForProto

boolean

是否通过 X-Forwarded-Proto 头字段获取负载均衡实例的监听协议。

true

EnableXForwardedForSlbId

boolean

是否通过 SLB-ID 头字段获取负载均衡实例 ID。

true

EnableXForwardedForSlbPort

boolean

是否通过 X-Forwarded-Port 头字段获取负载均衡实例的监听端口。

true

AddressType

string

地址类型:

  • Internet:公网地址。

  • Intranet:私网地址。

Internet

LoadBalancerEdition

string

应用型负载均衡的版本,不同版本有不同功能限制和计费策略。取值:

  • Standard:标准版。

  • StandardWithWaf:WAF 增强版。

Standard

ZoneMappings

string

可用区及交换机映射列表的 JSON 字符串。若当前地域支持 2 个及以上的可用区,至少需要添加 2 个可用区。一个 ZoneMapping 结构为:

  • VSwitchId,String 类型,可用区对应的交换机,每个可用区只能使用一台交换机和一个子网。

  • ZoneId,String 类型,网络型负载均衡实例的可用区 ID。

[{"VSwitchId":"vsw-wz9klui6icc08p6******","ZoneId":"cn-shenzhen-c"},{"VSwitchId":"vsw-wz9frrmoeuki2wp******","ZoneId":"cn-shenzhen-e"}]

CorsConfig

string

跨域配置

{"Enable":"true"}

EnableGzip

boolean

是否开启数据压缩

true

返回参数

名称

类型

描述

示例值

object

返回数据。

RequestId

string

请求 ID。

91F93257-7A4A-4BD3-9A7E-2F6EAE6D****

Message

string

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

  • 请求正常,返回 success

  • 请求异常,返回具体异常错误码。

success

TraceId

string

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

0a98a02315955564772843261e****

Data

object

返回结果。

IngressId

integer

路由规则 ID。

87

ErrorCode

string

错误码。取值说明如下:

  • 请求成功:不返回 ErrorCode 字段。

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

Code

string

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

  • 2xx:成功。

  • 3xx:重定向。

  • 4xx:请求错误。

  • 5xx:服务器错误。

200

Success

boolean

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

  • true:创建成功。

  • false:创建失败。

true

示例

正常返回示例

JSON格式

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

错误码

HTTP status code

错误码

错误信息

描述

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返回数据为空。

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

变更历史

更多信息,参考变更详情