Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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.