Cloud Manager 部署因 sling-distribution-importer 权限而失败 | AEM Cloud Service

问题

在 AEM 上将 Cloud Manager 部署为 Cloud Service 环境时,部署步骤失败并出现以下错误。

[Queue Processor for Subscriber agent forwardPublisherSubscriber] org.apache.jackrabbit.vault.fs.io.Importer Error while committing changes. Retrying import from checkpoint at /. Retries 4/10 
 
 
[Queue Processor for Subscriber agent forwardPublisherSubscriber] org.apache.sling.distribution.journal.impl.subscriber.DistributionSubscriber Error processing queue item 
org.apache.sling.distribution.common.DistributionException: Error processing distribution package dstrpck-1583514457813-c81e7751-2da6-4d00-9814-434187f08d32. Retry attempts 162/infinite. 
... 
Caused by: org.apache.sling.api.resource.PersistenceException: Unable to commit changes to session. 
... 
Caused by: javax.jcr.AccessDeniedException: OakAccess0000: Access denied 
 
 
[EventAdminAsyncThread #7] org.apache.sling.distribution.journal.impl.publisher.DistributionPublisher [null] Error processing distribution package dstrpck-1583514457813-c81e7751-2da6-4d00-9814-434187f08d32. Retry attempts 344/infinite. Message: Error trying to extract package at path /etc/packages/com.myapp/myapp-base.ui.content-5.1.0-SNAPSHOT.zip

原因

按照 ui.content 包中定义的内容路径,sling-distribution-importer 用户需要获得更多权限。这通常意味着我们需要为 /conf 和 /var 增加权限。

解决方案

这个问题的解决方案,是向应用程序部署包中添加 RepositoryInitializer OSGi 配置脚本,以便为 sling-distribution-importer 用户添加 ACL。
在上面的错误示例中,myapp-base.ui.content-*.zip 压缩包包含了 /conf 和 /var/workflow 下的内容。为了部署成功,我们需要在这些路径下添加 sling-distribution-importer 的权限。

以下是某个此类 OSGi 配置的示例 [1],该配置为 sling-distribution-importer 用户添加了更多权限。此配置会将权限添加到 /var 下。需要将示例 [1] 下的这个 xml 文件添加到位于 /apps/myapp/config(其中,myapp 是用来存储应用程序代码的文件夹)下的应用程序包中。

[1] org.apache.sling.jcr.repoinit.RepositoryInitializer-DistributionService.config

Adobe 徽标

登录到您的帐户