View a markdown version of this page

Configure a limitação de taxa para o AWS Transform for mainframe Runtime - AWS Mainframe Modernization

Após uma análise cuidadosa, tomamos a decisão de fechar o acesso de novos clientes à experiência autogerenciada de modernização de AWS mainframe, a partir de 30 de junho de 2026. Os clientes existentes podem continuar usando o serviço normalmente.AWS continua investindo em melhorias de segurança e disponibilidade para a experiência autogerenciada de modernização de AWS mainframe, mas não planejamos introduzir novos recursos. Para obter mais informações, consulte Alteração na disponibilidade AWS da modernização do mainframe.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

AWS O Mainframe Modernization Service (experiência em Managed Runtime Environment) não está mais aberto a novos clientes. Para recursos semelhantes ao AWS Mainframe Modernization Service (experiência em Managed Runtime Environment), explore o AWS Mainframe Modernization Service (Experience). Self-Managed Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte Alteração na disponibilidade AWS da modernização do mainframe.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configure a limitação de taxa para o AWS Transform for mainframe Runtime

AWS O Transform for mainframe Runtime inclui funcionalidade integrada de limitação de taxa para proteger o aplicativo Gapwalk contra solicitações excessivas e possíveis abusos. O sistema de limitação de taxa usa o algoritmo Token Bucket para fornecer capacidade de intermitência e limitação de taxa sustentada.

Visão geral da limitação de taxa

O sistema de limitação de taxa fornece os seguintes recursos:

Algoritmo de token bucket
  • Permite tráfego intermitente até a capacidade de intermitência configurada

  • Recarrega tokens a uma taxa constante com base nas solicitações por minuto

  • Oferece uma limitação suave da taxa sem bloquear picos de tráfego legítimos

Identificação do cliente
  • Identifica clientes por endereço IP com suporte a proxy

  • Suportes X-Forwarded-For e X-Real-IP cabeçalhos

  • Lida com cenários de balanceador de carga e proxy reverso

Gerenciamento automatizado da memória
  • Limpa automaticamente os buckets de limite de taxa expirados

  • Intervalos de limpeza e prazos de expiração configuráveis

  • Evita vazamentos de memória em aplicativos de longa duração

Integração HTTP
  • Retorna HTTP 429 (muitas solicitações) quando os limites são excedidos

  • Inclui cabeçalhos de limite de taxa padrão nas respostas

  • Fornece informações sobre novas tentativas para clientes

Propriedades de configuração

Configure a limitação de taxa em seu application-main.yaml arquivo:

gapwalk: ratelimiting: enabled: true # Enable/disable rate limiting requestsPerMinute: 1000 # Sustained rate limit per minute burstCapacity: 1500 # Maximum burst requests allowed includeHeaders: true # Include X-RateLimit-* headers cleanupIntervalMinutes: 5 # Cleanup interval for expired buckets bucketExpiryHours: 1 # Hours after which unused buckets expire errorMessage: "Too many requests. Try again later." # Custom error message whitelistIps: "" # Comma-separated IPs to bypass limiting perEndpointLimiting: false # Apply limits per endpoint (not implemented)

Descrições da propriedade

habilitado

Interruptor principal para ativar ou desativar a funcionalidade de limitação de taxa. Padrão: false

requestsPerMinute

Número de solicitações permitidas por minuto para limitação sustentada da taxa. Isso representa a taxa de recarga do token. Padrão: 1000

Capacidade de explosão

Número máximo de solicitações permitidas em uma sequência antes da aplicação da limitação de taxa. Deve ser maior do que requestsPerMinute permitir picos de tráfego. Padrão: 1500

Incluir cabeçalhos

Se os cabeçalhos de limite de taxa padrão (X-RateLimit-Limit,X-RateLimit-Remaining,X-RateLimit-Reset) devem ser incluídos nas respostas HTTP. Padrão: true

cleanupIntervalMinutes

Intervalo em minutos entre a limpeza automática dos intervalos de limite de taxa expirados. Ajuda a evitar vazamentos de memória. Padrão: 5

bucketExpiryHours

Tempo em horas após o qual os intervalos de limite de tarifa não utilizados são considerados expirados e elegíveis para limpeza. Padrão: 1

errorMessage

Mensagem de erro personalizada retornada na resposta JSON quando o limite de taxa é excedido. Padrão: "Too many requests. Try again later."

Dicas de White List

Lista separada por vírgula de endereços IP que ignoram totalmente a limitação de taxa. Útil para verificações de saúde ou sistemas confiáveis. Padrão: empty

perEndpointLimiting

Se deve aplicar limites de taxa separados por endpoint em vez de apenas por cliente. Atualmente não implementado. Padrão: false

Ativar limitação de taxa

Para ativar a limitação de taxa com as configurações padrão:

gapwalk: ratelimiting: enabled: true

Identificação do cliente

O sistema de limitação de taxa identifica clientes usando a seguinte ordem de prioridade:

  1. X-Forwarded-For cabeçalho (primeiro IP se separado por vírgula)

  2. X-Real-IP cabeçalho

  3. Endereço remoto da solicitação HTTP

Isso garante a identificação adequada do cliente quando o aplicativo está atrasado:

  • Balanceadores de cargas

  • Proxies reversos

  • CDNs

  • Gateways de API

Exemplo de identificação do cliente

# Direct connection Client IP: 192.168.1.100 # Behind load balancer with X-Forwarded-For X-Forwarded-For: 203.0.113.45, 192.168.1.100 Client IP: 203.0.113.45 (first IP used) # Behind reverse proxy with X-Real-IP X-Real-IP: 203.0.113.45 Client IP: 203.0.113.45

Cabeçalhos de limite de taxa

Quando includeHeaders ativado, os seguintes cabeçalhos são adicionados às respostas HTTP:

X- RateLimit -Limite

O limite máximo de tarifa para o cliente (solicitações por minuto)

X- RateLimit -Restante

O número de solicitações restantes na janela de limite de taxa atual

X- RateLimit -Reiniciar

A hora em que a janela de limite de taxa é redefinida (carimbo de data/hora do Unix)

Exemplos de cabeçalhos de resposta

X-RateLimit-Limit: 1000 X-RateLimit-Remaining: 847 X-RateLimit-Reset: 1640995200

Limite de taxa de resposta excedido

Quando o limite de taxa é excedido, o sistema retorna:

Status HTTP

429, muitas solicitações

Content-Type

application/json

Retry-After

Número de segundos de espera antes de tentar novamente

{ "error": "Rate limit exceeded", "message": "Too many requests. Try again later.", "retryAfter": 60, "timestamp": 1640995140000 }

Gerenciamento de memória

O sistema de limitação de taxa gerencia automaticamente a memória para evitar vazamentos em aplicativos de longa execução:

Limpeza automática
  • É executado a cada cleanupIntervalMinutes minuto

  • Remove baldes não utilizados por horas bucketExpiryHours

  • Registra a atividade de limpeza para monitoramento

Eficiência de memória
  • Usa estruturas de dados simultâneas para segurança de threads

  • Criação lenta de buckets (somente quando necessário)

  • Implementação eficiente de token bucket

Monitorando a atividade de limpeza

Verifique os registros das mensagens de limpeza:

INFO RateLimitingService - Cleaned up 15 expired rate limiting buckets