在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使用者端。 使用
cURL、Postman或瀏覽器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的標準錯誤處理。
相關閱讀
- 在AEM as a Cloud Service教學課程中使用記錄檔偵錯AEM as a Cloud Service。
- 在AEM Dispatcher指南中設定AEM Dispatcher。
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f