Os cabeçalhos de resposta HTTP agora podem ser personalizados por meio das funções do Lambda@edge. Consulte http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-at-the-edge.html para obter a documentação. Para tentar isso, crie uma nova função lambda no console AWS. Escolha 'Edge Nodge.js 4.3' para o idioma e procure o modelo de cabeçalho cloudfront-modify-response. Se você fizer isso, o Lambda perguntará a qual distribuição e evento do CloudFront aplicar a função. Observe que você pode editar ou alterar isso a qualquer momento acessando a guia de comportamento do Cloudfront.
Acabei de tentar isso e algumas observações: não há mais tempo de execução de nó de borda específico, mas o lambda precisa ser criado na região de N Virginia e acionado por cloudfront origin-response ou viewer-response .
O código pronto para uso parece não funcionar mais. Dá ERR_CONTENT_DECODING_FAILED.
A solução é usar a sintaxe json da seguinte forma:
Agora você pode adicionar cabeçalhos de resposta HTTP personalizados (incluindo CORS e cabeçalhos de segurança como HSTS) nativamente no CloudFront, sem modificar sua origem ou funções de gravação. Se você for para Políticas > Cabeçalhos de resposta no console, poderá criar uma política reutilizável com sua configuração e anexá-la a um ou mais comportamentos de cache onde gostaria que esses cabeçalhos fossem adicionados. Isso também está disponível por meio da API, CLI, SDK e assim por diante.
Uma atualização sobre isso...
Os cabeçalhos de resposta HTTP agora podem ser personalizados por meio das funções do Lambda@edge. Consulte http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-at-the-edge.html para obter a documentação. Para tentar isso, crie uma nova função lambda no console AWS. Escolha 'Edge Nodge.js 4.3' para o idioma e procure o modelo de cabeçalho cloudfront-modify-response. Se você fizer isso, o Lambda perguntará a qual distribuição e evento do CloudFront aplicar a função. Observe que você pode editar ou alterar isso a qualquer momento acessando a guia de comportamento do Cloudfront.
Aqui está um exemplo de função lambda ...
Atualmente não é possível, consulte https://forums.aws.amazon.com/thread.jspa?threadID=162252 para uma discussão sobre isso.
Editar: Lambda@Edge tornou isso possível, veja abaixo.
Para adicionar à resposta de Andrew:
Acabei de tentar isso e algumas observações: não há mais tempo de execução de nó de borda específico, mas o lambda precisa ser criado na região de N Virginia e acionado por cloudfront origin-response ou viewer-response .
O código pronto para uso parece não funcionar mais. Dá ERR_CONTENT_DECODING_FAILED.
A solução é usar a sintaxe json da seguinte forma:
Mais uma atualização neste...
Agora você pode adicionar cabeçalhos de resposta HTTP personalizados (incluindo CORS e cabeçalhos de segurança como HSTS) nativamente no CloudFront, sem modificar sua origem ou funções de gravação. Se você for para Políticas > Cabeçalhos de resposta no console, poderá criar uma política reutilizável com sua configuração e anexá-la a um ou mais comportamentos de cache onde gostaria que esses cabeçalhos fossem adicionados. Isso também está disponível por meio da API, CLI, SDK e assim por diante.
A documentação está disponível aqui: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/adding-response-headers.html
Correto, como o Lambda@Edge está geralmente disponível, eles o restringiram a N Virginia e é preciso escolher o Nó 6.10 em vez do Nó 4.3.
A parte relevante do nosso código abaixo (para o nosso propósito, sempre será um redirecionamento permanente 302):
Ao configurar diferentes comportamentos no CloudFront, você pode limitar quais solicitações chamarão a função Lambda.