Jak zaimplementować ograniczanie szybkości na platformie Azure API Management
Przy użyciu ograniczania szybkości można ograniczyć liczbę wywołań interfejsu API, które użytkownik lub usługa może wykonać w danym przedziale czasu. Ograniczanie szybkości pomaga zapewnić sprawiedliwe użycie i uniemożliwia każdemu pojedynczemu użytkownikowi lub usłudze monopolizację zasobów interfejsu API. Usługa Azure API Management (APIM) zapewnia wygodny sposób implementowania ograniczania szybkości dla interfejsów API.
Dlaczego usługa Azure API Management?
Usługa Azure API Management to zaawansowana i wszechstronna usługa w chmurze, która pomaga organizacjom publikować interfejsy API dla deweloperów zewnętrznych, partnerskich i wewnętrznych. Udostępnia narzędzia do zabezpieczania wywołań interfejsu API, zarządzania nimi i skalowania. Jedną z jego funkcji jest kontrolowanie ograniczania szybkości, co jest przydatne do utrzymania kondycji i niezawodności interfejsów API.
Konfigurowanie ograniczania szybkości na platformie Azure API Management
Usługa Azure API Management używa zasad do wymuszania ograniczania szybkości. Te zasady można zdefiniować w różnych zakresach: globalnym, produktowym lub specyficznym dla interfejsu API. Ta elastyczność umożliwia dostosowanie ograniczania szybkości zgodnie z wymaganiami interfejsu API i wzorcami użycia.
Przed rozpoczęciem implementowania ograniczania szybkości zdecyduj się na limity szybkości. Ustawione limity zależą od pojemności interfejsu API i oczekiwanego ruchu. Typowe limity są ustawiane jako liczba wywołań na sekundę, minutę lub godzinę. Na przykład możesz zezwolić na 1000 wywołań na minutę na użytkownika.
Aby zdefiniować limity szybkości interfejsu API w usłudze Azure API Management, użyj rate-limit
zasad lubrate-limit-by-key
. Były określa limit dla wszystkich użytkowników, podczas gdy ten ostatni zezwala na limity na zidentyfikowany klucz (np. subskrypcja lub identyfikator użytkownika).
Oto przykład zasad, które ograniczają wywołania do 1000 na minutę.
<policies>
<inbound>
<base />
<rate-limit calls="1000" renewal-period="60" />
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
Po przekroczeniu określonej liczby wywołań platforma Azure API Management wysyła kod stanu 429 Zbyt wiele żądań wraz z retry-after
nagłówkiem odpowiedzi i komunikatem wskazującym, kiedy można spróbować ponownie.
HTTP/1.1 429 Too Many Requests
content-type: application/json
retry-after: 60
{
"statusCode": 429,
"message": "Rate limit is exceeded. Try again in 60 seconds."
}
Uwidacznianie informacji o limicie szybkości dla nagłówków odpowiedzi
Domyślnie usługa Azure API Management nie uwidacznia informacji o limicie szybkości w nagłówkach odpowiedzi. Brak komunikacji z limitami szybkości sprawia, że aplikacje trudno jest uniknąć przekroczenia limitu i ograniczenia przepustowości. Aby uwidocznić informacje o limicie szybkości, rozszerz rate-limit
zasady za remaining-calls-header-name
pomocą właściwości i total-calls-header-name
.
<policies>
<inbound>
<base />
<rate-limit calls="1000" renewal-period="60" remaining-calls-header-name="ratelimit-remaining" total-calls-header-name="ratelimit-limit" />
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
Po wywołaniu interfejsu API każda odpowiedź zawiera ratelimit-remaining
nagłówki i ratelimit-limit
, które komunikują, ile więcej wywołań interfejsu API może obsłużyć przed przekroczeniem limitu.
Podsumowanie
Implementowanie ograniczania szybkości na platformie Azure API Management ułatwia tworzenie niezawodnych i skalowalnych interfejsów API. Korzystając z ograniczania szybkości, możesz zapewnić, że interfejs API zapewnia użytkownikom niezawodną i wydajną obsługę. Pamiętaj, że kluczem jest znalezienie właściwej równowagi – zbyt ścisłej i może utrudnić użyteczność; zbyt łagodny i ryzykujesz przeciążenia interfejsu API. Dzięki starannemu planowaniu i ciągłego monitorowania można osiągnąć tę równowagę i zachować zdrowe środowisko interfejsu API.
Następne kroki
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla