跳到主要内容

限频设置

限频设置提供了针对云开发资源的调用频率限制功能,可以有效防止资源被过度调用,保障服务稳定性。

支持资源类型

当前已支持配置限频的资源包括:

  • 云函数
  • 云托管服务

限频设置说明

在云开发平台配置限频的步骤如下:

  1. 登录云开发平台
  2. 在左侧导航栏选择【环境配置】,进入【安全管控】
  3. 选择要配置的资源类型(云函数限频/云托管限频)
  4. 根据需要配置限频规则:
    • 具体资源(云函数/云托管服务)
    • 资源维度限频
    • 客户端维度限频
  5. 点击【保存】应用配置

注意

  • 配置变更约1-2分钟生效
  • 建议先在测试环境验证配置效果
  • 过低的限频值可能影响正常业务

当前的限频设置包括两种维度:

  • 资源维度限频 - 限制资源整体调用频率
  • 客户端维度限频 - 限制单个客户端调用频率

资源维度限频

资源维度限频限制了指定资源的总调用频率,防止资源被过度调用导致服务不可用。

配置说明

  • 可配置范围:100 至环境最大 QPS
  • 计算方式:每秒请求数(QPS) = 对指定资源的总请求数/秒
  • 典型场景
    • 保护核心业务函数或服务,不被突发流量打垮
    • 限制第三方调用的频率
    • 控制资源使用成本

配置建议

  1. 根据业务峰值流量设置合理阈值
  2. 预留20%-30%缓冲空间应对流量波动
  3. 配合监控告警及时发现限频情况
  4. 重要业务可考虑单独环境避免相互影响

示例:某云函数平均QPS为80,峰值120,建议配置限频150 QPS

客户端维度限频

客户端维度限频用于限制单个客户端对指定资源的调用频率,防止恶意刷接口或用户过度使用资源。

配置说明

  • 可配置范围:0 至 30 QPS
  • 标识方式
    • UserID(云开发用户ID/微信openid):基于云开发的用户 ID,或从小程序端请求时带有的用户 openid
    • ClientIP(客户端IP地址):基于发起请求的客户端 IP 地址
  • 选择建议
    • 有用户体系的业务选择UserID
    • 匿名访问场景选择ClientIP
    • 同一资源只能选择一种标识方式
  • 典型场景
    • 防止用户频繁刷新页面
    • 限制机器人爬虫行为
    • 控制API调用配额
    • 保护敏感接口不被爆破

配置示例

# UserID维度限频示例
资源: userProfile
限频类型: UserID
阈值: 5 QPS

效果:
- UserID=123 限制为5 QPS
- UserID=456 限制为5 QPS
- 无UserID的请求不受限

# ClientIP维度限频示例
资源: loginAPI
限频类型: ClientIP
阈值: 3 QPS

效果:
- IP=1.2.3.4 限制为3 QPS
- IP=5.6.7.8 限制为3 QPS

注意事项

  • UserID方式需要请求携带用户身份信息,未带有 UserID的请求会被忽略并放通
  • ClientIP可能误伤共享IP的用户
  • 重要业务建议同时配置资源维度和客户端维度限频

最佳实践

分级限频策略

  1. 核心业务:设置较宽松的限频(如资源维度500 QPS + 客户端维度10 QPS)
  2. 普通业务:中等限频(如资源维度200 QPS + 客户端维度5 QPS)
  3. 高风险接口:严格限频(如资源维度100 QPS + 客户端维度1 QPS)

监控与告警

  • 配置云监控告警规则,当限频触发率达到阈值时通知
  • 记录限频日志,分析被限制的请求特征
  • 设置限频触发时的友好错误提示

测试验证

  1. 先在测试环境验证限频配置
  2. 使用压力测试工具模拟不同场景
  3. 逐步调整至最优配置

限频触发处理

  • 返回429状态码和明确错误信息
  • 客户端应实现指数退避重试机制
  • 关键业务可考虑排队或降级方案

配置检查清单

  • 是否设置了合理的缓冲空间
  • 是否考虑了业务峰值
  • 是否配置了监控告警
  • 是否测试验证过配置效果
  • 是否有处理限频触发的方案