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á.
Modifique HTTP os cabeçalhos ao migrar de F5 para um Application Load Balancer em AWS
Criado por Sachin Trivedi () AWS
Resumo
Quando você migra um aplicativo que usa um balanceador de carga F5 para o Amazon Web Services (AWS) e deseja usar um Application Load Balancer ativado, migrar regras F5 para AWS modificações de cabeçalho é um problema comum. Um Application Load Balancer não suporta modificações de cabeçalhos, mas você pode usar a Amazon CloudFront como uma rede de distribuição de conteúdo (CDN) e o Lambda @Edge para modificar cabeçalhos.
Esse padrão descreve as integrações necessárias e fornece um exemplo de código para modificação do cabeçalho usando o AWS CloudFront Lambda @Edge.
Pré-requisitos e limitações
Pré-requisitos
Um aplicativo local que usa um balanceador de carga F5 com uma configuração que substitui o valor do HTTP cabeçalho usando.
if, else
Para obter mais informações sobre essa configuração, consulte HTTP: :headerna documentação do produto F5.
Limitações
Esse padrão se aplica à personalização do cabeçalho do balanceador de carga F5. Para outros balanceadores de carga de terceiros, confira a documentação do balanceador de carga para obter informações de suporte.
As funções do Lambda que você usa no Lambda@Edge devem estar na região Leste dos EUA (Norte da Virgínia).
Arquitetura
O diagrama a seguir mostra a arquitetura ativadaAWS, incluindo o fluxo de integração entre os AWS componentes CDN e outros.

Ferramentas
Serviços do AWS
Application Load Balancer ─ Um Application Load Balancer é AWS um serviço de balanceamento de carga totalmente gerenciado que funciona na sétima camada do modelo Open Systems Interconnection (). OSI Ele equilibra o tráfego em vários destinos e oferece suporte a solicitações avançadas de roteamento com base em HTTP cabeçalhos e métodos, cadeias de caracteres de consulta e roteamento baseado em host ou em caminho.
Amazon CloudFront — CloudFront A Amazon é um serviço web que acelera a distribuição de seu conteúdo web estático e dinâmico, como .html, .css, .js e arquivos de imagem, para seus usuários. CloudFront entrega seu conteúdo por meio de uma rede mundial de data centers chamados de pontos de presença para menor latência e melhor desempenho.
O Lambda @Edge ─ Lambda @Edge é uma extensão do AWS Lambda que permite executar funções para personalizar o conteúdo entregue. CloudFront Você pode criar funções na região Leste dos EUA (Norte da Virgínia) e depois associar a função a uma CloudFront distribuição para replicar automaticamente seu código em todo o mundo, sem provisionar ou gerenciar servidores. Isso reduz a latência e melhora a experiência do usuário.
Código
O código de exemplo a seguir fornece um plano para modificar cabeçalhos de CloudFront resposta. Siga as instruções na seção Épicos para implantar o código.
exports.handler = async (event, context) => { const response = event.Records[0].cf.response; const headers = response.headers; const headerNameSrc = 'content-security-policy'; const headerNameValue = '*.xyz.com'; if (headers[headerNameSrc.toLowerCase()]) { headers[headerNameSrc.toLowerCase()] = [{ key: headerNameSrc, value: headerNameValue, }]; console.log(`Response header "${headerNameSrc}" was set to ` + `"${headers[headerNameSrc.toLowerCase()][0].value}"`); } else { headers[headerNameSrc.toLowerCase()] = [{ key: headerNameSrc, value: headerNameValue, }]; } return response; };
Épicos
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Crie uma distribuição CloudFront na web. | Nesta etapa, você cria uma CloudFront distribuição para informar de CloudFront onde deseja que o conteúdo seja entregue e os detalhes sobre como rastrear e gerenciar a entrega de conteúdo. Para criar uma distribuição usando o console, entre no AWS Management Console, abra o CloudFront console | Administrador de nuvem |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Crie e implante uma função do Lambda@Edge. | Você pode criar uma função Lambda @Edge usando um esquema para modificar CloudFront cabeçalhos de resposta. (Outros bluePrints estão disponíveis para diferentes casos de uso; para obter mais informações, consulte exemplos de funções do Lambda @Edge na CloudFront documentação.) Para criar uma função Lambda@Edge:
| Administrador da AWS |
Implante a função do Lambda@Edge. | Siga as instruções na etapa 4 do tutorial: Criação de uma função simples do Lambda @Edge na CloudFront documentação da Amazon para configurar o CloudFront gatilho e implantar a função. | Administrador da AWS |
Recursos relacionados
CloudFront documentação