在AEMaaCS錯誤回應中保留X-Correlation-Id (404/500)

在Adobe Experience Manager as a Cloud Service中,您會使用X-Correlation-Id標頭來追蹤AEM、Dispatcher和CDN圖層中的請求。 雖然此標頭出現在成功的(200 OK)回應中,但它在錯誤回應(如​ 404 Not Found ​或​500內部伺服器錯誤)中遺失,即使AEM記錄檔確認它已設定。 依預設,CDN會以合成頁面取代AEM錯誤回應,進而移除自訂標題。 這會中斷監控和偵錯工作流程,導致難以將使用端失敗與後端記錄建立關聯。

若要修正此問題,請新增x-aem-error-pass: true標頭至錯誤回應。 這會告訴CDN轉送原始AEM回應,而非產生綜合錯誤頁面,確保所有回應型別都會保留X-Correlation-Id標題。

說明 description

環境

  • Adobe Experience Manager as a Cloud Service (AEMaaCS)
  • 使用responseTransformations的CDN設定
  • 內容:跨AEM、Dispatcher和CDN實作關聯ID或追蹤機制時

問題/症狀

  • X-Correlation-Id標頭存在於200 OK個回應中,但在404或500個回應中遺失。
  • AEM記錄會顯示標題已設定,但不會連線至瀏覽器或API使用者端。 使用cURLPostman或瀏覽器developer tools驗證要求追蹤或偵錯行為時已注意。
  • 由於遺失關聯標頭,監控系統無法追蹤失敗的交易。
  • CDN設定似乎會在錯誤回應中隱藏標頭。

解決方法 resolution

若要允許AEM的原始錯誤回應及其標頭連線至使用者端:

  • 設定您的AEM錯誤處理常式,在錯誤回應中包含標頭x-aem-error-pass: true

  • 這會指示CDN略過合成錯誤頁面的產生,並將原始AEM或Dispatcher回應(包括其標頭)直接轉送給使用者端。

  • 套用此變更後:

    • X-Correlation-Id標頭會同時出現在成功和失敗的回應中。
    • 使用者端監控工具可準確追蹤完整的請求生命週期。

其他考量:

  • 安全性與法規遵循:在生產環境中啟用此標題之前,請確定錯誤裝載不會公開敏感的內部詳細資訊。
  • 範圍:此行為僅適用於AEM或Dispatcher產生的回應。 CDN層級錯誤仍會提供合成頁面。
  • 常見誤解: responseTransformations無法在綜合錯誤回應中重新插入標題。
  • 測試秘訣:在套用修正之前和之後,使用curl -i -v或瀏覽器開發人員工具來驗證標題是否存在。 例如, -i -v https:///path-that-triggers-error

最佳實務建議:

  • 一律在後端請求中產生及設定相互關聯ID。
  • 在記錄檔和標題中包含相同的ID。
  • 針對需要完整追蹤的錯誤回應,使用x-aem-error-pass: true,尤其是在偵錯或整合測試期間。
  • 將生產中的使用限制在受控制的情境,以避免覆寫CDN的標準錯誤處理。

相關閱讀

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f