当前位置: 首页 > 知识库问答 >
问题:

香港API关键策略

贺海
2023-03-14

我想使用Kong作为所有上游服务的API网关。我想使用API密钥,以便我的客户可以使用它来使用他们被允许使用的一些API。

有一个用于管理API密钥的插件:https://docs.konghq.com/hub/kong-inc/key-auth/

但我想知道是否可以将属性添加到某个API键或将其链接到某个配置

让我举例说明:

我有3个API

  • API 1
  • API 2
  • API 3

在香港API网关上,我想使用速率限制。因此,我想为2个具有某些属性的客户生成API密钥

  • 客户X:基本订阅,API 1的速率限制为每分钟10个请求,API 2的速率限制为每分钟20个请求
  • 客户Y:API 2的高级订阅,其速率限制为每分钟5000次请求,API 3的速率限制为每分钟1000次请求

所以在香港,我为这3个API创建了3个服务,并添加了速率限制插件。有没有办法让rate limit插件知道(基于请求中发送的API密钥)它应该对刚刚输入的请求使用什么限制?

在我看来,每次我都需要为相同的API创建新的服务,并使用特定的速率限制和特定的值。在处理大量客户和api时,这感觉有点难以控制。

是否可以根据传递的API密钥获取速率限制值?

或者有什么解决办法?或者这是我们在API网关中想要的实际行为,如果是,为什么?

共有2个答案

高正初
2023-03-14

您还可以在消费者级别配置插件。这有效地将适当的速率限制应用于每个消费者(api密钥)。

文档中的示例代码:

$ curl -X POST http://kong:8001/consumers/{consumer}/plugins \
    --data "name=rate-limiting" \
     \
    --data "config.second=5" \
    --data "config.hour=10000"

文档:https://docs.konghq.com/hub/kong-inc/rate-limiting/#enabling-消费者插件

秋向阳
2023-03-14

香港企业版有一个名为“速率限制高级”的插件来解决这个问题。它允许您为每个速率限制插件指定一个“标识符”,对于这种特殊情况,您将使用“标识符:消费者”。如果您希望为相同的API和不同的消费者设置两个不同的速率限制,例如:

  • API2:consumerX的转速为20rpm

然后,您必须在使用者而不是api上配置速率限制。另外,在您的问题中,您指的是api;FYIapi对象自v0以来已弃用。13.0,您应该移动到route/service对象

 类似资料:
  • 我们使用keycloak来处理API网关中的身份验证(客户端/秘密)。 Kong api服务使用konnect托管插件引用KeyClope来验证客户端凭据并返回承载令牌。 未来对其他endpoint的调用将使用oauth2内省来通过KeyClope内省验证承载令牌 但是,当我通过Kong api gateway进行身份验证时,它会返回一个承载令牌,但该令牌无法自省。 如果我直接授权给KeyClop

  • 我可以配置Kong的速率限制插件,以便它在给定API中对每个endpoint实施限制,如下所示: 但是,我想为每个endpoint配置不同的速率限制。例如,我想允许: 使用每IP每秒5个请求的速率限制 这对香港有可能吗?我看到了一个与此相关的开放问题,但是否有任何解决方法?

  •  以下为面试问题: 1.你想从我们项目学到些什么? 2.你怎么理解speculative design? 3.为什么要用Maxmsp/Jitter? 4.你觉得Maxmsp/Jitter好用吗? 5.有什么要问的吗? 6.你在中国吗? 7.现在在做什么? 面试的是一个日本老师,他是这个art program的负责人,感觉他也不是很爱说话,就是有点那种软件技术用的很厉害,但是性格比较内向,不爱跟人沟

  • 1.介绍你的项目的动机 2.哪些是个人项目,哪些是学校作业(感觉港理非常了解且在意国内作品集培训现状) 3.针对我的学校作业的提问 3.1为什么做这个主题 3.2在这个过程怎么验证你的项目有效对于目标的用户 3.3测试过程发现了什么问题,怎么改进 3.4其他人怎么评价你的项目 3.5看你参加了很多比赛,为什么 4.你为什么想来香港学习sd,这个崭新的专业 5.你怎么定义服务设计 6.和你的本科相比

  • 目前,我的drools决策表如下所示: 现在我想让这个决策表看起来像。drl文件中的下一个: 那么如何修改决策表来实现我的目标呢? 那就是如何在决策表文件中使用“exists”关键字? 提前感谢!

  • 我正在观看有关使用Cassandra的Uber实时位置存储的谈话,并对分区键感到好奇。我最初的思路是拥有以下字段: ride_id driver_id 时间戳 纬度 经度 对于分区键,我在以下各项之间: < li >复合主键(ride_id,driver_id) < li >主键(ride_id) < li >主键(driver_id) 查询时,我想查询给定行程的位置数据,并可能查询给定驱动程序的