Otimizar os limites de taxa para cargas de trabalho de aplicativos

Gerencie a limitação de APIs e otimize o uso da SP-API em seu aplicativo.

Ao criar seu aplicativo Selling Partner API (SP-API), você deve considerar os limites de taxa de recursos por API. A API do parceiro de vendas mantém uma cota de recursos por API para cada parceiro de vendas para manter a disponibilidade e evitar a sobrecarga de APIs individuais.

Se você exceder esses limites de taxa, o SP-API retornará um 429 Too Many Requests erro e limita a chamada. A limitação excessiva da API pode resultar em falhas no trabalho, atrasos e ineficiências operacionais que, em última análise, custam tempo e dinheiro à sua organização. Se você receber essas respostas de erro, poderá reenviar as solicitações com falha de uma forma que esteja em conformidade com os limites de taxa.

Este guia descreve as seguintes estratégias para ajudar você a gerenciar com eficiência a limitação de APIs e otimizar o desempenho e a confiabilidade de seus aplicativos SP-API:

Para obter uma orientação abrangente sobre as melhores práticas em vários aspectos da integração SP-API, consulte o Lista de reprodução do SP-API Well-Architected Guidance no canal Amazon SP-API Developer University.

Verifique e cumpra os limites de tarifa

Leia as orientações a seguir sobre como verificar e cumprir os limites de tarifa.

Verifique os limites de taxa

Analise o plano de uso de cada operação da SP-API na documentação. Para saber como encontrar o plano de uso, consulte Como encontrar seu plano de uso.

Compare os limites documentados com os cabeçalhos de limite de taxa das respostas da API. O cabeçalho de resposta está disponível para os códigos de status HTTP 20x, 400 e 404. Para evitar a limitação, crie seu aplicativo para permanecer dentro desses limites.

Para saber mais sobre os planos de uso e como o algoritmo de limitação de taxa da API SP-funciona, consulte Planos de uso e limites de tarifas.

Configurar um sistema de monitoramento e alerta de erros

Para cumprir os limites de taxa da API, é fundamental configurar um sistema eficaz para monitorar e alertar quando ocorrerem erros. Esse processo normalmente envolve as seguintes etapas:

  1. Registre as respostas da API: capture e armazene os dados completos de resposta da API, incluindo códigos de status, cabeçalhos e mensagens de erro, para permitir a análise e a categorização dos erros.
  2. Categorizar erros: organize os erros registrados em intervalos relevantes com base nos códigos de status HTTP. Por exemplo, você pode categorizar erros de clientes de nível 400 nos seguintes intervalos: 400 entradas inválidas, 403 problemas de autenticação, 404 recursos não encontrados, 429 violações do limite de taxa e assim por diante.
  3. Crie um painel de erro: visualize as taxas de erro de cada operação e tipo de erro da API em um painel centralizado para identificar rapidamente as áreas problemáticas.
  4. Defina limites de alerta: defina limites apropriados para cada tipo de erro e configure alertas para notificá-lo proativamente quando as taxas de erro excederem esses limites.

Se você usa os serviços da AWS, pode implementar essa melhor prática usando Amazon CloudWatch:

  • Registros do CloudWatch: capture e armazene os dados detalhados de resposta da API.
  • Filtros de métricas do CloudWatch: crie métricas personalizadas para contar os diferentes tipos de erro com base nos códigos de status.
  • Alarmes do CloudWatch: monitore as métricas de erro e acione notificações (por exemplo, Amazon Simple Notification Service) quando os limites são violados.

Evite tráfego intenso

Distribua as solicitações de API de maneira uniforme ao longo do tempo para evitar picos concentrados de chamadas para operações específicas, seguidos por períodos de atividade mínima. Esses picos irregulares causam 429 erros adicionais, que você pode evitar distribuindo o tráfego ao longo do tempo.

Você pode implementar um limitador de taxa para gerenciar um alto volume de tráfego e permitir N solicitações por segundo com base nos limites de recursos por API. O limitador de taxa garante um padrão de chamada consistente ao longo do tempo, para mitigar os picos de tráfego e promover o uso uniforme da API. Use o limite de taxa por API como diretriz para cada API no limitador de taxa.

Para obter um exemplo de código passo a passo que usa o Biblioteca de autenticação/autorização da API do parceiro de vendas para implementar um limitador de taxa, consulte o código de exemplo a seguir.

Implemente técnicas de repetição e recuo

Implemente proativamente as seguintes técnicas para evitar o impacto em suas cargas de trabalho e aumentar a confiabilidade de seu aplicativo:

  • Tentar novamente: implemente a lógica de repetição automática. Você pode definir as configurações de nova tentativa adicionando um pequeno atraso e filas entre suas solicitações.
  • Recuo exponencial: use um algoritmo de recuo exponencial para melhorar o controle do fluxo, com esperas progressivamente maiores entre as novas tentativas para respostas de erro consecutivas. O recuo exponencial pode levar a tempos de recuo muito longos, porque as funções exponenciais crescem rapidamente. Implemente um intervalo máximo de atraso e um número máximo de novas tentativas, que você pode ajustar com base na operação e em outros fatores locais.
  • Tremulação: as novas tentativas podem ser ineficazes se todos os clientes tentarem novamente ao mesmo tempo. Para evitar esse problema, use o jitter, que é um período aleatório antes de fazer ou tentar novamente uma solicitação para ajudar a evitar grandes explosões, distribuindo a taxa de chegada. A maioria dos algoritmos de recuo exponencial usa instabilidade para evitar colisões sucessivas. Para obter mais informações, consulte Recuo exponencial e instabilidade.

Reduza o número de solicitações de API

As seções a seguir descrevem como você pode usar cargas de trabalho baseadas em eventos, operações em lote e operações em massa para reduzir o número de solicitações de API.

Carga de trabalho baseada em eventos

Monitore as notificações usando o API de parceiro de vendas para notificações e realizar ações com base em condições específicas. Com a API do parceiro de vendas para notificações, você pode criar um destino para receber notificações, assinar notificações, excluir assinaturas de notificações e assim por diante. Em vez de pesquisar informações, seu aplicativo pode receber informações diretamente da Amazon quando um evento invoca uma notificação que você assina.

Existem muitos tipos de notificação disponível para seu aplicativo aproveitar. Para obter mais informações, consulte o Guia de casos de uso da API de notificações v1.

Operações em lote

Obtenha dados de um lote de itens em uma única solicitação. A SP-API oferece suporte a um conjunto de operações em lote que executam a mesma ação de chamadas uma a uma, mas para um lote de solicitações por vez. Você pode enviar o número aplicável de solicitações (principalmente 20) em uma única chamada de API em vez de fazer as chamadas uma por uma.

Atualmente, a SP-API oferece suporte a operações em lote para os seguintes casos de uso:

  • Pesquisar produtos usando a API Catalog
  • Obtendo informações sobre ofertas ou preços
  • Obter uma estimativa de taxa para produtos

Operações em massa

Você pode carregar e baixar dados em massa em uma única solicitação de API.

Para fazer upload de dados em massa, você pode usar o API de feeds. Há feeds para uma grande variedade de casos de uso, como criar listagens, gerenciar inventário e preços, confirmar pedidos e assim por diante. Para obter uma lista dos tipos de feed disponíveis, consulte Valores do tipo de feed.

Para baixar dados em massa, você pode usar o API de relatórios ou o API de quiosque de dados. A API de relatórios fornece relatórios para uma variedade de casos de uso, incluindo monitoramento de inventário, rastreamento de pedidos para atendimento, obtenção de informações fiscais, acompanhamento de devoluções e desempenho do vendedor, gerenciamento de um negócio de vendas com o Fulfillment by Amazon e assim por diante. Para obter detalhes sobre as operações da API Reports e os tipos de dados e esquemas associados, consulte o Referência da API de relatórios. Para ver os tipos de relatórios disponíveis, consulte Valores do tipo de relatório.

A API Data Kiosk oferece suporte a operações de consulta do GraphQL para recursos de relatórios dinâmicos. O GraphQL é uma linguagem de consulta para APIs que permite solicitar e receber os dados necessários em uma única solicitação. O pacote de relatórios dinâmicos baseado em GraphQL do Data Kiosk ajuda você a gerar consultas personalizadas do GraphQL para acessar dados em massa dos conjuntos de dados da Amazon. Para obter detalhes, consulte Guia do usuário do Data Kiosk Schema Explorer.

Outras melhores práticas

Lembre-se das seguintes outras práticas recomendadas:

  • Monitore seu uso e escale adequadamente à medida que seu aplicativo cresce.
  • Otimize seu código para eliminar chamadas de API desnecessárias.
  • Armazene em cache os dados usados com frequência para reduzir a necessidade de solicitações repetidas de API. Você pode armazenar dados em cache em seus servidores usando armazenamento em nível de objeto, como Amazon S3. Você também pode salvar informações relativamente estáticas em um banco de dados ou serializá-las em um arquivo.
  • Faça o escalonamento das solicitações da SP-API em uma fila e execute outras tarefas de processamento enquanto aguarda a execução do próximo trabalho na fila.

Esta página ajudou você?