Как определить запросы, полученные в управлении Azure API

у нас есть производственная проблема, когда заказ подается дважды. В настоящее время у нас есть API для заказа, и мы предоставляем его клиенту с помощью управления API, и в нем у нас есть политики для сопоставления URL-адресов для клиентов, обращающихся к фактическим.

Теперь наш фактический API получил 2 запроса, поэтому мы думали, что клиент отправил дважды, но они подтвердили, что они не отправляли дважды, поэтому либо есть проблема с управлением API, которое запустило 2 запроса.

Как я могу определить запрос, полученный управлением API? Есть ли вероятность, что управление API вызовет запрос дважды?

Цените любые указатели


person user226917    schedule 12.06.2017    source источник


Ответы (1)


Единственный способ выполнить запрос дважды в APIM - это использовать политику Retry или вручную с помощью SendRequest. В противном случае это должен быть клиент, дважды вызывающий ваш API. Каждый запрос в APIM получает собственный уникальный идентификатор, доступный в политиках как context.RequestId, это основной способ их отслеживания и идентификации. Но эти идентификаторы создаются внутри самого APIM, поэтому они полезны только в том случае, если вы отслеживаете вызов из APIM в серверную часть.

Ваш лучший вариант сейчас - попытаться идентифицировать запросы по IP-адресу клиента, методу, URI и временным рамкам. APIM позволяет вам собирать журналы за определенные периоды времени (лучше, если они будут короткими) в JSON или CSV с данными, о которых я упоминал выше. Для этого просмотрите отчет byRequest (https://docs.microsoft.com/en-us/rest/api/apimanagement/reports#ReportByRequest), возьмите JSON / CSV и попытайтесь определить интересующие вызовы,

В будущем вы можете изучить возможность подключения своей службы к Azure Monitor (https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-use-azure-monitor) или вести аналитику, которая обеспечивает более простой способ проходить бревна.

person Vitaliy Kurokhtin    schedule 13.06.2017