Preservar X-Correlation-Id nas respostas de erro do AEMaaCS (404/500)
No Adobe Experience Manager as a Cloud Service, você usa o cabeçalho X-Correlation-Id para rastrear solicitações nas camadas do AEM, Dispatcher e CDN. Embora este cabeçalho apareça em respostas bem-sucedidas (200 OK), ele está ausente em respostas de erro como 404 Não encontrado ou 500 Erro Interno do Servidor, mesmo que os logs do AEM confirmem que ele foi definido. Por padrão, o CDN substitui as respostas de erro do AEM por páginas sintéticas, que removem os cabeçalhos personalizados. Isso interrompe os fluxos de trabalho de monitoramento e depuração, dificultando a correlação das falhas do lado do cliente com os logs de back-end.
Para corrigir isso, adicione o cabeçalho x-aem-error-pass: true às respostas de erro. Isso instrui o CDN a encaminhar a resposta original do AEM em vez de gerar uma página de erro sintético, garantindo que o cabeçalho X-Correlation-Id seja preservado em todos os tipos de resposta.
Descrição description
Ambiente
- Adobe Experience Manager as a Cloud Service (AEMaaCS)
- Configurações de CDN usando
responseTransformations - Contexto: ao implementar IDs de correlação ou mecanismos de rastreamento no AEM, Dispatcher e CDN
Problema/Sintomas
- O cabeçalho
X-Correlation-Idestá presente nas respostas200 OK, mas está ausente nas respostas 404 ou 500. - Os logs do AEM mostram que o cabeçalho está definido, mas não alcança o navegador ou o cliente da API. Observado ao validar o rastreamento de solicitação ou o comportamento de depuração usando
cURL,Postmanou o navegadordeveloper tools. - Os sistemas de monitoramento falham ao rastrear transações com falha devido à ausência de cabeçalhos de correlação.
- As configurações de CDN parecem suprimir cabeçalhos nas respostas de erro.
Resolução resolution
Para permitir que a resposta de erro original da AEM e seus cabeçalhos cheguem ao cliente:
-
Configure seu manipulador de erros do AEM para incluir o cabeçalho
x-aem-error-pass: truenas respostas de erro. -
Isso instrui o CDN a ignorar a geração de página de erro sintético e encaminhar a resposta original do AEM ou do Dispatcher (incluindo seus cabeçalhos) diretamente para o cliente.
-
Após aplicar essa alteração:
- O cabeçalho
X-Correlation-Idaparece em respostas com e sem êxito. - As ferramentas de monitoramento do lado do cliente podem rastrear o ciclo de vida completo da solicitação com precisão.
- O cabeçalho
Considerações adicionais:
- Segurança e conformidade: verifique se as cargas de erro não expõem detalhes internos confidenciais antes de habilitar esse cabeçalho na produção.
- Escopo: esse comportamento se aplica somente às respostas geradas pelo AEM ou Dispatcher. Os erros de nível CDN ainda servirão páginas sintéticas.
- Equívoco comum:
responseTransformationsnão pode reinjetar cabeçalhos em respostas de erro sintético. - Dica de teste: use o curl -i -v ou as ferramentas do desenvolvedor do navegador para verificar a presença do cabeçalho antes e depois de aplicar a correção. Por exemplo,
-i -v https:///path-that-triggers-error
Prática recomendada:
- Sempre gere e defina uma ID de correlação em solicitações de back-end.
- Inclua a mesma ID em logs e cabeçalhos.
- Use
x-aem-error-pass: truepara respostas de erro que exigem rastreabilidade completa, especialmente durante testes de depuração ou integração. - Limite o uso na produção para cenários controlados a fim de evitar a substituição da manipulação de erros padrão do CDN.
Leitura relacionada
- Depurando o AEM as a Cloud Service usando logs nos Tutoriais do AEM as a Cloud Service.
- Configure o AEM Dispatcher no Guia do AEM Dispatcher.