Průvodce kvótami a omezeními počtu
Společnost FedEx každý den obdrží několik tisíc požadavků na rozhraní API. Ke zvládnutí tohoto velkého objemu používáme tři mechanismy regulace. V zájmu zajištění efektivního a účinného přidělování zdrojů společnosti FedEx jsou zavedeny kvóty, omezení počtu a prahové hodnoty.
Kvóty jsou definovány pro jednotlivé organizace a projekty rozhraní API.
Kvóty pro jednotlivé organizace
Kvóta transakcí představuje maximální povolený počet požadavků na rozhraní API z jedné organizace v rámci jednoho dne. To znamená, že spotřebitelé rozhraní API by měli brát v úvahu celkový počet požadavků na rozhraní API odeslaných v rámci všech projektů v jedné organizaci. Každý požadavek se započítává stejně bez ohledu na objem dat vrácený v odpovědi rozhraní API společnosti FedEx.
Příklad: Organizace má nastavenou kvótu 500 000 požadavků na rozhraní API na den. Pokud organizace během prvních několika hodin dne dosáhne 500 000 odeslaných požadavků, vyčerpá tím svou kvótu. Po zbytek dne bude pro každý požadavek vrácen kód chyby 429 – Příliš mnoho požadavků – Byla překročena kvóta pro denní počet transakcí. Zkuste to znovu po 00:00 GMT.
Kvóty pro jednotlivé projekty rozhraní API
Tato kvóta se uplatňuje na dvou různých úrovních: projekt a funkce.
Co je myšleno funkcemi?
Jednotlivá rozhraní API se dělí do skupin podle funkcí, které nabízejí. Každá skupina funkcí představuje sadu jednoho nebo více koncových bodů. Například funkce rozhraní API pro sledování nabízí 6 koncových bodů rozhraní API, zatímco funkce ověření adresy nabízí pouze 1 koncový bod rozhraní API.
Výchozí maximální kvóta na funkci a projekt (PCPP) pro funkci sledování je 100 tisíc požadavků za den. To znamená, že pokud provoz z kteréhokoli projektu v rámci organizace do kteréhokoli z 6 koncových bodů v rámci funkce sledování překročí tento limit, budeme vám až do konce dne posílat chybu 429 – Příliš mnoho požadavků. To platí pro všechny následné požadavky na sledování odeslané do kteréhokoli z 6 koncových bodů.
Příklad: Pokud má projekt limit 100 tisíc požadavků na funkci sledování (s 6 koncovými body), do limitu 100 tisíc se bude počítat celkový počet transakcí pro všech 6 koncových bodů. Pokud váš projekt tento limit překročí, až do konce dne (00:00 GMT) u následných transakcí sledování obdržíte kód chyby 429 – Příliš mnoho požadavků – Byla překročena kvóta pro denní počet transakcí.
Omezení počtu
Pro každý projekt je stanoveno omezení počtu transakcí na 1 400 transakcí během 10 sekund. K regulaci omezení dojde, pokud transakce překročí tento limit během každého období 10 sekund.
Pokud je tohoto limitu dosaženo během prvních několika sekund, veškeré transakce odeslané během zbývající části 10sekundového časového období budou regulovány. Během tohoto období regulace bude vracen chybový kód „429 – Příliš mnoho požadavků“.
Pokud společnost FedEx během prvních 2 sekund obdrží 1 400 požadavků, veškeré následné transakce po dobu dalších 8 sekund budou regulovány a bude vrácena chybová zpráva 429 – Příliš mnoho požadavků – Obdrželi jsme příliš mnoho požadavků v krátkém čase. Chvíli počkejte a zkuste to znovu.
Po uplynutí 10 sekund bude regulace omezení zrušena a začne se znovu zaznamenávat počet požadavků během dalších 10 sekund.
Prahové hodnoty
V zájmu zajištění procesu autorizace v rozhraních API společnosti FedEx se prahové hodnoty uplatňují na úrovni IP adresy. Tento mechanismus lze použít pouze pro službu generování autorizačního tokenu. Existují dva typy prahových hodnot:
- Prahová hodnota pro velký počet: 3 přístupy za sekundu trvale po dobu 5 sekund
- Prahová hodnota pro průměrný počet: 1 přístup za sekundu trvale po dobu 2 minut
- Jakmile veřejná IP adresa překročí některou z těchto prahových hodnot, budou na ni uplatněny sankce po dobu 10 minut a pro všechny další požadavky během tohoto 10minutového období se vrátí stavový kód 403 –Zakázáno.
- Období sankce se prodlouží, pokud spotřebitelé rozhraní API i nadále překračují některou prahovou hodnotu během tohoto období sankce. Uživatelé rozhraní API mohou období sankce ukončit tím, že během následujících 10 minut nebudou překračovat příslušnou prahovou hodnotu.
- Mechanismy pracující s prahovou hodnotou jsou založeny na veřejné IP adrese uživatele.Pokud si uživatel vytvoří 10 instancí virtuálních počítačů za jednou veřejnou IP adresou, budou se pro prahovou hodnotu započítávat všechny požadavky z příslušné IP adresy.
Správa provozu
Každý z těchto tří mechanismů se týká samostatného aspektu správy provozu:
Kvóty uplatňované na úrovni organizace: Tato kvóta transakcí se uplatňuje na souhrnný provoz vygenerovaný všemi rozhraními API v rámci organizace.
Kvóty uplatňované na úrovni projektu: Tato kvóta transakcí se uplatňuje na souhrnný provoz vygenerovaný pro jednu funkci rozhraní API v rámci projektu.
Omezení počtu uplatňovaná na úrovni projektu: Toto omezení počtu se uplatňuje na souhrnný provoz vygenerovaný všemi rozhraními API v rámci projektu.
Mezní hodnoty se aplikují na úrovni adres IP.
Poznámka: Společnost FedEx může regulovat kteréhokoli z výše uvedených mechanismů omezení, aby se zabránilo nesprávnému používání, nadměrnému používání a zneužití. Společnost FedEx si vyhrazuje právo změnit přidělení bez předchozího upozornění, aby se zachoval rovný přístup mezi spotřebiteli rozhraní API a aby prostředky společnosti FedEx byly přidělovány efektivně a účinně.
Často kladené dotazy
Započítávají se do kvóty všechny transakce rozhraní API organizace z různých projektů?
Kvóta se uplatňuje na úrovni organizace. V rámci jedné organizace může existovat jeden či více projektů a v rámci každého projektu může existovat jedno či více rozhraní API. V důsledku toho se do denní kvóty započítává souhrnný provoz vygenerovaný všemi rozhraními API z různých projektů v rámci organizace.
Pokud je stejná chyba 429 vrácena pro překročení kvóty i pro překročení omezení počtu, jak lze určit, ke kterému překročení došlo?
Překročení můžete určit na základě chybové zprávy.
PŘEKROČENÍ | CHYBOVÁ ZPRÁVA |
---|---|
Kvóty pro jednotlivé organizace | Příliš mnoho požadavků: Byla překročena kvóta pro denní počet transakcí. Zkuste to znovu po 00:00 GMT. |
Kvóty pro jednotlivé projekty rozhraní API | Příliš mnoho požadavků: Byla překročena denní kvóta na projekt. Zkuste to znovu po 00:00 GMT. |
Omezení počtu | Příliš mnoho požadavků: Byla překročena prahová hodnota pro omezení počtu. Zkuste to znovu za 10 sekund. |
Jaké je řešení v případě překročení prahové hodnoty?Platnost tokenu OAuth je jedna hodina. Doporučujeme, aby spotřebitelé rozhraní API tento token používali celou příslušnou hodinu a o nový token požádali až po vypršení platnosti předchozího.
Co je příkladem situace při překročení prahové hodnoty?
5sekundový časový úsek je určen pro sledování prahové hodnoty pro velký počet a 2minutový pro sledování prahové hodnoty pro průměrný počet. Během obou těchto časových úseků je v případě překročení některé z hraničních hodnot pro určitou adresu IP uplatněna sankce za porušení prahové hodnoty.
Příklad: Pokud jsou pro IP adresu zaznamenány 3 přístupy za sekundu během 2 sekund, následně počet přístupů klesne pod 3 za sekundu, poté prahová hodnota pro velký počet nebude překročena. Pokud jsou však pro IP adresu zaznamenávány 3 přístupy za sekundu trvale po dobu 5 sekund a následně 15 přístupů za 5 sekund, znamená to, že byla překročena prahová hodnota pro velký počet 14 přístupů za 5 sekund.