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配置行为和部署正确:
- 导航到Git存储库,并验证OSGi配置是否存储在
ui.config/src/main/content/jcr_root/apps/<project>/osgiconfig下。 - 确保配置文件夹遵循正确的运行模式模式,如
config.publish、config.publish.stage或config.author.dev。 - 将任何深度嵌套的配置文件夹(如
apps/project/test1/test2/config.author)移至pps/<project>/osgiconfig/config.<runmode>以确保检测。 - 识别目标环境并确保应用最具体的运行模式,例如
config.publish.stage覆盖config.publish。 - 将任何不匹配的运行模式命名(如
config.stg.public)更正为有效模式(如config.publish.stage)。 - 运行与
ui.config模块关联的Cloud Manager管道以部署配置更改。 - 在Developer Console Classic视图中验证配置值,因为较新的UI可能显示过时数据。
- 打开 所有作者 或 所有发布者 的配置视图,并确认每个面板显示的值已分组。
- 如果只有一个面板显示更新的值,请重新部署管道,因为可能会发生面板级别的临时偏移。
- 删除所有
config.preview.*文件夹,以便预览从发布继承值。 - 在服务集内使用环境变量进行预览(如果需要预览特定的区分)。
- 从Git中删除
.cfg.json文件并重新部署管道以删除配置并将其重置为默认值。 - 如果删除后配置仍然存在,请在
filter.xml中添加mode="replace"。 - 确保配置文件仅包含必需属性,以便未指定的值回退到默认值。
- 验证在Developer Console classic视图的所有pod中是否正确显示了所有有效的配置值。
何时上报:
- 验证文件夹结构并重新部署管道后,配置值未显示。
- 尽管文件夹命名正确,运行模式解析度仍不会应用预期的配置值。
- 只有部分pod会在多次部署后反映更新的配置值。
- 在删除特定于预览的配置文件夹后,预览未继承发布值。
- 删除文件并重新部署后,配置删除不会生效。
- Sling安装程序未按预期处理配置资源。
相关阅读
recommendation-more-help
experience-cloud-kcs-help-kbarticles