Megosztás a következőn keresztül:


Sebességkorlátozás implementálása az Azure API Managementben

A sebességkorlátozás használatával korlátozhatja, hogy egy felhasználó vagy szolgáltatás hány API-hívást indíthat egy adott időszakban. A sebességkorlátozás segít biztosítani a tisztességes használatot, és megakadályozza, hogy egyetlen felhasználó vagy szolgáltatás monopolizálja az API-erőforrásokat. Az Azure API Management kényelmes módot kínál az API-k sebességkorlátozásának megvalósítására.

Miért érdemes az Azure API Managementet használni?

Az Azure API Management egy hatékony és sokoldalú felhőszolgáltatás, amely segít a szervezeteknek API-k külső, partneri és belső fejlesztőknek való közzétételében. Eszközöket biztosít az API-hívások biztonságossá tételéhez, kezeléséhez és skálázására. Ennek egyik funkciója a sebességkorlátozás szabályozása, amely hasznos az API-k állapotának és megbízhatóságának fenntartásához.

Sebességkorlátozás konfigurálása az Azure API Managementben

Az Azure API Management szabályzatokkal kényszeríti ki a sebességkorlátozást. Ezeket a szabályzatokat különböző hatókörökben határozhatja meg: globális, termék- vagy API-specifikus. Ez a rugalmasság lehetővé teszi a sebességkorlátozások api-követelményeinek és használati mintáinak megfelelően történő testreszabását.

Mielőtt elkezdené a sebességkorlátozást, döntse el a sebességkorlátokat. A beállított korlátok az API kapacitásától és a várt forgalomtól függenek. A gyakori korlátok a másodpercenkénti, percenkénti vagy óránkénti hívások számaként vannak beállítva. Például felhasználónként 1000 hívást engedélyezhet percenként.

Az Azure API Managementben az API-ra vonatkozó forgalmi korlátok meghatározásához használja a rate-limit vagy rate-limit-by-key szabályzatokat. A rate-limit szabályzat minden felhasználóra vonatkozóan korlátot határoz meg. A rate-limit-by-key szabályzat engedélyezi az azonosított kulcsonkénti korlátokat (például egy előfizetést vagy egy felhasználói azonosítót).

Íme egy példa egy olyan szabályzatra, amely percenként 1000-ra korlátozza a hívásokat.

<policies>
  <inbound>
    <base />
    <rate-limit calls="1000" renewal-period="60" />
  </inbound>
  <backend>
    <base />
  </backend>
  <outbound>
    <base />
  </outbound>
  <on-error>
    <base />
  </on-error>
</policies>

Ha túllépi a megadott számú hívást, az Azure API Management egy 429 Too Many Requests állapotkódot, valamint a retry-after válaszfejlécet és egy üzenetet küld, amely jelzi, hogy mikor próbálkozhat újra.

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."
}

Sebességkorlát információinak megjelenítése válaszfejléceken

Az Azure API Management alapértelmezés szerint nem teszi elérhetővé a válaszfejléceken a sebességkorláttal kapcsolatos információkat. A korlátok kommunikációjának hiánya megnehezíti az alkalmazások számára, hogy elkerüljék a korlát túllépését és a lassítást. A sebességkorláttal kapcsolatos információk felfedéséhez bővítse ki a rate-limit szabályzatot a remaining-calls-header-name tulajdonságokkal.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>

Amikor most meghívja az API-t, minden válasz tartalmazza a ratelimit-remaining és ratelimit-limit fejléceket. A fejlécek közlik, hogy az API hány további hívást tud kezelni, mielőtt túllépi a korlátot.

Összegzés

A sebességkorlátozás azure API Managementben való implementálásával robusztus és méretezhető API-kat hozhat létre. A sebességkorlátozás használatával biztosíthatja, hogy az API megbízhatóan és hatékonyan szolgálja ki a felhasználókat. A kulcs az, hogy megtaláljuk a megfelelő egyensúlyt. Ha a sebességkorlát túl szigorú, akkor akadályozhatja a használhatóságot. Ha egy sebességkorlát túl engedékeny, azzal a kockázattal jár, hogy túlterheli az API-t. Gondos tervezéssel és folyamatos monitorozással ezt az egyensúlyt érheti el, és egészséges API-környezetet tarthat fenn.

Következő lépés