Transformações para regras de receptor - Elastic Load Balancing

Transformações para regras de receptor

Uma transformação de regra reescreve as solicitações de entrada antes que elas sejam roteadas para os destinos. Reescrever uma solicitação não altera a decisão de roteamento tomada ao avaliar as condições da regra. Isso é útil quando os clientes enviam um URL ou cabeçalho de host diferente do esperado pelos destinos.

O uso de transformações de regras transfere a responsabilidade de modificar caminhos, cadeias de caracteres de consulta e cabeçalhos de host para o balanceador de carga. Isso elimina a necessidade de adicionar uma lógica de modificação personalizada ao código do aplicativo ou confiar em um proxy de terceiros para realizar as modificações.

Os Application Load Balancers são compatíveis com as seguintes transformações para regras de receptor.

Transformações
host-header-rewrite

Reformula o cabeçalho do host na solicitação. A transformação usa uma expressão regular para corresponder a um padrão no cabeçalho do host e, em seguida, o substitui por uma string de substituição.

url-rewrite

Reescreve a URL da solicitação. A transformação usa uma expressão regular para corresponder a um padrão na URL de solicitação e, em seguida, o substitui por uma string de substituição.

Noções básicas de transformação
  • Você pode adicionar uma transformação de regravação de cabeçalho de host e uma transformação de regravação de URL por regra.

  • Não é possível adicionar uma transformação a uma regra padrão.

  • Caso não haja correspondência de padrão, a solicitação original será enviada ao destino.

  • Se houver uma correspondência de padrão, mas a transformação falhar, retornaremos um erro HTTP 500.

Transformações de regravação de cabeçalho do host

Você pode modificar o nome de domínio especificado no cabeçalho do host.

exemplo Exemplo de transformação de cabeçalho de host

Você pode especificar uma transformação ao criar ou modificar uma regra. Para obter mais informações, consulte os comandos create-rule e modify-rule. Veja um exemplo de transformação de cabeçalho do host a seguir. Ele transforma o cabeçalho do host em um endpoint interno.

[ { "Type": "host-header-rewrite", "HostHeaderRewriteConfig": { "Rewrites": [ { "Regex": "^mywebsite-(.+).com$", "Replace": "internal.dev.$1.myweb.com" } ] } } ]

Por exemplo, essa transformação reescreve o cabeçalho do host https://mywebsite-example.com/project-a como https://internal.dev.example.myweb.com/project-a.

Transformações de reescrita de URL

Você pode modificar o caminho ou a sequência de caracteres de consulta do URL. Ao reescrever o URL no nível do balanceador de carga, seus URLs de frontend podem permanecer consistentes para usuários e mecanismos de pesquisa, mesmo que seus serviços de backend mudem. Também é possível simplificar strings de caracteres de consulta de URL complexas para facilitar a digitação dos clientes.

Note que você não pode modificar o protocolo ou a porta do URL, somente o caminho e a string de consulta.

exemplo Exemplo de transformação de reescrita de URL

Você pode especificar uma transformação ao criar ou modificar uma regra. Para obter mais informações, consulte os comandos create-rule e modify-rule. Veja um exemplo de transformação de reescrita de URL a seguir. Ela transforma a estrutura do diretório em uma string de consulta.

[ { "Type": "url-rewrite", "UrlRewriteConfig": { "Rewrites": [ { "Regex": "^/dp/([A-Za-z0-9]+)/?$", "Replace": "/product.php?id=$1" } ] } } ]

Por exemplo, essa transformação reescreve o URL da solicitação https://www.example.com/dp/B09G3HRMW como https://www.example.com/product.php?id=B09G3HRMW.

Como as regravações de URL diferem dos redirecionamentos de URL

Característica Redirecionamento de URL Regravação de URL
Exibição de URL Alterações na barra de endereço do navegador Sem alterações na barra de endereço do navegador
Códigos de status Usa 301 (permanente) ou 302 (temporário) Nenhuma alteração no código de status
Processamento Lado do navegador Lado do servidor
Usos comuns Alteração de domínio, consolidação de sites, correção de links quebrados Limpe URLs para SEO, oculte estruturas complexas, forneça o mapeamento de URL legado