Политика предотвращения дублирования вызовов https на конечной точке Azure Api

У меня проблемы с дублированием вызовов на моей конечной точке Azure Api. Например, я вижу, что моя конечная точка:

теннис / гетболы

был вызван дважды

Первый: 2020-11-02T18: 07: 19.8261667Z

Второй: 2020-11-02T18: 07: 19.881239Z

Я хочу избежать этого второго вызова, который имеет ту же полезную нагрузку (например, я не делаю этот вызов, потому что он слишком близко, чем первый вызов, это нормально, если он будет через 5 секунд). Я что-то ищу с Политикой, но не нашел ничего интересного.


person ElRoro    schedule 04.11.2020    source источник


Ответы (1)


Судя по вашему описанию, возможно, вы захотите add rate limit использовать свой api. Я думаю, этот документ поможет вам.

В этой части описывается, как предотвратить вызов вашего api за короткое время. Вы можете изменить политику в соответствии с вашим индивидуальным запросом.

  1. Войдите на веб-страницу управления API и выберите целевой API ›Все операции› Дизайн.
  2. В разделе «Обработка входящих событий» выберите значок редактора кода (‹/›).
  3. Поместите курсор внутри элемента и выберите Показать фрагменты в правом верхнем углу.
  4. В правом окне в разделе «Политики ограничения доступа» выберите «+ Ограничить скорость вызова для каждой клавиши».
  5. Измените код ограничения скорости по ключу (в элементе) на следующий код:
calls="3" renewal-period="15" means you can call this api no more than 3 times within 15 seconds.

введите здесь описание изображения

<policies>
   <inbound>
     <rate-limit-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
     <base />
   </inbound>
   <backend>
     <base />
   </backend>
   <outbound>
     <set-header name="X-Powered-By" exists-action="delete" />
     <set-header name="X-AspNet-Version" exists-action="delete" />
     <redirect-content-urls />
     <base />
   </outbound>
   <on-error>
     <base />
   </on-error>
</policies>

После редактирования вы можете вызвать свой api, тогда вы обнаружите 429 Too many requests при слишком частом вызове в качестве вашей конфигурации.

person tiny-wa    schedule 05.11.2020
comment
Спасибо @Tinywa за ваш ответ. Это может быть решение, вы думаете, что можно параметризовать это ограничение, если вызовы имеют только одну и ту же полезную нагрузку? - person ElRoro; 05.11.2020
comment
Спасибо за ваш ответ. И, на мой взгляд, я не уверен, вернет ли api такой же ответ при вызове его с тем же параметром в течение короткого времени. Поэтому сложно параметризовать это ограничение. С другой стороны, я не знаю, как автоматически изменить политику в Azure. Поэтому я предлагаю сначала установить политику по вашему мнению (например, 1 раз в секунду) и изменить ее в соответствии с ежедневным использованием. - person tiny-wa; 06.11.2020