Replicação

O Adobe Experience Manager as a Cloud Service usa o recurso Distribuição de conteúdo de sling para mover o conteúdo para replicar para um serviço de pipeline executado no Adobe I/O que está fora do tempo de execução AEM.

OBSERVAÇÃO

Leia Distribution para obter mais informações.

Métodos de publicação de conteúdo

Publicação/Cancelamento Rápido - Planejado/Publicação

Isso permite publicar as páginas selecionadas imediatamente, sem as opções adicionais possíveis por meio da abordagem Gerenciar publicação .

Para obter mais informações, consulte Gerenciar publicação.

Tempos de ativação e desativação - Configuração de acionador

As possibilidades adicionais de No Tempo e Tempo desligado estão disponíveis na guia Básico das Propriedades da página.

Para realizar a replicação automática para isso, você precisa ativar a Replicação automática na configuração OSGi Configuração do Acionador Desligado:

Configuração do Acionador Desligado do OSGi

Gerenciar publicação

A opção Gerenciar publicação oferece mais opções do que a Publicação rápida, permitindo a inclusão de páginas filhas, a personalização das referências e o início de qualquer fluxo de trabalho aplicável, além de oferecer a opção de publicação em uma data posterior.

A inclusão dos filhos de uma pasta na opção "publicar mais tarde" chamará o fluxo de trabalho Publicar árvore de conteúdo, descrito neste artigo.

Você pode encontrar informações mais detalhadas sobre Gerenciar publicação na documentação de Fundamentos da publicação.

Ativação de árvore

OBSERVAÇÃO

Essa abordagem deve ser considerada obsoleta e será removida em ou após 30 de setembro de 2021, pois não persiste nos status e é menos escalável do que outras abordagens. Em vez disso, os métodos do workflow são usados para gerenciar a publicação

Para executar uma ativação de árvore:

  1. No menu Iniciar AEM, navegue até Ferramentas > Implantação > Distribuição

  2. Selecione o cartão publish

  3. Uma vez na interface do console da Web de publicação, selecione Distribuir

  4. Selecione o caminho no navegador de caminho, escolha adicionar um nó, árvore ou excluir conforme necessário e selecione Enviar

Para um melhor desempenho, siga estas diretrizes ao usar este recurso:

  • Recomenda-se replicar menos de 100 caminhos de cada vez, com um limite rígido de 500 caminhos.
  • O tamanho total do conteúdo replicado deve ser inferior a 5 MB. Isso inclui apenas os nós e propriedades, mas não qualquer binário, que incluem pacotes de fluxo de trabalho e pacotes de conteúdo.

Fluxo de trabalho da Árvore de conteúdo da publicação

Você pode acionar uma replicação de árvore escolhendo Ferramentas - Fluxo de trabalho - Modelos e copiando o modelo de fluxo de trabalho pronto para uso Publicar árvore de conteúdo, conforme mostrado abaixo:

Não modifique ou chame o modelo original. Em vez disso, primeiro copie o modelo e depois modifique ou chame essa cópia.

Como todos os workflows, também é possível invocá-los por meio da API. Para obter mais informações, consulte Interagir com workflows programaticamente.

Como alternativa, você também pode fazer isso criando um Modelo de fluxo de trabalho que usa a etapa do processo Publish Content Tree:

  1. Na página inicial do AEM as a Cloud Service, vá para Ferramentas - Fluxo de trabalho - Modelos

  2. Na página Modelos de fluxo de trabalho , pressione Create no canto superior direito da tela

  3. Adicione um título e um nome ao modelo. Para obter mais informações, consulte Criação de modelos de fluxo de trabalho

  4. Selecione o modelo recém-criado na lista e pressione Edit

  5. Na janela a seguir, arraste e solte a Etapa do processo no fluxo do modelo atual:

    Etapa do processo

  6. Clique na etapa Processo no fluxo e selecione Configurar pressionando o ícone da chave inglesa

  7. Clique na guia Process e selecione Publish Content Tree na lista suspensa

    Treeativation

  8. Defina quaisquer parâmetros adicionais no campo Argumentos. Vários argumentos separados por vírgula podem ser stringidos juntos. Por exemplo:

    enableVersion=true,agentId=publish

    OBSERVAÇÃO

    Para obter a lista de parâmetros, consulte a seção Parameters abaixo.

  9. Pressione Concluído para salvar o modelo de Fluxo de trabalho.

Parâmetros

  • replicateAsParticipant (valor booleano, padrão: false). Se configurado como true, a replicação está usando o userid do principal que executou a etapa do participante.
  • enableVersion (valor booleano, padrão: true). Esse parâmetro determina se uma nova versão será criada na replicação.
  • agentId (valor da string, padrão significa que apenas os agentes para publicação são usados). Recomenda-se ser explícito sobre o agentId; por exemplo, definir o valor para : publicar. Configurar o agente para preview será publicado no serviço de visualização
  • filters (valor da string, padrão significa que todos os caminhos estão ativados). Os valores disponíveis são:
    • onlyActivated - somente os caminhos que não estão marcados como ativados serão ativados.
    • onlyModified - ative apenas caminhos que já estejam ativados e tenham uma data de modificação posterior à data de ativação.
    • O acima pode ser ORed com uma barra vertical "|". Por exemplo, onlyActivated|onlyModified.

Logs

Quando a etapa do fluxo de trabalho de ativação da árvore for iniciada, ele registrará os parâmetros de configuração no nível de log INFO. Quando os caminhos são ativados, uma instrução INFO também é registrada.

Uma instrução INFO final será registrada após a etapa do fluxo de trabalho ter replicado todos os caminhos.

Além disso, você pode aumentar o nível de log dos registradores abaixo com.day.cq.wcm.workflow.process.impl para DEBUG/TRACE para obter ainda mais informações de log.

No caso de erros, a etapa do fluxo de trabalho termina com um WorkflowException, que envolve a Exceção subjacente.

Abaixo você encontrará exemplos de logs gerados durante um exemplo de fluxo de trabalho da árvore de conteúdo de publicação:

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

Retomar suporte

O workflow processa o conteúdo em partes, cada uma representando um subconjunto do conteúdo completo a ser publicado. Se, por qualquer motivo, o workflow for interrompido pelo sistema, ele reiniciará e processará o segmento que ainda não foi processado. Uma declaração de log indicará que o conteúdo foi retomado de um caminho específico.

API de replicação

Você pode publicar conteúdo usando a API de substituição em AEM como um Cloud Service.

Para obter mais informações, consulte a Documentação da API.

Uso básico da 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);

Replicação com agentes específicos

Ao replicar recursos como no exemplo acima, somente os agentes que estão ativos por padrão serão usados. No AEM como um Cloud Service, esse será apenas o agente chamado "publicar", que conecta o autor ao nível de publicação.

Para oferecer suporte à funcionalidade de visualização, um novo agente chamado "pré-visualização" foi adicionado, o que não está ativo por padrão. Esse agente é usado para conectar o autor à camada de visualização. Se quiser replicar somente por meio do agente de visualização, é necessário selecionar explicitamente esse agente de visualização por meio de um AgentFilter.

Veja o exemplo abaixo sobre como fazer isso:

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

Caso não forneça esse filtro e use apenas o agente "publicar", o agente "visualizar" não será usado e a ação de replicação não afetará o nível de visualização.

O ReplicationStatus geral de um recurso só será modificado se a ação de replicação incluir pelo menos um agente que esteja ativo por padrão. No exemplo acima, isso não ocorre, pois a replicação está usando apenas o agente "preview". Portanto, você precisa usar o novo método getStatusForAgent(), que permite consultar o status de um agente específico. Esse método também funciona para o agente "publicar". Retorna um valor não nulo se houver alguma ação de replicação feita usando o agente fornecido.

Caminho e limites de tamanho da API de replicação

Recomenda-se replicar menos de 100 caminhos, sendo 500 o limite rígido. Acima do limite rígido, um ReplicationException será lançado. Se a lógica do aplicativo não exigir replicação atômica, esse limite poderá ser ultrapassado definindo ReplicationOptions.setUseAtomicCalls como false, o que aceitará qualquer número de caminhos, mas criará compartimentos internamente para permanecer abaixo desse limite. A quantidade de conteúdo transmitido por chamada de replicação não deve exceder 5 MB, o que inclui os nós e as propriedades, mas não qualquer binário (pacotes de fluxo de trabalho e pacotes de conteúdo são considerados binários).

Resolução de problemas

Para solucionar problemas de replicação, navegue até as filas de replicação na interface do usuário da Web do AEM Author Service:

  1. No menu Iniciar AEM, navegue até Ferramentas > Implantação > Distribuição
  2. Selecione o cartão publish
  3. Verifique o status da fila que deve estar verde
  4. Você pode testar a conexão com o serviço de replicação
  5. Selecione a guia Logs que mostra o histórico de publicações de conteúdo

Se o conteúdo não puder ser publicado, toda a publicação será revertida do AEM Publish Service.
Nesse caso, a fila principal e editável mostrará um status vermelho e deverá ser revisada para identificar quais itens causaram o cancelamento da publicação. Ao clicar nessa fila, seus itens pendentes serão exibidos, a partir dos quais um único item ou todos os itens podem ser apagados, se necessário.

Nesta página