我是Apigee新手。
我正在努力了解斯派克逮捕政策。
我正在查看此文档:
http://apigee.com/docs/api-services/content/shield-apis-using-spikearrest
http://apigee.com/docs/api-services/content/policy-attachment-and-enforcement
我无法理解的一件事是,当Spike Arrest Policy应用于ApiProxy时,是否针对每个Key / Client Dev Application应用了速率限制,还是在所有Keys / Client Dev应用程序之间共享?
例如,如果我们有以下配置:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SpikeArrest async="false" continueOnError="false" enabled="true" name="spikearrest-1">
<DisplayName>SpikeArrest-1</DisplayName>
<FaultRules/>
<Properties/>
<Identifier ref="request.header.some-header-name"/>
<MessageWeight ref="request.header.weight"/>
<Rate>50ps</Rate>
</SpikeArrest>
和客户端开发应用程序:
1. DevApp1
2. DevApp2
DevApp1
和DevApp2
之间是否共享50ps的速率限制,或者DevApp1
和DevApp2
每次获得50ps的速率限制?
谢谢,
答案 0 :(得分:2)
您可以使用任何预定义变量: http://apigee.com/docs/api-services/api/variables-reference
可能是Spike Arrest最常用的变量是client.ip
。
Edge将使请求消息的所有元素可用。如果您的客户端将request_id(又称API密钥)作为查询参数添加到请求中,例如api.call.com?client_id=u34r8ur
,那么您可以将Spike Arrest Identifier中的变量设置为:
<Identifier ref="request.queryparam.client_id"/>
或者如果它在HTTP标头中:
<Identifier ref="request.header.client_id"/>
希望有所帮助!
答案 1 :(得分:0)
由您的标识符标识的per app。