Limitar as solicitações de API para uma melhor taxa de transferência - Amazon API Gateway

Limitar as solicitações de API para uma melhor taxa de transferência

Você pode configurar o controle de utilização e cotas para as suas APIs para ajudar a protegê-las da sobrecarga de numerosas solicitações. Os controles de utilização e as cotas são aplicados de acordo com o melhor esforço e devem ser considerados alvos, e não limites máximos garantidos de solicitações.

O API Gateway controla a utilização das solicitações para a sua API usando o algoritmo do bucket de token, em que um token equivale a uma solicitação. Especificamente, o API Gateway analisa a taxa e uma intermitência de envios de solicitações de todas as APIs na sua conta, por região. No algoritmo do bucket de token, uma intermitência pode permitir a saturação predefinida desses limites, mas há alguns casos em que outros fatores também podem exceder tais limites.

Quando os envios de solicitações excederem a taxa de solicitação de estado fixo e os limites de intermitência, o API Gateway iniciará o controle de utilização de solicitações. Neste momento, pode ser que os clientes recebam respostas de erro 429 Too Many Requests. Ao capturar essas exceções, o cliente poderá reenviar as solicitações com falha de uma forma que restrinja as taxas.

Como desenvolvedor de APIs, você pode definir os limites alvo para estágios ou métodos de API particulares para melhorar a performance geral em todas as APIs na sua conta. Como alternativa, você pode habilitar planos de uso para configurar controles de utilização aos envios de solicitações do cliente com base nas cotas e taxas de solicitação especificadas.

Como as configurações de controle de utilização são aplicadas no API Gateway

Antes de definir as configurações de controle de utilização e cotas para a sua API, é útil entender como elas são aplicadas pelo Amazon API Gateway.

O Amazon API Gateway fornece quatro tipos básicos de configurações relacionadas ao controle de utilização:

  • Os limites de controle de utilização da AWS são aplicados em todas as contas e clientes de uma região. Essas configurações de limite existem para impedir que sua API e sua conta sejam sobrecarregadas com muitas solicitações. Tais limites são definidos pela AWS e não poderão ser alterados por um cliente.

  • Os limites por conta são aplicados a todas as APIs em uma conta em uma região especificada. O limite de taxas no nível da conta pode ser aumentado por meio de uma solicitação; é possível obter limites mais altos com APIs com tempos limite mais curtos e cargas úteis menores. Para solicitar um aumento nos limites de controle de utilização no nível da conta por região, entre em contato com a Central de Suporte da AWS. Para obter mais informações, consulte Cotas do Amazon API Gateway e notas importantes. Observe que tais limites não podem ser superiores aos limites de controle de utilização da AWS.

  • Os limites de controle de utilização por API e por estágio são aplicados no nível do método da API para um estágio. Você pode definir as mesmas configurações para todos os métodos ou configurações de controle de utilização distintas para cada método. Observe que tais limites não podem ser superiores aos limites de controle de utilização da AWS.

  • Os limites de controle de utilização por cliente são aplicados aos clientes que usam chaves de API associadas ao seu plano de uso como identificador de cliente. Observe que tais limites não podem ser superiores aos limites por conta.

As configurações relacionadas ao controle de utilização do API Gateway são aplicadas na seguinte ordem:

Controle de utilização no nível da conta por região

Por padrão, o API Gateway controla a utilização das solicitações de estado fixo por segundo (RPS) em todas as APIs de uma conta da AWS, por região. Ele também limita a intermitência (ou seja, o tamanho máximo do bucket) em todas as APIs de uma conta da AWS, por região. No API Gateway, o limite de intermitência representa o número máximo alvo de envios simultâneos de solicitações que ele fará antes de retornar respostas de erro 429 Too Many Requests. Para obter mais informações sobre cotas de controle de utilização, consulte Cotas do Amazon API Gateway e notas importantes.

Configuração de alvos de controle de utilização no nível da API e no nível do estágio em um plano de uso

Em um plano de uso, é possível definir um destino de controle de utilização por método para todos os métodos em nível de API ou de estágio. É possível especificar uma taxa de controle de utilização, que é a taxa, em solicitações por segundo, em que os tokens são adicionados ao bucket do token. Você também pode especificar uma expansão do controle de utilização, que é a capacidade do bucket do token.

Você pode usar a AWS CLI, SDKs e o AWS Management Console para criar um plano de uso. Para saber mais sobre como criar um plano de uso, consulte Criar e usar planos de uso com chaves de API.

Configurar destinos de controle de utilização no nível do estágio

É possível usar a AWS CLI, os SDKs e o AWS Management Console para criar destinos de controle de utilização no nível de estágio.

Para saber mais sobre como usar o AWS Management Console para criar destinos de controle de utilização no nível de estágio, consulte Atualizar configurações de estágio. Para saber mais sobre como usar a AWS CLI para criar destinos de controle de utilização no nível de estágio, consulte create-stage.

Configuração de alvos de controle de utilização no nível do método em um plano de uso

É possível definir alvos de controle de utilização adicionais no nível do método em Usage Plans (Planos de uso), conforme exibido em Criar um plano de uso. No console do API Gateway, isso é definido especificando Resource=<resource>, Method=<method> na configuração Configure Method Throttling (Configurar limitação de método). Por exemplo, no caso de PetStore, você pode especificar Resource=/pets, Method=GET.