为多个规则

时间:2018-01-23 13:25:09

标签: ibm-datapower

我是DP的新人;

我使用很多规则获得了MPGW的策略,我希望他们所有人,或者至少是他们的POST / PUT请求,都可以运行GWscript进行日志记录。 - 我可以轻松地将GWS操作插入到所有指定的规则中吗? - 或者我可以制定单个规则(执行脚本)并让下一个处理实际的特定规则吗? (是否有多个规则处理?)

TIA!

2 个答案:

答案 0 :(得分:0)

好吧,有一个调用处理规则操作,您可能需要检查是否符合您的需求(如果这些操作比一个简单的GatewayScript操作更复杂)。有关https://www.ibm.com/support/knowledgecenter/SS9H2Y_7.6.0/com.ibm.dp.doc/action_definingreusablerules.html的可重复使用规则,请参阅KC 因此,您可以将呼叫处理规则操作添加到所有现有规则,也可以将GatewayScript操作本身删除到所有现有规则。这很“容易”,但还有一些工作要做 是否真的需要默认记录所有内容?这很容易淹没您的日志系统,因此请做好计划 另外,Log Action如何适合您的需求呢?

对不起,如果我的回复有点乱,只是输入我的想法。

答案 1 :(得分:0)

正如八月已经说过你可以选择"可重用规则"使用呼叫处理规则,但恕我直言,这变得非常混乱,特别是如果你有很多规则。

我通常选择两个选项中的一个,我称之为" 可重用服务"或" 切换操作" (是的,我自己编写了这些名称,因此您无法在DataPower文档中找到它)...

"可重复使用的服务"是我为许多客户实现的东西,我通常在Loopback中使用XML防火墙(但MPGW也可以)。你可以在那里有许多不同的功能,例如记录,转换,验证等等,然后你有一个更简单的" URL-Open()在每个规则中调用此服务。 您可以锁定XMLFW以仅侦听127.0.0.1,从而使其隔离。这仍然会强制您将调用添加到每个规则,但也许您可以将URL-Open()添加到现有的GWS或共享脚本......

我用过的另一种方法" REST"基于网关的是编码" Switch Action"。然后你设置了更少的规则(或者甚至只是一个),但我尝试为每个HTTP方法设置一个规则,然后在第一个Action中添加一个GWS(可以通过"可重用服务")查看URI(通常)和/或Header并运行Switch()来加载特定的GWS模块。每个GWS模块都根据Switch()命名,因此很容易跟踪和切换模块"可以调用其他共享模块,使代码更清晰(更小)。 这样做的好处当然是更少的规则和更高效的代码,但是你失去了一些疏忽(图形化),但是当你将模块分开与之前的规则相匹配时,你可以通过查看包含的GWS文件来掌握它。如果您为每个服务/方法/规则添加一个GWS目录,那么您将比查看(或添加)代码更容易完成任务。

local:///GWS/MyMPGWRestGW/index.js  <-- This is your main script
local:///GWS/MyMPGWRestGW/POST/createSomething.js
local:///GWS/MyMPGWRestGW/POST/createSomethingElse.js
local:///GWS/MyMPGWRestGW/PUT/updateSomething.js
local:///GWS/MyMPGWRestGW/GET/fetchMeSomething.js
local:///GWS/MyMPGWRestGW/DELETE/deleteSomething.js
local:///GWS/MyMPGWRestGW/HEAD/echoSomething.js

在很快发布的DataPower固件中我希望(已经有一个开放的演示版)我们将获得一个名为&#34; API Gateway &#34;的新服务。这可能适用于这些场景。我没有太多可以分享的信息,但是如果您抓住演示(Docker设置),您可以访问运行它的DataPower并查看新的API网关服务:https://github.com/ibm-apiconnect/apigateway-experimental

考虑到这一点,我们很快就会有更好的工具来创建这些场景......注意!请注意 MIGHT ,因为我们无法知道实际发布的内容,或者我们是否可以将其用作服务,或者仅用于API Connect!