DATASOURCE::SLB::Rules类型用于查询指定监听已配置的转发规则。

语法

{
  "Type": "DATASOURCE::SLB::Rules",
  "Properties": {
    "ListenerPort": String,
    "LoadBalancerId": String,
    "ListenerProtocol": String
  }
}

属性

属性名称类型必须允许更新描述约束
ListenerPortString负载均衡实例前端使用的监听端口。取值范围:1~65535。
LoadBalancerIdString负载均衡实例ID。
ListenerProtocolString负载均衡实例前端使用的协议。相同端口存在不同协议监听时,该字段必填。

返回值

Fn::GetAtt

  • RuleIds:转发规则ID列表。
  • Rules:转发规则列表。
属性名称类型描述约束
RuleIdsList转发规则ID列表。
RulesList转发规则列表。
HealthCheckHttpCodeString健康检查正常的HTTP状态码。多个状态码用半角逗号(,)分隔。

取值:

  • http_2xx(默认值)
  • http_3xx
  • http_4xx
  • http_5xx
说明 当HealthCheck为on时,该参数有效。
HealthCheckUriString用于健康检查的URI。
说明 当HealthCheck为on时,该参数有效。
CookieTimeoutStringCookie超时时间。取值:1~86400。

单位:秒。

说明 当StickySession为on且StickySessionType为insert时,该参数有效。
RuleIdString转发规则ID。
UrlString转发规则绑定的请求路径。
ListenerProtocolString负载均衡实例前端使用的协议。
HealthCheckTimeoutInteger接收来自运行状况检查的响应需要等待的时间。如果后端ECS在指定的时间内没有正确响应,则判定为健康检查失败。

取值:1~300。

单位:秒。
说明 如果HealthCHeckTimeout的值小于HealthCheckInterval的值,则HealthCHeckTimeout无效,超时时间为HealthCheckInterval的值。

当HealthCheck为on时,该参数有效。

HealthCheckString是否开启健康检查。取值:
  • on:开启健康检查。
  • off:关闭健康检查。
说明 当ListenerSync为off时,该参数有效;当ListenerSync为on时表明与监听配置一致。
ListenerSyncString转发规则是否从监听上继承健康检查、会话保持和调度算法配置。取值:
  • on:继承监听配置。
  • off:不继承监听配置,转发规则自定义健康检查及会话保持配置。
UnhealthyThresholdInteger健康检查连续失败多少次后,将后端服务器的健康检查状态由成功判定为失败。取值:2~10。
说明 当HealthCheck为on时,该参数有效。
HealthyThresholdInteger健康检查连续成功多少次后,将后端服务器的健康检查状态由失败判定为成功。取值:2~10。
说明 当HealthCheck为on时,该参数有效。
HealthCheckIntervalInteger健康检查的时间间隔。取值:1~50。

单位:秒。

说明 当HealthCheck为on时,该参数有效。
HealthCheckConnectPortInteger健康检查的后端服务器的端口。取值:1~65535。
说明 当HealthCheck为on时,该参数有效;若该参数为空且HealthCheck为on时,表明默认使用监听后端端口配置。
CookieString服务器上配置的Cookie。长度为1~200个字符,只能包含ASCII英文字母和数字字符,不能包含半角逗号(,)、半角分号(;)或空格,也不能以美元符号($)开头。
说明 当StickySession为on且StickySessionType为server时,该参数有效。
VServerGroupIdString转发规则绑定的目标虚拟服务器组ID。
SchedulerString调度算法。取值:
  • wrr(默认值):权重值越高的后端服务器,被轮询到的次数(概率)也越高。
  • rr:按照访问顺序依次将外部请求依序分发到后端服务器。
说明 当ListenerSync为off时,该参数有效;当ListenerSync为on时,表明与监听配置一致。
RuleNameString转发规则名称。长度为1~80个字符,只能使用字母、数字、短划线(-)、正斜线(/)、半角句号(.)和下划线(_)这些字符。
说明 同一个监听内不同规则的名称必须唯一。
DomainString转发规则绑定的请求域名。
StickySessionString是否开启会话保持。取值:
  • on:开启会话保持。
  • off:关闭会话保持。
说明
  • 当ListenerSync为off时,该参数有效。
  • 当ListenerSync为on时,表明与监听配置一致。
StickySessionTypeStringCookie的处理方式。取值:
  • insert:植入Cookie。客户端第一次访问时,负载均衡会在返回请求中植入Cookie(即在HTTP或HTTPS响应报文中插入SERVERID),下次客户端携带此Cookie访问,负载均衡服务会将请求定向转发给之前记录到的后端服务器上。
  • server:重写Cookie。 负载均衡发现用户自定义了Cookie,将会对原来的Cookie进行重写,下次客户端携带新的Cookie访问,负载均衡服务会将请求定向转发给之前记录到的后端服务器。
说明 当StickySession的值为on时,该参数有效。
HealthCheckDomainString用于健康检查的域名。取值:
  • $_ip: 后端服务器的私网IP。当指定了IP或该参数未指定时,负载均衡会使用各后端服务器的私网IP当做健康检查使用的域名。
  • domain:域名长度为1~80字符,只能包含字母、数字、半角句号(.)和短划线(-)。
说明 当HealthCheck为on时,该参数有效。

示例

  • YAML格式

    ROSTemplateFormatVersion: '2015-09-01'
    Parameters:
      LoadBalancerId:
        Type: String
        AssociationProperty: ALIYUN::SLB::Instance::InstanceId
        Description: The ID of the CLB instance.
    Resources:
      ExtensionDataSource:
        Type: DATASOURCE::SLB::Rules
        Properties:
          ListenerPort: 3443
          LoadBalancerId:
            Ref: LoadBalancerId
    Outputs:
      RuleIds:
        Description: The list of rule IDs.
        Value:
          Fn::GetAtt:
            - ExtensionDataSource
            - RuleIds
      Rules:
        Description: The list of rules.
        Value:
          Fn::GetAtt:
            - ExtensionDataSource
            - Rules
  • JSON格式

    {
      "ROSTemplateFormatVersion": "2015-09-01",
      "Parameters": {
        "LoadBalancerId": {
          "Type": "String",
          "AssociationProperty":"ALIYUN::SLB::Instance::InstanceId",
          "Description": "The ID of the CLB instance."
        }
      },
      "Resources": {
        "ExtensionDataSource": {
          "Type": "DATASOURCE::SLB::Rules",
          "Properties": {
            "ListenerPort": 3443,
            "LoadBalancerId": {
              "Ref": "LoadBalancerId"
            }
          }
        }
      },
      "Outputs": {
        "RuleIds": {
          "Description": "The list of rule IDs.",
          "Value": {
            "Fn::GetAtt": [
              "ExtensionDataSource",
              "RuleIds"
            ]
          }
        },
        "Rules": {
          "Description": "The list of rules.",
          "Value": {
            "Fn::GetAtt": [
              "ExtensionDataSource",
              "Rules"
            ]
          }
        }
      }
    }