La implementación de Cloud Manager falla debido a los permisos de sling-distribution-importer | AEM Cloud Service

Problema

Durante una implementación de Cloud Manager en AEM as a Cloud Service, el paso de implementación falla y se observan errores como los siguientes.

[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

Causa

El usuario de sling-distribution-importer necesita permisos adicionales para las rutas de contenido definidas en el paquete ui.content.  Esto generalmente significa que necesitamos agregar permisos para /conf y /var.

Solución

La solución a esto es agregar una secuencia de comandos de configuración de RepositoryInitializer OSGi al paquete de implementación de aplicaciones para agregar ACL al usuario sling-distribution-importer.
En el error de ejemplo anterior, el paquete myapp-base.ui.content-*.zip incluye contenido en /conf y /var/workflow.  Para que la implementación no falle, necesitaríamos agregar permisos para sling-distribution-importer en esas rutas. 

A continuación aparece un ejemplo [1] de una configuración OSGi que agrega permisos adicionales para el usuario de sling-distribution-importer.  Esta configuración añade permisos en /var.  Este archivo xml que aparece debajo de [1] debe agregarse al paquete de la aplicación en /apps/myapp/config (donde myapp es la carpeta donde se almacena el código de la aplicación).

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

Logotipo de Adobe

Inicia sesión en tu cuenta