AEM Cloud环境中的OSGi配置加载和继承问题

当值在各个环境中显示缺失、重复或不一致时,Adobe Experience Manager as a Cloud Service (AEMaaCS)会遇到OSGi配置问题。 这是因为严格的基于运行模式的分辨率、Git驱动的部署和面板级别的配置加载。 要解决此问题,请更正OSGi文件夹结构,验证运行模式命名,并重新部署配置以确保跨pod的行为一致。

描述 description

环境

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

问题/症状

  • 部署后,OSGi配置值未显示在vDeveloper Console中。
  • 显示同一PID的多个实例,如com.day.cq.mailer.DefaultMailService,每个面板一个。
  • 配置仅在Author或Publish上加载,具体取决于运行模式。
  • 预览值与“发布”值不匹配,即使它们在默认情况下继承也是如此。
  • 新的Developer Console UI显示过时的值,而传统视图显示正确的值。

根本原因

AEMaaCS在所需的存储库路径下使用基于运行模式的文件夹命名来从Git解析OSGi配置。 文件夹位置错误、运行模式名称不正确或深度嵌套会阻止检测配置。 配置通过Sling JCR安装程序按面板加载,并且预览会继承Publish值。 由于已知限制,新的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. 打开 所有作者所有发布者 的配置视图,并确认每个面板显示的值已分组。
  9. 如果只有一个面板显示更新的值,请重新部署管道,因为可能会发生面板级别的临时偏移。
  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