Class: TencentCloud::Teo::V20220901::RateLimitingRule

Inherits:
Common::AbstractModel
  • Object
show all
Defined in:
lib/v20220901/models.rb

Overview

速率限制的具体配置。

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(id = nil, name = nil, condition = nil, countby = nil, maxrequestthreshold = nil, countingperiod = nil, actionduration = nil, action = nil, priority = nil, enabled = nil) ⇒ RateLimitingRule

Returns a new instance of RateLimitingRule.



19751
19752
19753
19754
19755
19756
19757
19758
19759
19760
19761
19762
# File 'lib/v20220901/models.rb', line 19751

def initialize(id=nil, name=nil, condition=nil, countby=nil, maxrequestthreshold=nil, countingperiod=nil, actionduration=nil, action=nil, priority=nil, enabled=nil)
  @Id = id
  @Name = name
  @Condition = condition
  @CountBy = countby
  @MaxRequestThreshold = maxrequestthreshold
  @CountingPeriod = countingperiod
  @ActionDuration = actionduration
  @Action = action
  @Priority = priority
  @Enabled = enabled
end

Instance Attribute Details

#ActionObject

Parameters:

  • Id:

    精准速率限制的 ID。
    通过规则 ID 可支持不同的规则配置操作:
    <li> 增加新规则:ID 为空或不指定 ID 参数;</li><li>修改已有规则:指定需要更新/修改的规则 ID;</li><li>删除已有规则:RateLimitingRules 参数中,Rules 列表中未包含的已有规则将被删除。</li>

  • Name:

    精准速率限制的名称。

  • Condition:

    精准速率限制的具体内容,需符合表达式语法,详细规范参见产品文档。

  • CountBy:

    速率阈值请求特征的匹配方式, 当 Enabled 为 on 时,此字段必填。<br /><br />当条件有多个时,将组合多个条件共同进行统计计算,条件最多不可超过5条。取值有:<br/><li>http.request.ip:客户端 IP;</li><li>http.request.xff_header_ip:客户端 IP(优先匹配 XFF 头部);

  • http.request.uri.path:请求的访问路径;
  • http.request.cookies[‘session’]:名称为session的Cookie,其中session可替换为自己指定的参数;
  • http.request.headers[‘user-agent’]:名称为user-agent的HTTP头部,其中user-agent可替换为自己指定的参数;
  • http.request.ja3:请求的JA3指纹;
  • http.request.uri.query[‘test’]:名称为test的URL查询参数,其中test可替换为自己指定的参数。</li>

  • MaxRequestThreshold:

    精准速率限制在时间范围内的累计拦截次数,取值范围 1 ~ 100000。

  • CountingPeriod:

    统计的时间窗口,取值有:<li>1s:1秒;</li><li>5s:5秒;</li><li>10s:10秒;</li><li>20s:20秒;</li><li>30s:30秒;</li><li>40s:40秒;</li><li>50s:50秒;</li><li>1m:1分钟;</li><li>2m:2分钟;</li><li>5m:5分钟;</li><li>10m:10分钟;</li><li>1h:1小时。</li>

  • ActionDuration:

    Action 动作的持续时长,单位仅支持:<li>s:秒,取值 1 ~ 120;</li><li>m:分钟,取值 1 ~ 120;</li><li>h:小时,取值 1 ~ 48;</li><li>d:天,取值 1 ~ 30。</li>

  • Action:

    精准速率限制的处置方式。取值有:<li>Monitor:观察;</li><li>Deny:拦截,其中DenyActionParameters.Name支持Deny和ReturnCustomPage;</li><li>Challenge:挑战,其中ChallengeActionParameters.Name支持JSChallenge和ManagedChallenge;</li><li>Redirect:重定向至URL;</li>

  • Priority:

    精准速率限制的优先级,范围是 0 ~ 100,默认为 0。

  • Enabled:

    精准速率限制规则是否开启。取值有:<li>on:开启;</li><li>off:关闭。</li>

  • 
    
    19749
    19750
    19751
    # File 'lib/v20220901/models.rb', line 19749
    
    def Action
      @Action
    end

    #ActionDurationObject

    Parameters:

    • Id:

      精准速率限制的 ID。
      通过规则 ID 可支持不同的规则配置操作:
      <li> 增加新规则:ID 为空或不指定 ID 参数;</li><li>修改已有规则:指定需要更新/修改的规则 ID;</li><li>删除已有规则:RateLimitingRules 参数中,Rules 列表中未包含的已有规则将被删除。</li>

    • Name:

      精准速率限制的名称。

    • Condition:

      精准速率限制的具体内容,需符合表达式语法,详细规范参见产品文档。

    • CountBy:

      速率阈值请求特征的匹配方式, 当 Enabled 为 on 时,此字段必填。<br /><br />当条件有多个时,将组合多个条件共同进行统计计算,条件最多不可超过5条。取值有:<br/><li>http.request.ip:客户端 IP;</li><li>http.request.xff_header_ip:客户端 IP(优先匹配 XFF 头部);

    • http.request.uri.path:请求的访问路径;
    • http.request.cookies[‘session’]:名称为session的Cookie,其中session可替换为自己指定的参数;
    • http.request.headers[‘user-agent’]:名称为user-agent的HTTP头部,其中user-agent可替换为自己指定的参数;
    • http.request.ja3:请求的JA3指纹;
    • http.request.uri.query[‘test’]:名称为test的URL查询参数,其中test可替换为自己指定的参数。</li>

  • MaxRequestThreshold:

    精准速率限制在时间范围内的累计拦截次数,取值范围 1 ~ 100000。

  • CountingPeriod:

    统计的时间窗口,取值有:<li>1s:1秒;</li><li>5s:5秒;</li><li>10s:10秒;</li><li>20s:20秒;</li><li>30s:30秒;</li><li>40s:40秒;</li><li>50s:50秒;</li><li>1m:1分钟;</li><li>2m:2分钟;</li><li>5m:5分钟;</li><li>10m:10分钟;</li><li>1h:1小时。</li>

  • ActionDuration:

    Action 动作的持续时长,单位仅支持:<li>s:秒,取值 1 ~ 120;</li><li>m:分钟,取值 1 ~ 120;</li><li>h:小时,取值 1 ~ 48;</li><li>d:天,取值 1 ~ 30。</li>

  • Action:

    精准速率限制的处置方式。取值有:<li>Monitor:观察;</li><li>Deny:拦截,其中DenyActionParameters.Name支持Deny和ReturnCustomPage;</li><li>Challenge:挑战,其中ChallengeActionParameters.Name支持JSChallenge和ManagedChallenge;</li><li>Redirect:重定向至URL;</li>

  • Priority:

    精准速率限制的优先级,范围是 0 ~ 100,默认为 0。

  • Enabled:

    精准速率限制规则是否开启。取值有:<li>on:开启;</li><li>off:关闭。</li>

  • 
    
    19749
    19750
    19751
    # File 'lib/v20220901/models.rb', line 19749
    
    def ActionDuration
      @ActionDuration
    end

    #ConditionObject

    Parameters:

    • Id:

      精准速率限制的 ID。
      通过规则 ID 可支持不同的规则配置操作:
      <li> 增加新规则:ID 为空或不指定 ID 参数;</li><li>修改已有规则:指定需要更新/修改的规则 ID;</li><li>删除已有规则:RateLimitingRules 参数中,Rules 列表中未包含的已有规则将被删除。</li>

    • Name:

      精准速率限制的名称。

    • Condition:

      精准速率限制的具体内容,需符合表达式语法,详细规范参见产品文档。

    • CountBy:

      速率阈值请求特征的匹配方式, 当 Enabled 为 on 时,此字段必填。<br /><br />当条件有多个时,将组合多个条件共同进行统计计算,条件最多不可超过5条。取值有:<br/><li>http.request.ip:客户端 IP;</li><li>http.request.xff_header_ip:客户端 IP(优先匹配 XFF 头部);

    • http.request.uri.path:请求的访问路径;
    • http.request.cookies[‘session’]:名称为session的Cookie,其中session可替换为自己指定的参数;
    • http.request.headers[‘user-agent’]:名称为user-agent的HTTP头部,其中user-agent可替换为自己指定的参数;
    • http.request.ja3:请求的JA3指纹;
    • http.request.uri.query[‘test’]:名称为test的URL查询参数,其中test可替换为自己指定的参数。</li>

  • MaxRequestThreshold:

    精准速率限制在时间范围内的累计拦截次数,取值范围 1 ~ 100000。

  • CountingPeriod:

    统计的时间窗口,取值有:<li>1s:1秒;</li><li>5s:5秒;</li><li>10s:10秒;</li><li>20s:20秒;</li><li>30s:30秒;</li><li>40s:40秒;</li><li>50s:50秒;</li><li>1m:1分钟;</li><li>2m:2分钟;</li><li>5m:5分钟;</li><li>10m:10分钟;</li><li>1h:1小时。</li>

  • ActionDuration:

    Action 动作的持续时长,单位仅支持:<li>s:秒,取值 1 ~ 120;</li><li>m:分钟,取值 1 ~ 120;</li><li>h:小时,取值 1 ~ 48;</li><li>d:天,取值 1 ~ 30。</li>

  • Action:

    精准速率限制的处置方式。取值有:<li>Monitor:观察;</li><li>Deny:拦截,其中DenyActionParameters.Name支持Deny和ReturnCustomPage;</li><li>Challenge:挑战,其中ChallengeActionParameters.Name支持JSChallenge和ManagedChallenge;</li><li>Redirect:重定向至URL;</li>

  • Priority:

    精准速率限制的优先级,范围是 0 ~ 100,默认为 0。

  • Enabled:

    精准速率限制规则是否开启。取值有:<li>on:开启;</li><li>off:关闭。</li>

  • 
    
    19749
    19750
    19751
    # File 'lib/v20220901/models.rb', line 19749
    
    def Condition
      @Condition
    end

    #CountByObject

    Parameters:

  • MaxRequestThreshold:

    精准速率限制在时间范围内的累计拦截次数,取值范围 1 ~ 100000。

  • CountingPeriod:

    统计的时间窗口,取值有:<li>1s:1秒;</li><li>5s:5秒;</li><li>10s:10秒;</li><li>20s:20秒;</li><li>30s:30秒;</li><li>40s:40秒;</li><li>50s:50秒;</li><li>1m:1分钟;</li><li>2m:2分钟;</li><li>5m:5分钟;</li><li>10m:10分钟;</li><li>1h:1小时。</li>

  • ActionDuration:

    Action 动作的持续时长,单位仅支持:<li>s:秒,取值 1 ~ 120;</li><li>m:分钟,取值 1 ~ 120;</li><li>h:小时,取值 1 ~ 48;</li><li>d:天,取值 1 ~ 30。</li>

  • Action:

    精准速率限制的处置方式。取值有:<li>Monitor:观察;</li><li>Deny:拦截,其中DenyActionParameters.Name支持Deny和ReturnCustomPage;</li><li>Challenge:挑战,其中ChallengeActionParameters.Name支持JSChallenge和ManagedChallenge;</li><li>Redirect:重定向至URL;</li>

  • Priority:

    精准速率限制的优先级,范围是 0 ~ 100,默认为 0。

  • Enabled:

    精准速率限制规则是否开启。取值有:<li>on:开启;</li><li>off:关闭。</li>

  • 
    
    19749
    19750
    19751
    # File 'lib/v20220901/models.rb', line 19749
    
    def CountBy
      @CountBy
    end

    #CountingPeriodObject

    Parameters:

  • MaxRequestThreshold:

    精准速率限制在时间范围内的累计拦截次数,取值范围 1 ~ 100000。

  • CountingPeriod:

    统计的时间窗口,取值有:<li>1s:1秒;</li><li>5s:5秒;</li><li>10s:10秒;</li><li>20s:20秒;</li><li>30s:30秒;</li><li>40s:40秒;</li><li>50s:50秒;</li><li>1m:1分钟;</li><li>2m:2分钟;</li><li>5m:5分钟;</li><li>10m:10分钟;</li><li>1h:1小时。</li>

  • ActionDuration:

    Action 动作的持续时长,单位仅支持:<li>s:秒,取值 1 ~ 120;</li><li>m:分钟,取值 1 ~ 120;</li><li>h:小时,取值 1 ~ 48;</li><li>d:天,取值 1 ~ 30。</li>

  • Action:

    精准速率限制的处置方式。取值有:<li>Monitor:观察;</li><li>Deny:拦截,其中DenyActionParameters.Name支持Deny和ReturnCustomPage;</li><li>Challenge:挑战,其中ChallengeActionParameters.Name支持JSChallenge和ManagedChallenge;</li><li>Redirect:重定向至URL;</li>

  • Priority:

    精准速率限制的优先级,范围是 0 ~ 100,默认为 0。

  • Enabled:

    精准速率限制规则是否开启。取值有:<li>on:开启;</li><li>off:关闭。</li>

  • 
    
    19749
    19750
    19751
    # File 'lib/v20220901/models.rb', line 19749
    
    def CountingPeriod
      @CountingPeriod
    end

    #EnabledObject

    Parameters:

  • MaxRequestThreshold:

    精准速率限制在时间范围内的累计拦截次数,取值范围 1 ~ 100000。

  • CountingPeriod:

    统计的时间窗口,取值有:<li>1s:1秒;</li><li>5s:5秒;</li><li>10s:10秒;</li><li>20s:20秒;</li><li>30s:30秒;</li><li>40s:40秒;</li><li>50s:50秒;</li><li>1m:1分钟;</li><li>2m:2分钟;</li><li>5m:5分钟;</li><li>10m:10分钟;</li><li>1h:1小时。</li>

  • ActionDuration:

    Action 动作的持续时长,单位仅支持:<li>s:秒,取值 1 ~ 120;</li><li>m:分钟,取值 1 ~ 120;</li><li>h:小时,取值 1 ~ 48;</li><li>d:天,取值 1 ~ 30。</li>

  • Action:

    精准速率限制的处置方式。取值有:<li>Monitor:观察;</li><li>Deny:拦截,其中DenyActionParameters.Name支持Deny和ReturnCustomPage;</li><li>Challenge:挑战,其中ChallengeActionParameters.Name支持JSChallenge和ManagedChallenge;</li><li>Redirect:重定向至URL;</li>

  • Priority:

    精准速率限制的优先级,范围是 0 ~ 100,默认为 0。

  • Enabled:

    精准速率限制规则是否开启。取值有:<li>on:开启;</li><li>off:关闭。</li>

  • 
    
    19749
    19750
    19751
    # File 'lib/v20220901/models.rb', line 19749
    
    def Enabled
      @Enabled
    end

    #IdObject

    Parameters:

  • MaxRequestThreshold:

    精准速率限制在时间范围内的累计拦截次数,取值范围 1 ~ 100000。

  • CountingPeriod:

    统计的时间窗口,取值有:<li>1s:1秒;</li><li>5s:5秒;</li><li>10s:10秒;</li><li>20s:20秒;</li><li>30s:30秒;</li><li>40s:40秒;</li><li>50s:50秒;</li><li>1m:1分钟;</li><li>2m:2分钟;</li><li>5m:5分钟;</li><li>10m:10分钟;</li><li>1h:1小时。</li>

  • ActionDuration:

    Action 动作的持续时长,单位仅支持:<li>s:秒,取值 1 ~ 120;</li><li>m:分钟,取值 1 ~ 120;</li><li>h:小时,取值 1 ~ 48;</li><li>d:天,取值 1 ~ 30。</li>

  • Action:

    精准速率限制的处置方式。取值有:<li>Monitor:观察;</li><li>Deny:拦截,其中DenyActionParameters.Name支持Deny和ReturnCustomPage;</li><li>Challenge:挑战,其中ChallengeActionParameters.Name支持JSChallenge和ManagedChallenge;</li><li>Redirect:重定向至URL;</li>

  • Priority:

    精准速率限制的优先级,范围是 0 ~ 100,默认为 0。

  • Enabled:

    精准速率限制规则是否开启。取值有:<li>on:开启;</li><li>off:关闭。</li>

  • 
    
    19749
    19750
    19751
    # File 'lib/v20220901/models.rb', line 19749
    
    def Id
      @Id
    end

    #MaxRequestThresholdObject

    Parameters:

  • MaxRequestThreshold:

    精准速率限制在时间范围内的累计拦截次数,取值范围 1 ~ 100000。

  • CountingPeriod:

    统计的时间窗口,取值有:<li>1s:1秒;</li><li>5s:5秒;</li><li>10s:10秒;</li><li>20s:20秒;</li><li>30s:30秒;</li><li>40s:40秒;</li><li>50s:50秒;</li><li>1m:1分钟;</li><li>2m:2分钟;</li><li>5m:5分钟;</li><li>10m:10分钟;</li><li>1h:1小时。</li>

  • ActionDuration:

    Action 动作的持续时长,单位仅支持:<li>s:秒,取值 1 ~ 120;</li><li>m:分钟,取值 1 ~ 120;</li><li>h:小时,取值 1 ~ 48;</li><li>d:天,取值 1 ~ 30。</li>

  • Action:

    精准速率限制的处置方式。取值有:<li>Monitor:观察;</li><li>Deny:拦截,其中DenyActionParameters.Name支持Deny和ReturnCustomPage;</li><li>Challenge:挑战,其中ChallengeActionParameters.Name支持JSChallenge和ManagedChallenge;</li><li>Redirect:重定向至URL;</li>

  • Priority:

    精准速率限制的优先级,范围是 0 ~ 100,默认为 0。

  • Enabled:

    精准速率限制规则是否开启。取值有:<li>on:开启;</li><li>off:关闭。</li>

  • 
    
    19749
    19750
    19751
    # File 'lib/v20220901/models.rb', line 19749
    
    def MaxRequestThreshold
      @MaxRequestThreshold
    end

    #NameObject

    Parameters:

  • MaxRequestThreshold:

    精准速率限制在时间范围内的累计拦截次数,取值范围 1 ~ 100000。

  • CountingPeriod:

    统计的时间窗口,取值有:<li>1s:1秒;</li><li>5s:5秒;</li><li>10s:10秒;</li><li>20s:20秒;</li><li>30s:30秒;</li><li>40s:40秒;</li><li>50s:50秒;</li><li>1m:1分钟;</li><li>2m:2分钟;</li><li>5m:5分钟;</li><li>10m:10分钟;</li><li>1h:1小时。</li>

  • ActionDuration:

    Action 动作的持续时长,单位仅支持:<li>s:秒,取值 1 ~ 120;</li><li>m:分钟,取值 1 ~ 120;</li><li>h:小时,取值 1 ~ 48;</li><li>d:天,取值 1 ~ 30。</li>

  • Action:

    精准速率限制的处置方式。取值有:<li>Monitor:观察;</li><li>Deny:拦截,其中DenyActionParameters.Name支持Deny和ReturnCustomPage;</li><li>Challenge:挑战,其中ChallengeActionParameters.Name支持JSChallenge和ManagedChallenge;</li><li>Redirect:重定向至URL;</li>

  • Priority:

    精准速率限制的优先级,范围是 0 ~ 100,默认为 0。

  • Enabled:

    精准速率限制规则是否开启。取值有:<li>on:开启;</li><li>off:关闭。</li>

  • 
    
    19749
    19750
    19751
    # File 'lib/v20220901/models.rb', line 19749
    
    def Name
      @Name
    end

    #PriorityObject

    Parameters:

  • MaxRequestThreshold:

    精准速率限制在时间范围内的累计拦截次数,取值范围 1 ~ 100000。

  • CountingPeriod:

    统计的时间窗口,取值有:<li>1s:1秒;</li><li>5s:5秒;</li><li>10s:10秒;</li><li>20s:20秒;</li><li>30s:30秒;</li><li>40s:40秒;</li><li>50s:50秒;</li><li>1m:1分钟;</li><li>2m:2分钟;</li><li>5m:5分钟;</li><li>10m:10分钟;</li><li>1h:1小时。</li>

  • ActionDuration:

    Action 动作的持续时长,单位仅支持:<li>s:秒,取值 1 ~ 120;</li><li>m:分钟,取值 1 ~ 120;</li><li>h:小时,取值 1 ~ 48;</li><li>d:天,取值 1 ~ 30。</li>

  • Action:

    精准速率限制的处置方式。取值有:<li>Monitor:观察;</li><li>Deny:拦截,其中DenyActionParameters.Name支持Deny和ReturnCustomPage;</li><li>Challenge:挑战,其中ChallengeActionParameters.Name支持JSChallenge和ManagedChallenge;</li><li>Redirect:重定向至URL;</li>

  • Priority:

    精准速率限制的优先级,范围是 0 ~ 100,默认为 0。

  • Enabled:

    精准速率限制规则是否开启。取值有:<li>on:开启;</li><li>off:关闭。</li>

  • 
    
    19749
    19750
    19751
    # File 'lib/v20220901/models.rb', line 19749
    
    def Priority
      @Priority
    end

    Instance Method Details

    #deserialize(params) ⇒ Object

    
    
    19764
    19765
    19766
    19767
    19768
    19769
    19770
    19771
    19772
    19773
    19774
    19775
    19776
    19777
    19778
    # File 'lib/v20220901/models.rb', line 19764
    
    def deserialize(params)
      @Id = params['Id']
      @Name = params['Name']
      @Condition = params['Condition']
      @CountBy = params['CountBy']
      @MaxRequestThreshold = params['MaxRequestThreshold']
      @CountingPeriod = params['CountingPeriod']
      @ActionDuration = params['ActionDuration']
      unless params['Action'].nil?
        @Action = SecurityAction.new
        @Action.deserialize(params['Action'])
      end
      @Priority = params['Priority']
      @Enabled = params['Enabled']
    end