<ph type="x-smartling-placeholder"></ph>
您正在查看 Apigee Edge 文档。
转到
Apigee X 文档。 信息
学习内容
通过本教程,您将学会:
- 添加影响请求和响应的政策。
- 了解此政策的影响。
所需条件
- 代理中至少有一个政策(也是入门教程的一部分)。
- 您的机器上安装了
curl
,以便通过命令行进行 API 调用。
添加 Spinke Arrest 政策
在本教程中,您将添加并配置 SpikeArrest 政策,以防止目标服务因使用量、错误客户端或恶意攻击而出现突发流量高峰。请求数超过速率限制时,API 会针对请求返回 HTTP 500 错误。
将 Spoke Arrest 政策添加到 API 代理:
- 登录 apigee.com/edge。
- 在左侧导航栏中,选择开发 > API 代理。
- 选择要添加 Skeke Arrest 政策的 API 代理。
如果您按照入门教程进行操作,则可以将其添加到您在创建 API 代理中创建的“getstarted”代理。
- 在新 API 代理的编辑器中,点击开发标签页:
API 代理编辑器让您可查看 API 代理的结构并配置其流。编辑器将显示代理的请求和响应消息流的直观表示,以及定义代理的底层 XML 的可修改显示。
- 在左侧导航窗格中,点击代理端点 > 默认下的 PreFlow。(其他教程将介绍 流 的概念。)
- 点击与请求 PreFlow 相对应的 +步骤按钮。此时会显示您可以创建的所有政策的分类列表。
- 在“流量管理”类别中选择 Spke Arrest。此时会显示“新建政策”对话框:
- 保留默认名称,然后点击添加。新政策将附加到请求的 PreFlow 流。
- 在导航器中,确保代理端点 > 默认下的 PreFlow 仍处于选中状态,并在 API 代理编辑器中注意以下内容:
- 在 API 代理编辑器左侧的导航器的政策下添加了新的 Spoke Arrest-1 政策。
- 将 Spinke Arrest-1 图标添加到了 API 代理编辑器顶部中心的设计师视图,此视图是代理消息流的直观表示。
- 政策的 XML 显示在 API 代理编辑器底部中心的代码视图中。
- 在导航器的“政策”下选择 Spke Arrest-1,并在 API 代理编辑器中注意以下内容:
- 政策详细信息显示在 API 代理编辑器顶部中心的设计师视图中。
- 政策的 XML 显示在 API 代理编辑器底部中心的代码视图中。
- 政策的 XML 元素和属性值显示在 API 代理编辑器右侧的属性检查器中。
-
在政策的 XML 中,将
<Rate>
元素的值更改为 1pm(在云端会转换为每 60 秒允许 2 次请求左右)。您可以将速率指定为每分钟 (
pm
) 或每秒 (ps
) 整数值。这是一个非常高的限额,仅在本教程中用于演示政策。通常,您可以将其设置为更高的限额。请注意,属性检查器中的
Rate
值也会更改为“1pm”。或者,您也可以在属性检查器中更改速率值,该值会反映在 XML 视图中。 - 点击保存,保存当前修订版本以及您所做的更改。
-
使用
curl
调用 API,将 Apigee 组织名称替换为 org_name:curl "http://org_name-test.apigee.net/getstarted"
例如:
curl "http://ahamilton-eval-test.apigee.net/getstarted" | python -m json.tool
确保请求成功,并且您看到的 XML 响应与以前相同。(您也可以在网络浏览器中输入网址。)
- 在一分钟内再执行
curl
命令(或刷新浏览器窗口)两次或三次,并注意您会收到以下消息是因为超出该政策的速率限制:{ "fault": { "faultstring":"Spike arrest violation. Allowed rate : 1pm", "detail": { "errorcode":"policies.ratelimit.SpikeArrestViolation"} } }
如果您尝试在一分钟内进行更多调用,则应会继续收到故障消息。
- 修改政策,将 <
Rate>
限额设置为 15pm(在云端会转换为每 4 秒允许 2 次调用左右),然后保存 API 代理。 - 执行
curl
命令或反复刷新浏览器(curl
更快)。请注意,如果您在 4 秒的间隔内进行一次或两次致电,调用将成功。如果您快速执行调用,并在 4 秒内超过两次次调用,应该会收到故障。但每 4 秒间隔之后,就可以继续进行调用,而不是在一分钟内都被阻止(设置为 1pm)。