Replicación

Adobe Experience Manager as a Cloud Service utiliza la capacidad Sling Content Distribution para mover el contenido a un servicio de canalización que se ejecute en un Adobe I/O que esté fuera del tiempo de ejecución de AEM.

NOTA

Lea Distribución para obtener más información.

Métodos de publicación de contenido

Cancelación/publicación rápida: cancelación/publicación planeada

Esto le permite publicar las páginas seleccionadas inmediatamente, sin las opciones adicionales posibles a través del enfoque Administrar publicación .

Para obtener más información, consulte Administrar publicación.

Horas de activación y desactivación: configuración de Déclencheur

Las posibilidades adicionales de Tiempo de activación y Tiempo de inactividad están disponibles en la pestaña Básico de Propiedades de página.

Para realizar la replicación automática para esto, debe habilitar Replicación automática en la configuración OSGi Configuración del Déclencheur desactivado:

Configuración del Déclencheur de activación de OSGi

Administrar publicación

Administrar publicación ofrece más opciones que Publicación rápida, pues permite incluir páginas secundarias, personalizar las referencias e iniciar cualquier flujo de trabajo aplicable, además de poder publicar en un momento posterior.

Si se incluyen los elementos secundarios de una carpeta para la opción "publicar más tarde", se invocará el flujo de trabajo Publicar árbol de contenido , descrito en este artículo.

Puede encontrar información más detallada sobre Administrar publicación en la documentación de Aspectos básicos de publicación.

Activación de árbol

NOTA

Este enfoque debe considerarse obsoleto, ya que no persiste en los estados y es menos escalable que otros enfoques. La recomendación del Adobe es utilizar en su lugar los métodos de gestión de publicación o flujo de trabajo

Para realizar una activación de árbol:

  1. En el menú Inicio de AEM, vaya a Tools > Deployment > Distribution

  2. Seleccione la tarjeta publish

  3. Una vez en la interfaz de usuario de la consola web de publicación, seleccione Distribuir

  4. Seleccione la ruta en el navegador de rutas, elija añadir un nodo, árbol o eliminar según sea necesario y seleccione Submit

Para obtener el mejor rendimiento, siga estas directrices al utilizar esta función:

  • Se recomienda duplicar menos de 100 rutas a la vez, con un límite de 500 rutas.
  • El tamaño total del contenido replicado debe ser inferior a 5 MB. Esto solo incluye los nodos y las propiedades, pero no cualquier binario, que incluya paquetes de flujo de trabajo y paquetes de contenido.

Flujo de trabajo del árbol de contenido de publicación

Puede almacenar en déclencheur una replicación de árbol seleccionando Tools - Workflow - Models y copiando el modelo de flujo de trabajo Publish Content Tree listo para usar, como se muestra a continuación:

No modifique ni invoque el modelo original. En su lugar, asegúrese de copiar primero el modelo y luego modificar o invocar esa copia.

Al igual que todos los flujos de trabajo, también se puede invocar mediante API. Para obtener más información, consulte Interacción con flujos de trabajo mediante programación.

También puede conseguirlo creando un modelo de flujo de trabajo que utilice el paso de proceso Publish Content Tree:

  1. Desde la página de inicio de AEM as a Cloud Service, vaya a Herramientas - Flujo de trabajo - Modelos

  2. En la página Modelos de flujo de trabajo , pulse Crear en la esquina superior derecha de la pantalla

  3. Añada un título y un nombre al modelo. Para obtener más información, consulte Creación de modelos de flujo de trabajo

  4. Seleccione el modelo recién creado de la lista y pulse Editar

  5. En la siguiente ventana, arrastre y suelte el paso de proceso en el flujo del modelo actual:

    Etapa del proceso

  6. Haga clic en el paso Proceso del flujo y seleccione Configurar pulsando el icono de la llave inglesa

  7. Haga clic en la pestaña Process y seleccione Publish Content Tree en la lista desplegable

    Activación mediante árbol

  8. Establezca cualquier parámetro adicional en el campo Arguments. Los argumentos separados por comas múltiples se pueden agrupar. Por ejemplo:

    enableVersion=true,agentId=publish

    NOTA

    Para obtener la lista de parámetros, consulte la sección Parameters a continuación.

  9. Pulse Listo para guardar el modelo de flujo de trabajo.

Parámetros

  • replicateAsParticipant (valor booleano, predeterminado: false). Si se configura como true, la replicación utiliza el userid del principal que realizó el paso del participante.
  • enableVersion (valor booleano, predeterminado: true). Este parámetro determina si se crea una nueva versión tras la replicación.
  • agentId (valor de cadena, de forma predeterminada significa que solo se utilizan agentes para la publicación). Se recomienda ser explícito sobre agentId; por ejemplo, si se establece el valor: publicar. Si el agente se establece en preview, se publicará en el servicio de vista previa
  • filters (valor de cadena, predeterminado significa que todas las rutas están activadas). Los valores disponibles son:
    • onlyActivated - sólo se activarán las rutas que no estén marcadas como activadas.
    • onlyModified - activar solo las rutas que ya están activadas y que tienen una fecha de modificación posterior a la fecha de activación.
    • Lo anterior puede ser Oed con una barra vertical "|". Por ejemplo, onlyActivated|onlyModified.

Registro

Cuando se inicie el paso del flujo de trabajo de activación del árbol, registrará sus parámetros de configuración en el nivel de registro INFO. Cuando se activan las rutas, también se registra una instrucción INFO.

A continuación, se registra una instrucción INFO final después de que el paso del flujo de trabajo haya duplicado todas las rutas.

Además, puede aumentar el nivel de registro de los registradores por debajo de com.day.cq.wcm.workflow.process.impl a DEBUG/TRACE para obtener aún más información de registro.

En caso de errores, el paso del flujo de trabajo finaliza con un WorkflowException, que ajusta la excepción subyacente.

A continuación, se muestran ejemplos de registros generados durante un flujo de trabajo de árbol de contenido de publicación de muestra:

21.04.2021 19:14:55.566 [cm-p123-e456-aem-author-797aaaf-wkkqt] *INFO* [JobHandler: /var/workflow/instances/server60/2021-04-20/brian-tree-replication-test-2_1:/content/wknd/us/en/adventures] com.day.cq.wcm.workflow.process.impl.treeactivation.TreeActivationWorkflowProcess TreeActivation options: replicateAsParticipant=false(userid=workflow-process-service), agentId=publish, chunkSize=100, filter=, enableVersion=false
21.04.2021 19:14:58.541 [cm-p123-e456-aem-author-797aaaf-wkkqt] *INFO* [JobHandler: /var/workflow/instances/server60/2021-04-20/brian-tree-replication-test-2_1:/content/wknd/us/en/adventures] com.day.cq.wcm.workflow.process.impl.ChunkedReplicator closing chunkedReplication-VolatileWorkItem_node1_var_workflow_instances_server60_2021-04-20_brian-tree-replication-test-2_1, 17 paths replicated in 2971 ms

Reanudar compatibilidad

El flujo de trabajo procesa el contenido en fragmentos, cada uno de los cuales representa un subconjunto del contenido completo que se va a publicar. Si, por cualquier motivo, el sistema detiene el flujo de trabajo, se reiniciará y procesará el fragmento que aún no se haya procesado. Una sentencia de registro indicará que el contenido se ha reanudado desde una ruta específica.

API de replicación

Puede publicar contenido mediante la API de replicación incluida en AEM como Cloud Service.

Para obtener más información, consulte la Documentación de API.

Uso básico de la API

@Reference
Replicator replicator;
@Reference
ReplicationStatusProvider replicationStatusProvider;

....
Session session = ...
// Activate a single page to all agents, which are active by default
replicator.replicate(session,ReplicationActionType.ACTIVATE,"/content/we-retail/en");
// Activate multiple pages (but try to limit it to approx 100 at max)
replicator.replicate(session,ReplicationActionType.ACTIVATE, new String[]{"/content/we-retail/en","/content/we-retail/de"});

// ways to get the replication status
Resource enResource = resourceResolver.getResource("/content/we-retail/en");
Resource deResource = resourceResolver.getResource("/content/we-retail/de");
ReplicationStatus enStatus = enResource.adaptTo(ReplicationStatus.class);
// if you need to get the status for more more than 1 resource at once, this approach is more performant
Map<String,ReplicationStatus> allStatus = replicationStatusProvider.getBatchReplicationStatus(enResource,deResource);

Replicación con agentes específicos

Al replicar recursos como en el ejemplo anterior, solo se utilizan los agentes activos de forma predeterminada. En AEM como Cloud Service, solo será el agente denominado "publicar", que conecta al autor con el nivel de publicación.

Para admitir la funcionalidad de vista previa, se ha agregado un nuevo agente llamado "vista previa", que no está activo de forma predeterminada. Este agente se utiliza para conectar al autor al nivel de vista previa. Si desea replicar solo a través del agente de vista previa, debe seleccionar explícitamente este agente de vista previa a través de un AgentFilter.

Consulte el ejemplo siguiente sobre cómo hacerlo:

private static final String PREVIEW_AGENT = "preview";

ReplicationStatus beforeStatus = enResource.adaptTo(ReplicationStatus.class); // beforeStatus.isActivated == false

ReplicationOptions options = new ReplicationOptions();
options.setFilter(new AgentFilter() {
  @Override
  public boolean isIncluded (Agent agent) {
    return agent.getId().equals(PREVIEW_AGENT);
  }
});
// will replicate only to preview
replicator.replicate(session,ReplicationActionType.ACTIVATE,"/content/we-retail/en", options);

ReplicationStatus afterStatus = enResource.adaptTo(ReplicationStatus.class); // afterStatus.isActivated == false
ReplicationStatus previewStatus = afterStatus.getStatusForAgent(PREVIEW_AGENT); // previewStatus.isActivated == true

Si no proporciona dicho filtro y solo utiliza el agente "publicar", no se utiliza el agente "vista previa" y la acción de replicación no afecta al nivel de vista previa.

El ReplicationStatus general de un recurso solo se modifica si la acción de replicación incluye al menos un agente que esté activo de forma predeterminada. En el ejemplo anterior, este no es el caso, ya que la replicación está utilizando el agente de "vista previa". Por lo tanto, debe utilizar el nuevo método getStatusForAgent() , que permite consultar el estado de un agente específico. Este método también funciona para el agente "publicar". Devuelve un valor no nulo si se ha realizado alguna acción de replicación con el agente proporcionado.

Ruta de acceso y límites de tamaño de la API de replicación

Se recomienda duplicar menos de 100 rutas, siendo 500 el límite duro. Por encima del límite estricto, se lanzará una ReplicationException. Si la lógica de su aplicación no requiere replicación atómica, este límite se puede superar estableciendo ReplicationOptions.setUseAtomicCalls en false, que aceptará cualquier cantidad de rutas, pero creará bloques internamente para permanecer por debajo de este límite. La cantidad de contenido transmitido por llamada de replicación no debe superar los 5 MB, que incluyen los nodos y las propiedades, pero no ningún binario (los paquetes de flujo de trabajo y los paquetes de contenido se consideran binarios).

Solución de problemas

Para solucionar problemas de replicación, vaya a las colas de replicación en la interfaz de usuario web del servicio de autor de AEM:

  1. En el menú Inicio de AEM, vaya a Tools > Deployment > Distribution
  2. Seleccione la tarjeta publish
  3. Comprobar el estado de la cola que debería ser verde
  4. Puede probar la conexión con el servicio de replicación
  5. Seleccione la pestaña Logs que muestra el historial de publicaciones de contenido

Si no se pudo publicar el contenido, toda la publicación se revierte desde el servicio de publicación de AEM.
En ese caso, la cola principal editable mostrará un estado rojo y debe revisarse para identificar qué elemento(s) provocó la cancelación de la publicación. Al hacer clic en esa cola, se mostrarán los elementos pendientes, desde los cuales se puede borrar un solo artículo o todos los elementos si es necesario.

En esta página