Optimice los límites de velocidad para las cargas de trabajo de las aplicaciones

Gestione la limitación de las API y optimice el uso de SP-API en su aplicación.

Cuando diseñes tu aplicación de API para socios vendedores (SP-API), debes tener en cuenta los límites de velocidad de recursos por API. La API de socios vendedores mantiene una cuota de recursos por API para cada socio vendedor a fin de mantener la disponibilidad y evitar la sobrecarga de las API individuales.

Si superas estos límites de velocidad, SP-API devuelve un 429 Too Many Requests error y ralentiza la llamada. Una limitación excesiva de las API puede provocar fallos en los trabajos, retrasos e ineficiencias operativas que, en última instancia, cuestan tiempo y dinero a su organización. Si recibes estas respuestas de error, puedes volver a enviar las solicitudes fallidas de forma que cumplas con los límites de velocidad.

Esta guía describe las siguientes estrategias para ayudarlo a administrar de manera efectiva la limitación de API y optimizar el rendimiento y la confiabilidad de sus aplicaciones de SP-API:

Para obtener una guía completa sobre las mejores prácticas en varios aspectos de la integración de SP-API, consulte la Lista de reproducción SP-API Well-Architected Guidance en el canal Amazon SP-API Developer University.

Verifique y respete los límites de tarifas

Consulta la siguiente guía sobre cómo comprobar y cumplir los límites de tarifas.

Consulta los límites de tarifas

Revise el plan de uso de cada operación de SP-API en la documentación. Para obtener información sobre cómo encontrar el plan de uso, consulte Cómo encontrar tu plan de uso.

Compare los límites documentados con los encabezados de límite de velocidad de las respuestas de la API. El encabezado de respuesta está disponible para los códigos de estado HTTP 20x, 400 y 404. Para evitar limitaciones, diseñe su aplicación de manera que se mantenga dentro de estos límites.

Para obtener más información sobre los planes de uso y sobre cómo funciona el algoritmo de limitación de velocidad SP-API, consulte Planes de uso y límites de tarifas.

Configurar un sistema de monitoreo y alerta de errores

Para cumplir con los límites de velocidad de las API, es crucial configurar un sistema eficaz que supervise y avise cuando se produzcan errores. Este proceso suele incluir los siguientes pasos:

  1. Registra las respuestas de la API: Capture y almacene todos los datos de respuesta de la API, incluidos los códigos de estado, los encabezados y los mensajes de error, para permitir el análisis y la categorización de los errores.
  2. Clasifica los errores: Organice los errores registrados en grupos relevantes en función de los códigos de estado HTTP. Por ejemplo, puede clasificar los errores de clientes de nivel 400 en los siguientes grupos: 400 entradas no válidas, 403 problemas de autenticación, 404 recursos no encontrados, 429 infracciones del límite de frecuencia, etc.
  3. Crea un panel de errores: Visualice las tasas de error de cada operación y tipo de error de la API en un panel centralizado para identificar rápidamente las áreas problemáticas.
  4. Establezca umbrales de alerta: Defina los umbrales adecuados para cada tipo de error y configure alertas para que le notifiquen de forma proactiva cuando las tasas de error superen esos umbrales.

Si utiliza los servicios de AWS, puede implementar esta práctica recomendada mediante Amazon CloudWatch:

  • Registros de CloudWatch: Capture y almacene los datos detallados de respuesta de la API.
  • Filtros de métricas de CloudWatch: Cree métricas personalizadas para contar los diferentes tipos de error en función de los códigos de estado.
  • Alarmas de CloudWatch: Supervise las métricas de errores y active las notificaciones (por ejemplo, Servicio de notificación simple de Amazon) cuando se superan los umbrales.

Evite los picos de tráfico

Distribuya las solicitudes de API de manera uniforme a lo largo del tiempo para evitar ráfagas concentradas de llamadas a operaciones específicas seguidas de períodos de actividad mínima. Estos picos desiguales provocan 429 errores adicionales, que puedes evitar distribuyendo el tráfico a lo largo del tiempo.

Puedes implementar un limitador de velocidad para gestionar un volumen elevado de tráfico y permitir N solicitudes por segundo en función de los límites de recursos por API. El limitador de velocidad garantiza un patrón de llamadas uniforme a lo largo del tiempo, para mitigar los picos de tráfico y promover un uso uniforme de las API. Usa el límite de velocidad por API como pauta para cada API del limitador de velocidad.

Para ver un ejemplo de código paso a paso en el que se usa el Biblioteca de autenticación y autorización de API para socios vendedores para implementar un limitador de velocidad, consulte el siguiente código de ejemplo.

Implemente técnicas de reintento y retroceso

Implemente de forma proactiva las siguientes técnicas para evitar el impacto en sus cargas de trabajo y aumentar la confiabilidad de su aplicación:

  • Volver a intentarlo: Implemente la lógica de reintento automático. Puede configurar los ajustes de reintento añadiendo un pequeño retraso y haciendo cola entre las solicitudes.
  • Retroceso exponencial: Utilice un algoritmo de retroceso exponencial para controlar mejor el flujo, con esperas cada vez más largas entre reintentos para obtener respuestas de error consecutivas. El retroceso exponencial puede provocar tiempos de retraso muy prolongados, porque las funciones exponenciales crecen rápidamente. Implemente un intervalo de retraso máximo y un número máximo de reintentos, que puede ajustar en función de la operación y otros factores locales.
  • Nerviosismo: Los reintentos pueden resultar ineficaces si todos los clientes lo vuelven a intentar al mismo tiempo. Para evitar este problema, usa la fluctuación, que es un período de tiempo aleatorio antes de realizar o volver a intentar una solicitud para evitar grandes ráfagas al distribuir la velocidad de llegada. La mayoría de los algoritmos de retroceso exponencial utilizan la fluctuación para evitar colisiones sucesivas. Para obtener más información, consulte Retroceso exponencial y fluctuación.

Reducir la cantidad de solicitudes de API

En las siguientes secciones, se describe cómo puede usar cargas de trabajo basadas en eventos, operaciones por lotes y operaciones masivas para reducir la cantidad de solicitudes de API.

Carga de trabajo basada en eventos

Supervise las notificaciones mediante el API de socios vendedores para notificaciones y realizar acciones en función de condiciones específicas. Con la API de notificaciones para socios vendedores, puedes crear un destino para recibir notificaciones, suscribirte a las notificaciones, eliminar las suscripciones a las notificaciones, etc. En lugar de solicitar información, tu aplicación puede recibir información directamente de Amazon cuando un evento invoca una notificación a la que te suscribes.

Hay muchos tipos de notificación disponible para que su aplicación la aproveche. Para obtener más información, consulte la Guía de casos de uso de la API de notificaciones v1.

Operaciones por lotes

Obtenga los datos de un lote de artículos en una sola solicitud. La SP-API admite un conjunto de operaciones por lotes que realizan la misma acción que las llamadas individuales, pero para un lote de solicitudes a la vez. Puede enviar el número de solicitudes correspondiente (en su mayoría 20) en una sola llamada a la API en lugar de realizar las llamadas una por una.

La SP-API admite actualmente operaciones por lotes para los siguientes casos de uso:

  • Búsqueda de productos mediante la API de catálogo
  • Obtener información sobre ofertas o precios
  • Obtener una estimación de tarifas para los productos

Operaciones masivas

Puedes cargar y descargar datos masivos en una sola solicitud de API.

Para subir datos de forma masiva, puedes usar la API de feeds. Hay feeds para una amplia variedad de casos de uso, como la creación de listados, la gestión del inventario y los precios, el reconocimiento de pedidos, etc. Para ver una lista de los tipos de ficheros disponibles, consulta Valores del tipo de alimentación.

Para descargar datos de forma masiva, puede utilizar la API de informes o el API de quiosco de datos. La API de informes proporciona informes para una variedad de casos de uso, como la supervisión del inventario, el seguimiento de los pedidos para su gestión logística, la obtención de información fiscal, el seguimiento de las devoluciones y el rendimiento del vendedor, la gestión de una empresa de ventas con Fulfillment by Amazon, etc. Para obtener más información sobre las operaciones de la API de informes y los tipos de datos y esquemas asociados, consulta la Referencia de la API de informes. Para ver los tipos de informes disponibles, consulte Valores de tipo de informe.

La API Data Kiosk admite las operaciones de consulta de GraphQL para ofrecer capacidades de informes dinámicos. GraphQL es un lenguaje de consulta para las API que te permite solicitar y recibir los datos que necesitas en una sola solicitud. La suite de informes dinámicos basada en GraphQL de Data Kiosk le ayuda a generar consultas GraphQL personalizadas para acceder a datos masivos de los conjuntos de datos de Amazon. Para obtener más información, consulte Guía del usuario de Data Kiosk Schema Explorer.

Otras mejores prácticas

Ten en cuenta las siguientes prácticas recomendadas:

  • Supervise su uso y escale en consecuencia a medida que su aplicación crezca.
  • Optimice su código para eliminar las llamadas innecesarias a la API.
  • Almacene en caché los datos de uso frecuente para reducir la necesidad de solicitudes de API repetidas. Puede almacenar en caché los datos de sus servidores mediante el almacenamiento a nivel de objetos, como Amazon S3. También puede guardar información relativamente estática en una base de datos o serializarla en un archivo.
  • Agrupa las solicitudes de la SP-API en una cola y realiza otras tareas de procesamiento mientras esperas a que se ejecute la siguiente tarea en cola.

¿Te ha ayudado esta página?