AEM雲端環境中的OSGi設定載入和繼承問題

值在各個環境中出現遺失、重複或不一致時,Adobe Experience Manager as a Cloud Service (AEMaaCS)會發生OSGi設定問題。 發生此狀況是因為嚴格的執行模式解析度、Git驅動部署和Pod層級設定載入。 若要解決此問題,請更正OSGi資料夾結構、驗證執行模式命名並重新部署設定,以確保跨pod的行為一致。

說明 description

環境

  • Adobe Experience Manager as a Cloud Service (AEMaaCS)
  • Adobe Managed Services (AMS)

問題/症狀

  • 部署後OSGi設定值未出現在vDeveloper Console中。
  • 會出現相同PID的多個執行個體,例如com.day.cq.mailer.DefaultMailService,每個Pod一個。
  • 視執行模式而定,設定只會在Author或Publish上載入。
  • 預覽值不符合發佈值,即使預設為繼承。
  • 新的Developer Console UI會顯示過時的值,而傳統檢視則會顯示正確的值。

根本原因

AEMaaCS在必要的存放庫路徑下,使用嚴格的執行模式型資料夾命名,從Git解析OSGi設定。 資料夾位置錯誤、執行模式名稱不正確或深度巢狀會防止偵測設定。 設定會透過Sling JCR安裝程式每個Pod載入,而預覽會繼承發佈值。 由於已知的限制,新的Developer Console UI可能會顯示過時值。

解決方法 resolution

請依照下列步驟操作,以確保OSGi設定行為和部署正確無誤:

  1. 導覽至Git存放庫,並驗證OSGi設定是否儲存在ui.config/src/main/content/jcr_root/apps/<project>/osgiconfig下。
  2. 請確定設定資料夾遵循正確的執行模式模式,例如config.publishconfig.publish.stageconfig.author.dev
  3. 將任何深度巢狀組態資料夾(例如apps/project/test1/test2/config.author)移至pps/<project>/osgiconfig/config.<runmode>以確保偵測。
  4. 識別目標環境,並確保套用最特定的執行模式,例如config.publish.stage覆寫config.publish
  5. 將任何不相符的執行模式命名(例如config.stg.public)更正為有效的模式(例如config.publish.stage)。
  6. 執行與ui.config模組關聯的Cloud Manager管道,以部署設定變更。
  7. 請在Developer Console Classic檢視中驗證設定值,因為較新的UI可能會顯示過時資料。
  8. 開啟 所有作者所有發行者 的設定檢視,並確認值是按照每個Pod分組。
  9. 如果只有一個pod顯示更新的值,則重新部署管道,因為可能會發生暫時的pod層級漂移。
  10. 移除任何config.preview.*資料夾,讓「預覽」繼承「發佈」的值。
  11. 在服務集內使用環境變數,以便在需要預覽特定差異時進行預覽。
  12. 從Git移除.cfg.json檔案並重新部署管道,以刪除設定並將其重設為預設值。
  13. 如果組態在刪除後仍持續存在,請在filter.xml中新增mode="replace"
  14. 請確定組態檔僅包含必要屬性,如此一來,未指定的值便會回覆為預設值。
  15. 驗證所有有效的設定值在Developer Console Classic檢視的所有Pod中是否正確顯示。

何時上報:

  • 驗證資料夾結構並重新部署管道後,設定值未出現。
  • 儘管資料夾命名正確,執行模式解析度仍不會套用預期的設定值。
  • 只有部分Pod會在多次部署後反映更新的設定值。
  • 在移除特定於預覽的設定資料夾後,預覽未繼承發佈值。
  • 移除檔案並重新部署後,刪除設定不會生效。
  • Sling安裝程式未如預期處理設定資源。

相關閱讀

recommendation-more-help
experience-cloud-kcs-help-kbarticles