Vägledning för API-begränsning för Azure Data Manager for Agriculture

Begränsning begränsar antalet begäranden till en tjänst inom en tidsperiod för att förhindra överanvändning av resurser. Begränsningen av REST-API:et i Azure Data Manager for Agriculture ger mer konsekventa prestanda inom en tidsperiod för kunder som anropar tjänstens API:er.

Azure Data Manager for Agriculture kan hantera en stor mängd begäranden. Om ett överväldigande antal begäranden inträffar från några få kunder bidrar begränsningen till att upprätthålla optimal prestanda och tillförlitlighet för alla kunder.

Begränsningsgränser är beroende av den valda versionen och funktionerna i den produkt som en kund använder. Azure Data Manager for Agriculture har stöd för två olika versioner:

  • Standard: Den version som vi vanligtvis rekommenderar.
  • Grundläggande: Lämplig för prototypkrav.

Dessa gränser fungerar inom tre tidsfönster (per minut, fem minuter och per månad) för att skydda mot plötsliga trafiktoppar.

Den här artikeln visar hur du spårar antalet begäranden som återstår innan du når gränsen och hur du svarar när du når gränsen. Begränsningsgränser gäller för dessa API:er.

Klassificering av API:er

Azure Data Manager for Agriculture-API:er delas in i tre huvudkategorier:

  • Skrivåtgärder: API:er som använder REST API-metoder som PATCH, POSToch DELETE för att ändra data.
  • Läsåtgärder: API:er som använder REST API-metodtypen GET för att hämta data, inklusive sök-API:er av metodtypen POST.
  • Tidskrävande jobbåtgärder: Tidskrävande asynkrona jobb-API:er som använder REST API-metodtypen PUT.

De övergripande tillgängliga kvotenheterna, som beskrivs i följande tabell, delas mellan dessa kategorier. Om du till exempel använder hela kvoten för skrivåtgärder innebär det ingen återstående kvot för andra åtgärder. Varje åtgärd använder en specifik kvotenhet, vilket hjälper dig att spåra den återstående kvoten för ytterligare användning.

Åtgärd Enhetskostnad för varje begäran
Skriva 5
Läsa 1 1
Tidskrävande jobb: lösningsinferens 5
Tidskrävande jobb: servergruppsåtgärd 5
Tidskrävande jobb: bild rastrering 2
Tidskrävande jobb: sammanhängande borttagning av en entitet 2
Långvarigt jobb: väderinmatning 1
Långvarigt jobb: satellitinmatning 1

1En extra enhetskostnad beaktas för varje objekt som returneras i svaret när du hämtar mer än ett objekt.

API-gränser för den grundläggande versionen

I följande tabell visas den totala mängden tillgängliga enheter per kategori för basic-versionen:

Åtgärd Tidsintervall för begränsning Enheter återställs efter varje tidsfönster
Skriva/läsa Per minut 25,000
Skriva/läsa Per fem minuter 100,000
Skriva/läsa Per månad 5,000,000
Tidskrävande jobb Per fem minuter 1000
Tidskrävande jobb Per månad 100,000

API-gränser för standardversionen

Standardversionen erbjuder en femfaldig ökning av API-kvoten per månad jämfört med basic-versionen. Alla andra kvotgränser förblir oförändrade.

I följande tabell visas den totala mängden tillgängliga enheter per kategori för standardversionen:

Åtgärd Tidsintervall för begränsning Enheter återställs efter varje tidsfönster
Skriva/läsa Per minut 25,000
Skriva/läsa Per fem minuter 100,000
Skriva/läsa Per månad 25 000 000 1
Tidskrävande jobb Per fem minuter 1000
Tidskrävande jobb Per månad 500 000 1

1Den här gränsen är fem gånger så stor som basicversionens gräns.

Felkod

När du når gränsen får du HTTP-statuskoden 429 För många begäranden. Svaret innehåller värdet Försök efter igen, som anger hur många sekunder programmet ska vänta (eller vila) innan nästa begäran skickas.

Om du skickar en begäran innan återförsöksvärdet förflutit bearbetas inte din begäran och ett nytt återförsöksvärde returneras. När den angivna tiden har gått kan du göra begäranden igen till Azure Data Manager for Agriculture. Att försöka upprätta en TCP-anslutning eller använda olika metoder för användarautentisering kringgår inte dessa gränser, eftersom de är specifika för varje klientorganisation.

Vanliga frågor och svar

Kan jag göra begäranden om läsåtgärder inom samma tidsperiod om jag överskrider den allokerade API-kvoten helt och hållet för skrivåtgärder inom en tidsperiod per minut?

Kvotgränserna delas mellan de angivna åtgärdskategorierna. Att använda hela kvoten för skrivåtgärder innebär ingen återstående kvot för andra åtgärder. Den här artikeln beskriver de specifika kvotenheter som förbrukas för varje åtgärd.

Hur beräknar jag det totala antalet lyckade begäranden som tillåts under en viss tidsperiod?

Det totala tillåtna antalet lyckade API-begäranden beror på vilken version du etablerade och tidsfönstret där du gör begäranden.

Med standardversionen kan du till exempel göra 25 000 (enheter återställs efter varje tidsfönster) / 5 (enhetskostnad för varje begäran) = 5 000 API:er för skrivåtgärder inom en minuts tidsperiod. Eller så kan du använda en kombination av 4 000 skrivåtgärder och 5 000 läsåtgärder, vilket resulterar i 4 000 * 5 + 5 000 * 1 = 25 000 totala förbrukningsenheter.

På samma sätt kan du utföra 5 000 000 (enheter återställs efter varje tidsfönster) / 1 (enhetskostnad för varje begäran) = 5 000 000 läsåtgärds-API:er inom en månad.

Hur många sensorhändelser kan en kund mata in som maximalt antal?

Systemet tillåter högst 100 000 händelseinmatningar per timme. Även om nya händelser accepteras kontinuerligt kan det uppstå en fördröjning i bearbetningen. Fördröjningen kan innebära att dessa händelser inte är omedelbart tillgängliga för utgående scenarier i realtid tillsammans med inmatningen.

Nästa steg