【问题标题】:Executing same action for multiple rules对多个规则执行相同的操作
【发布时间】:2018-01-23 13:25:09
【问题描述】:

我是 DP 的新手;

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

TIA!

【问题讨论】:

    标签: ibm-datapower


    【解决方案1】:

    正如 August 已经说过的,您可以选择使用呼叫处理规则的“可重用规则”,但恕我直言,这会变得非常混乱,尤其是在您有很多规则的情况下。

    我通常采用我称之为“可重用服务”或“切换操作”的两个选项之一(是的,我自己编造了这些名称所以你不会在 DataPower 文档中找到它)...

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

    我用于基于“REST”的网关的另一种方法是编写“切换操作”。然后您设置更少的规则(甚至可能只是一个),但我尝试为每个 HTTP 方法设置一个规则,然后在第一个操作中添加一个 GWS(可以通过“可重用服务”记录)查看 URI(通常)和/ 或 Header 并运行 Switch() 以加载特定的 GWS 模块。每个 GWS 模块都是根据 Switch() 命名的,因此很容易跟踪,并且“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 固件中,我希望(已经有一个开放的演示)我们将获得一个名为“API Gateway”的新服务,它可能在这些场景中可用。我没有太多可以分享的信息,但是如果您获取演示(一个 Docker 设置),您可以访问运行它的 DataPower 并查看新的 API 网关服务的运行情况:https://github.com/ibm-apiconnect/apigateway-experimental

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

    【讨论】:

    • 让 API Connect 拯救我们所有人。我的上级告诉我,这个脚本所针对的客户有一个规则较少的路由域,因此我们可以应用逐条规则的方法,虽然它很原始,但它并不有趣。我对 DP 很新鲜,我还不熟悉 XML FW,所以我对你详细的建议有点不知所措。我会给你“不确定我什至可以尝试你的方法”接受答案的好处,因为它可能会促使我更好地了解机器。
    【解决方案2】:

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

    抱歉,如果我的回复有点混乱,但只是输入我想到的内容。

    【讨论】:

    • 抱歉,我花了一段时间才回复这个问题。我以为我可以检查每条规则并坚持使用 GWscript,但是我希望我的冗余操作少一些。感谢您输入想到的内容:)
    猜你喜欢
    • 2015-08-09
    • 1970-01-01
    • 2021-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-29
    • 1970-01-01
    • 2012-01-05
    相关资源
    最近更新 更多