计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
弹性伸缩 AS
镜像服务 IMS
专属主机 DeH
函数工作流 FunctionGraph
云手机服务器 CPH
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
虚拟专用网络 VPN
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
VPC终端节点 VPCEP
云连接 CC
企业路由器 ER
企业交换机 ESW
全球加速 GA
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
边缘安全 EdgeSec
威胁检测服务 MTD
CDN与智能边缘
内容分发网络 CDN
CloudPond云服务
智能边缘云 IEC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
云搜索服务 CSS
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
数据可视化 DLV
数据湖工厂 DLF
湖仓构建 LakeFormation
企业应用
云桌面 Workspace
应用与数据集成平台 ROMA Connect
云解析服务 DNS
专属云
专属计算集群 DCC
IoT物联网
IoT物联网
设备接入 IoTDA
智能边缘平台 IEF
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
国际站常见问题
ICP备案
我的凭证
支持计划
客户运营能力
合作伙伴支持计划
专业服务
区块链
区块链服务 BCS
Web3节点引擎服务 NES
解决方案
SAP
高性能计算 HPC
视频
视频直播 Live
视频点播 VOD
媒体处理 MPC
实时音视频 SparkRTC
数字内容生产线 MetaStudio
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
存储容灾服务 SDRS
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属分布式存储服务 DSS
容器
云容器引擎 CCE
容器镜像服务 SWR
应用服务网格 ASM
华为云UCS
云容器实例 CCI
管理与监管
云监控服务 CES
统一身份认证服务 IAM
资源编排服务 RFS
云审计服务 CTS
标签管理服务 TMS
云日志服务 LTS
配置审计 Config
资源访问管理 RAM
消息通知服务 SMN
应用运维管理 AOM
应用性能管理 APM
组织 Organizations
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
应用身份管理服务 OneAccess
数据库
云数据库 RDS
文档数据库服务 DDS
数据管理服务 DAS
数据复制服务 DRS
云数据库 GeminiDB
云数据库 GaussDB
分布式数据库中间件 DDM
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
人脸识别服务 FRS
图引擎服务 GES
图像识别 Image
内容审核 Moderation
文字识别 OCR
AI开发平台ModelArts
图像搜索 ImageSearch
对话机器人服务 CBS
华为HiLens
视频智能分析服务 VIAS
语音交互服务 SIS
应用中间件
分布式缓存服务 DCS
API网关 APIG
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
多活高可用服务 MAS
事件网格 EG
企业协同
华为云会议 Meeting
云通信
消息&短信 MSGSMS
云生态
合作伙伴中心
云商店
开发者工具
SDK开发指南
API签名指南
Terraform
华为云命令行工具服务 KooCLI
其他
产品价格详情
系统权限
管理控制台
客户关联华为云合作伙伴须知
消息中心
公共问题
开发与运维
应用管理与运维平台 ServiceStage
软件开发生产线 CodeArts
需求管理 CodeArts Req
部署 CodeArts Deploy
性能测试 CodeArts PerfTest
编译构建 CodeArts Build
流水线 CodeArts Pipeline
制品仓库 CodeArts Artifact
测试计划 CodeArts TestPlan
代码检查 CodeArts Check
代码托管 CodeArts Repo
云应用引擎 CAE
开天aPaaS
云消息服务 KooMessage
云手机服务 KooPhone
云空间服务 KooDrive

配置API的流量控制2.0

更新时间:2025-01-24 GMT+08:00

流量控制2.0策略可以限制单位时间内API的被调用次数,支持参数流控、基础流控和基于基础流控的特殊流控。

  • 基础流控

    可以对API、用户、凭据、源IP进行多维度流控,与已有的配置API的流量控制功能一致但不兼容。

  • 参数流控

    支持根据Header、Path、Method、Query以及系统变量中的参数值进行自定义流控。

  • 基于基础流控的特殊流控

    对某个凭据或租户进行特定的流控。

说明:

如果此策略在当前实例中不支持,可提交工单升级实例到最新版本。

约束与限制

  • 同一个环境中,一个API只能被一个流量控制2.0策略绑定,但一个流量控制2.0策略可以绑定多个API。
  • 如果一个API绑定流量控制策略后,继续绑定流量控制2.0策略,流量控制策略会失效。
  • 参数流控的参数支持1~32个字符;参数流控的规则最多可定义100个。
  • 策略内容最大长度65535。
  • 策略参数会明文展示,为防止信息泄露,请谨慎配置。
  • 策略和API本身相互独立,只有为API绑定策略后,策略才对API生效。为API绑定策略时需指定发布环境,策略只对指定环境上的API生效。
  • 策略的绑定、解绑、更新会实时生效,不需要重新发布API。
  • API的下线操作不影响策略的绑定关系,再次发布后仍然会带有下线前绑定的策略。
  • 如果策略与API有绑定关系,则策略无法执行删除操作。

创建流量控制2.0策略

  1. 进入API网关控制台页面。
  2. 根据实际业务在左侧导航栏上方选择实例。
  1. 在左侧导航栏选择“API管理 > API策略”。
  2. 在“策略管理”页面,单击“创建策略”。
  3. 在“选择策略类型”弹窗中,选择“插件策略 > 流量控制2.0”。
  4. 在“创建策略”弹窗中,根据下表参数说明,配置策略信息。

    表1 流量控制2.0参数说明

    参数

    说明

    策略名称

    填写策略的名称,根据业务规划自定义。建议您按照一定的命名规则填写策略名称,方便您快速识别和查找。

    支持中文、英文、数字、下划线,且只能以英文或中文开头,长度为3~255个字符。

    策略类型

    固定为“流量控制2.0”。

    描述

    填写策略的描述信息。长度为1~255个字符。

    策略内容

    策略的配置内容,支持表单配置和脚本配置两种方式。

    流控类型

    推荐使用高性能流控。

    • 高精度流控:高并发场景下实例内部会有一定的性能损耗,适用于并发量较小的场景。
    • 高性能流控:高并发场景下实例内部性能损耗较小,单位时间内会偶现较小的误差值,适用于并发量较大的场景。
    • 单机流控:实例的每个节点各自进行流控,高并发场景下实例内部性能损耗最小,单位时间内会存在一定的误差值,适用于并发量更大的场景。

    策略生效范围

    • 单个API生效

      对单个API进行流量统计和控制。

    • API共享生效

      对绑定了该策略的所有API进行总流量统计和控制。

    时长

    流量限制的时长,单位可选秒、分钟、小时、天。

    • 与“API流量限制”配合使用,表示单位时间内的单个API请求次数上限。
    • 与“用户流量限制”配合使用,表示单位时间内的单个用户请求次数上限。
    • 与“凭据流量限制”配合使用,表示单位时间内的单个凭据请求次数上限。
    • 与“源IP流量限制”配合使用,表示单位时间内的单个IP地址请求次数上限。

    API流量限制

    单个API被调用次数上限。

    与“时长”配合使用,表示单位时间内的单个API请求次数上限。

    用户流量限制

    单个用户调用API次数上限,如果API认证方式为IAM认证,用户流量根据项目ID来限制;如果API认证方式为APP认证,用户流量根据账号ID来限制账号ID和项目ID请参考下文“特殊租户”配置说明。

    • 不超过“API流量限制”。
    • 与“时长”配合使用,表示单位时间内的单个用户请求次数上限。
    • 如果主账号下有多个子用户访问API,按主账号累计的调用次数进行限制。

    凭据流量限制

    单个凭据调用API次数上限,仅适用于API的安全认证方式为APP认证时。

    • 不超过“API流量限制”。
    • 与“时长”配合使用,表示单位时间内的单个凭据请求次数上限。

    源IP流量限制

    单个IP地址调用API次数上限。您可以选择配置实例的“real_ip_from_xff”参数使用X-Forwarded-For头中的IP作为流控的判断依据。

    • 不超过“API流量限制”。
    • 与“时长”配合使用,表示单位时间内的单个IP地址请求次数上限。

    参数流控配置

    参数流控配置开关。开启后,以参数维度进行流控限制。

    定义参数

    定义用于规则匹配的参数。

    • 参数位置:用于规则匹配的参数位置。
      • path:API请求的URI,系统默认配置。
      • method:API请求方法,系统默认配置。
      • Header:请求头的key值。建议不要设置敏感信息,以防泄露。
      • Query:QueryString的key值。
      • System:系统参数。
    • 参数:用于判断与规则匹配中的参数值是否匹配。

    定义规则

    定义规则的匹配条件,以及API流量限制和时长。

    单击“添加规则”,可添加多个规则。

    • 规则

      单击,可添加多个条件表达式,选择“定义参数”中的参数名和判断条件,以及输入参数值。

      • =为等于
      • !=为不等于
      • pattern为正则表达式
      • enum为枚举值,多个参数值之间用英文逗号分隔
    • API流量限制

      API调用次数的最大值。

    • 时长

      定义规则的流量控制时长,如果此处不配置时长,规则的流量控制时长以“策略基本信息”的时长为准。

    例如,在“定义参数”中添加参数“Host”,参数位置选择“Header”;在“定义规则”中添加一条规则,匹配条件设置成“Host = www.abc.com”,API流量限制为10,时长为60s。表示在60s内,对于请求头域中Host参数等于“www.abc.com”的API,且API调用次数达到10,参数流控生效。

    特殊流控配置

    特殊流控配置开关。开启后,“基础流控”的用户流量限制/凭据流量限制与“特殊流控”的特殊租户/特殊凭据共同作用时,以特殊流控值为准。

    特殊租户

    租户ID为账号ID或项目ID。

    阈值为单位时间内,此租户访问API的最大值,不超过“基础流控”的API流量限制值。

    特殊凭据

    选择已有凭据,阈值为单位时间内,此凭据访问API的最大值,不超过“基础流控”的API流量限制值。

  5. 单击“确定”。

    如果您需要复制已创建的策略,请在已创建策略的“操作”列中单击“克隆”配置参数即可。克隆策略的名称不能与已创建的策略名称重复。

  6. 策略创建后,您还需要为策略绑定API,才能使策略对API生效。

脚本配置示例

{
  "scope": "basic",
  "default_interval": 60,
  "default_time_unit": "second",
  "api_limit": 100,
  "app_limit": 50,
  "user_limit": 50,
  "ip_limit": 20,
  "specials": [
    {
      "type": "app",
      "policies": [
        {
          "key": "e9230d70c749408eb3d1e838850cdd23",
          "limit": 10
        }
      ]
    },
    {
      "type": "user",
      "policies": [
        {
          "key": "878f1b87f71c40a7a15db0998f358bb9",
          "limit": 10
        }
      ]
    }
  ],
  "algorithm": "counter",
  "parameters": [
    {
      "id": "3wuj354lpptv0toe0",
      "value": "reqPath",
      "type": "path",
      "name": "reqPath"
    },
    {
      "id": "53h7e7j11u38l3ocp",
      "value": "method",
      "type": "method",
      "name": "method"
    },
    {
      "id": "vv502bnb6g40td8u0",
      "value": "Host",
      "type": "header",
      "name": "Host"
    }
  ],
  "rules": [
    {
      "match_regex": "[\"Host\",\"==\",\"www.abc.com\"]",
      "rule_name": "u8mb",
      "time_unit": "second",
      "interval": 2,
      "limit": 5
    }
  ]
}

为策略绑定API

  1. 单击策略名称,进入策略详情。
  2. 在API列表区域选择环境后,单击“绑定API”。
  3. 筛选API分组以及发布环境,勾选所需的API。

    支持通过API名称或标签筛选API,标签为创建API时定义的标签。

  4. 单击“确定”,绑定完成。

    • 如果单个API不需要绑定此策略,单击API所在行的“解绑”。
    • 如果批量API不需要绑定此策略,则勾选待解绑的API,单击列表上方“解绑”。最多同时解绑1000个API。

我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。 详情

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容