Выполнение одного и того же действия для нескольких правил

Я новичок в DP;

У меня есть политика MPGW с множеством правил, и я желаю им всем или, по крайней мере, их запросам POST / PUT, чтобы они запускали GWscript для целей журналирования. - Могу ли я легко вставить действие GWS во все указанные правила? - Или я могу создать одно правило (выполнение сценария) и затем обработать фактическое специально предназначенное правило? (Есть ли обработка нескольких правил?)

TIA!


person IC4    schedule 23.01.2018    source источник


Ответы (2)


Как уже было сказано в августе, у вас есть возможность «многоразовых правил» с использованием правила обработки вызовов, но ИМХО это становится довольно запутанным, особенно если у вас много правил.

Обычно я выбираю один из двух вариантов, которые называю: «Служба многократного использования» или «Действие переключения» (и, да, я сам придумал эти названия, чтобы вы не нашел в документации DataPower) ...

«Служба многократного использования» - это то, что я реализовал для многих клиентов, и обычно я использую для нее брандмауэр XML в Loopback (но MPGW тоже будет работать). У вас может быть много разных функций, например регистрация, преобразование, проверка и т. д., а затем у вас есть «более простой» вызов URL-Open () для этой службы в каждом правиле. Вы можете заблокировать XMLFW, чтобы он слушал только 127.0.0.1 и, таким образом, изолировал его. Это все равно заставит вас добавить вызов к каждому правилу, но, возможно, вы можете добавить URL-Open () к существующему GWS или общему сценарию ...

Другой подход, который я использовал для шлюзов на основе "REST", - это кодирование "Switch Action". Затем вы устанавливаете меньше правил (или, может быть, даже одно), но я стараюсь иметь одно правило для каждого метода HTTP, а затем в первом действии я добавляю 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 (уже есть открытая демонстрация) мы получим новую услугу под названием «API Gateway», которую можно будет использовать в подобных сценариях. У меня не так много информации, которой я мог бы поделиться, но если вы возьмете демонстрацию (установка Docker), вы сможете получить доступ к DataPower, в котором она запущена, и увидеть новую службу шлюза API в действии: https://github.com/ibm-apiconnect/apigateway-experimental

Имея это в виду, скоро у нас могут появиться лучшие инструменты для создания таких сценариев ... NB! Обратите внимание на МОЖНО, поскольку мы не можем знать, что на самом деле будет выпущено, можем ли мы использовать его в качестве службы или будет ли он предназначен только для API Connect!

person Anders    schedule 24.01.2018
comment
Пусть API Connect спасет всех нас. Мой начальник сказал мне, что у клиента, для которого предназначен этот сценарий, есть домен маршрутизации с меньшим количеством правил, поэтому мы можем применить подход «правило за правилом», настолько примитивный, насколько это неинтересный. Я настолько новичок в DP, что еще не знаком с XML FW, поэтому я был несколько потрясен вашим подробным предложением. Я дам вам преимущество в том, что не уверен, что смогу даже попробовать ваш метод принятия ответа, поскольку это может побудить меня лучше узнать машину. - person IC4; 28.01.2018

Что ж, есть действие правила обработки вызовов, которое вы можете проверить, соответствует ли оно вашим потребностям (если оно более сложное, чем одно простое действие GatewayScript). См. KC о правилах многократного использования по адресу https://www.ibm.com/support/knowledgecenter/SS9H2Y_7.6.0/com.ibm.dp.doc/action_definingreusablerules.html
Итак, вы либо добавляете действие правила обработки вызовов ко всем существующим правилам, либо просто перетащите само действие GatewayScript во все существующие правила. Это «легко», но еще предстоит проделать некоторую работу.
Действительно ли необходимо регистрировать все по умолчанию? Это может легко переполнить вашу систему журналов, так что спланируйте это хорошо.
Также, как насчет действия журнала, может ли оно соответствовать вашим потребностям?

Извините, если мой ответ немного хаотичен, но просто набираю то, что приходит на мой взгляд.

person AugustZ    schedule 23.01.2018
comment
Извините, мне потребовалось время, чтобы вернуться к этой проблеме. Я предполагал, что могу просмотреть каждое правило и придерживаться GWscript, однако мне хотелось, чтобы у меня было менее повторяющееся действие. Я ценю то, что вы печатаете то, что приходит в голову :) - person IC4; 28.01.2018