Hub per sviluppatoriStato dell'APISupporto

Ottimizzazione dei limiti di velocità per i carichi di lavoro delle applicazioni

Gestisci la limitazione delle API e ottimizza l'utilizzo delle SP-API all'interno della tua applicazione.

Quando progetti la tua applicazione Selling Partner API (SP-API), devi considerare i limiti di frequenza delle risorse per API. L'API Selling Partner mantiene una quota di risorse per API per ciascun partner di vendita per mantenere la disponibilità ed evitare il sovraccarico delle singole API.

Se si superano questi limiti di velocità, SP-API restituisce un 429 Too Many Requests errore e limita la chiamata. L'eccessiva limitazione delle API può causare errori di lavoro, ritardi e inefficienze operative che alla fine costano tempo e denaro all'organizzazione. Se ricevi queste risposte di errore, puoi inviare nuovamente le richieste non riuscite in modo conforme ai limiti di frequenza.

Questa guida illustra le seguenti strategie per aiutarvi a gestire efficacemente la limitazione delle API e ottimizzare le prestazioni e l'affidabilità delle vostre applicazioni SP-API:

Per una guida completa sulle migliori pratiche relative ai vari aspetti dell'integrazione SP-API, fare riferimento alla Playlist SP-API Well-Architected Guidance sul canale Amazon SP-API Developer University.

Verifica e rispetta i limiti tariffari

Consulta le seguenti linee guida su come controllare e rispettare i limiti tariffari.

Verifica i limiti tariffari

Rivedi il piano di utilizzo per ogni operazione SP-API nella documentazione. Per informazioni su come trovare il piano di utilizzo, consulta Come trovare il tuo piano di utilizzo.

Confronta i limiti documentati con le intestazioni dei limiti di frequenza delle risposte API. L'intestazione della risposta è disponibile per i codici di stato HTTP 20x, 400 e 404. Per evitare limitazioni, progetta l'applicazione in modo che rimanga entro questi limiti.

Per saperne di più sui piani di utilizzo e su come funziona l'algoritmo di limitazione della velocità SP-API, consulta Piani di utilizzo e limiti tariffari.

Configurare un sistema di monitoraggio e avviso degli errori

Per rispettare i limiti di velocità delle API, è fondamentale configurare un sistema efficace per monitorare e avvisare quando si verificano errori. Questo processo prevede in genere i seguenti passaggi:

  1. Registra le risposte dell'API: acquisisci e archivia i dati completi di risposta dell'API, inclusi codici di stato, intestazioni e messaggi di errore, per consentire l'analisi e la categorizzazione degli errori.
  2. Categorizza gli errori: organizza gli errori registrati in bucket pertinenti in base ai codici di stato HTTP. Ad esempio, puoi classificare gli errori del client di livello 400 nei seguenti bucket: 400 input non validi, 403 problemi di autenticazione, 404 risorse non trovate, 429 violazioni del limite di frequenza e così via.
  3. Crea un pannello di controllo degli errori: visualizza i tassi di errore per ogni operazione e tipo di errore dell'API su una dashboard centralizzata per identificare rapidamente le aree problematiche.
  4. Imposta le soglie di avviso: Definisci le soglie appropriate per ogni tipo di errore e imposta avvisi per avvisarti in modo proattivo quando i tassi di errore superano tali soglie.

Se utilizzi i servizi AWS, puoi implementare questa best practice utilizzando Amazon CloudWatch:

  • Registri di CloudWatch: acquisisci e archivia i dati dettagliati di risposta dell'API.
  • Filtri metrici CloudWatch: crea metriche personalizzate per contare i diversi tipi di errore in base ai codici di stato.
  • Allarmi CloudWatch: monitora le metriche di errore e attiva le notifiche (ad esempio, Servizio di notifica Amazon Simple) in caso di superamento delle soglie.

Evita il traffico intenso

Distribuisci le richieste API in modo uniforme nel tempo per evitare raffiche concentrate di chiamate a operazioni specifiche seguite da periodi di attività minima. Questi picchi irregolari causano ulteriori 429 errori, che puoi evitare distribuendo il traffico nel tempo.

Puoi implementare un limitatore di velocità per gestire un volume elevato di traffico e consentire N richieste al secondo in base ai limiti di risorse per API. Il limitatore di velocità garantisce uno schema di chiamata coerente nel tempo, per mitigare i picchi di traffico e promuovere un utilizzo uniforme delle API. Utilizza il limite di velocità per API come linea guida per ogni API inclusa nel limitatore di velocità.

Per un esempio di codice dettagliato che utilizza Libreria di autenticazione/autorizzazione delle API dei partner di vendita per implementare un limitatore di velocità, fate riferimento al seguente codice di esempio.

Implementa tecniche di riprova e back-off

Implementa in modo proattivo le seguenti tecniche per evitare l'impatto sui carichi di lavoro e aumentare l'affidabilità della tua applicazione:

  • Riprova: Implementa la logica di riprova automatica. È possibile configurare le impostazioni relative ai nuovi tentativi aggiungendo un piccolo ritardo e inserendo una coda tra le richieste.
  • Back-off esponenziale: utilizza un algoritmo di back-off esponenziale per un migliore controllo del flusso, con attese progressivamente più lunghe tra i tentativi per le risposte di errore consecutive. Il back-off esponenziale può comportare tempi di back-off molto lunghi, poiché le funzioni esponenziali crescono rapidamente. Implementate un intervallo di ritardo massimo e un numero massimo di tentativi, che potete regolare in base all'operazione e ad altri fattori locali.
  • Nervosismo: I tentativi possono essere inefficaci se tutti i clienti riprovano contemporaneamente. Per evitare questo problema, utilizza il jitter, un intervallo di tempo casuale prima di effettuare o riprovare una richiesta, per evitare che si verifichino interruzioni generalizzate distribuendo la percentuale di arrivi. La maggior parte degli algoritmi di back-off esponenziale utilizza il jitter per prevenire collisioni successive. Per ulteriori informazioni, fare riferimento a Backoff e jitter esponenziali.

Riduci il numero di richieste API

Le sezioni seguenti descrivono come utilizzare carichi di lavoro basati su eventi, operazioni batch e operazioni in blocco per ridurre il numero di richieste API.

Carico di lavoro basato su eventi

Monitora le notifiche utilizzando API per le notifiche dei partner di vendita ed esegui azioni in base a condizioni specifiche. Con l'API per le notifiche di Selling Partner, puoi creare una destinazione per ricevere notifiche, iscriverti alle notifiche, eliminare le sottoscrizioni alle notifiche e così via. Invece di richiedere informazioni, la tua applicazione può ricevere informazioni direttamente da Amazon quando un evento richiama una notifica a cui ti iscrivi.

Ce ne sono molti tipi di notifica disponibile per essere sfruttato dalla tua applicazione. Per ulteriori informazioni, consulta la Guida ai casi d'uso dell'API delle notifiche v1.

Operazioni in batch

Ottieni i dati per un batch di articoli in un'unica richiesta. L'SP-API supporta una serie di operazioni batch che eseguono la stessa azione delle chiamate una per una ma per un batch di richieste alla volta. È possibile inviare il numero applicabile di richieste (per lo più 20) in una singola chiamata API invece di effettuare le chiamate una per una.

L'SP-API attualmente supporta le operazioni in batch per i seguenti casi d'uso:

  • Ricerca di prodotti utilizzando l'API del catalogo
  • Recupero di informazioni su offerte o prezzi
  • Ottenere una stima delle commissioni per i prodotti

Operazioni in blocco

Puoi caricare e scaricare dati in blocco in un'unica richiesta API.

Per caricare dati in blocco, puoi utilizzare API per i feed. Esistono feed per un'ampia varietà di casi d'uso, come la creazione di inserzioni, la gestione dell'inventario e dei prezzi, la conferma degli ordini e così via. Per un elenco dei tipi di feed disponibili, consulta Valori del tipo di feed.

Per scaricare dati in blocco, puoi utilizzare il API per i report o il API Data Kiosk. L'API Reports fornisce report per una varietà di casi d'uso, tra cui il monitoraggio dell'inventario, il monitoraggio degli ordini per l'evasione, l'ottenimento di informazioni fiscali, il monitoraggio dei resi e delle prestazioni del venditore, la gestione di un'attività di vendita con Fulfillment by Amazon e così via. Per informazioni dettagliate sulle operazioni dell'API Reports e sui tipi e schemi di dati associati, consulta la Riferimento all'API dei report. Per i tipi di report disponibili, fare riferimento a Valori del tipo di rapporto.

L'API Data Kiosk supporta le operazioni di query GraphQL per funzionalità di report dinamici. GraphQL è un linguaggio di interrogazione per API che consente di richiedere e ricevere i dati necessari in un'unica richiesta. La suite di reporting dinamico basata su GraphQL di Data Kiosk ti aiuta a generare query GraphQL personalizzate per accedere a grandi quantità di dati dai set di dati Amazon. Per informazioni dettagliate, consulta Guida per l'utente di Data Kiosk Schema Explorer.

Altre best practice

Tieni presente le seguenti altre best practice:

  • Monitora l'utilizzo e ridimensiona di conseguenza man mano che l'applicazione cresce.
  • Ottimizza il codice per eliminare le chiamate API non necessarie.
  • Memorizza nella cache i dati utilizzati di frequente per ridurre la necessità di richieste API ripetute. Puoi memorizzare nella cache i dati sui tuoi server utilizzando uno storage a livello di oggetto come Amazon S3. È inoltre possibile salvare informazioni relativamente statiche in un database o serializzarle in un file.
  • Organizza le richieste SP-API in una coda ed esegui altre attività di elaborazione in attesa dell'esecuzione del successivo processo in coda.

Questa pagina ti è stata utile?