Replicação replication
O Adobe Experience Manager as a Cloud Service usa o recurso Distribuição de Conteúdo do Sling para mover o conteúdo e replicá-lo em um serviço de pipeline executado no Adobe Developer, que está fora do tempo de execução do AEM.
Métodos de publicação de conteúdo methods-of-publishing-content
Não é recomendável criar seu próprio código personalizado de publicação em massa.
Se precisar personalizar por qualquer motivo, você poderá acionar um fluxo de trabalho com essa etapa usando APIs de fluxo de trabalho existentes.
É sempre uma boa prática publicar somente conteúdo que deve ser publicado. E seja prudente ao não tentar publicar grandes números de conteúdo, se não for necessário. No entanto, não há limites para o conteúdo que você pode enviar por meio de workflows com a Etapa de fluxo de trabalho Ativação em árvore.
Publicação/Cancelamento de publicação rápidos — Publicação/Cancelamento de publicação planejados publish-unpublish
Esse recurso 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 do acionador on-and-off-times-trigger-configuration
As possibilidades adicionais de Tempo de ativação e Tempo de desativação estão disponíveis na guia Básico das propriedades de página.
Para efetuar a replicação automática deste recurso, habilite Replicação Automática na Configuração OSGi Configuração do Acionador Ligado/Desligado:
Gerenciar publicação manage-publication
Gerenciar publicação oferece mais opções do que a Publicação rápida, permitindo a inclusão de páginas secundárias, 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 posterior.
Incluir os filhos de uma pasta na opção “publicar mais tarde” invoca o fluxo de trabalho Publicar Árvore de Conteúdo, descrito em Fluxos de Trabalho de Replicação de Árvore.
Você pode encontrar informações mais detalhadas sobre Gerenciar publicação na Documentação sobre princípios básicos de publicação.
Para replicar hierarquias profundas de conteúdo em massa, use uma abordagem baseada em workflow. Consulte Fluxos de Trabalho de Replicação de Árvore para obter a etapa recomendada do fluxo de trabalho de Ativação de Árvore, parâmetros de configuração e orientação de monitoramento. O fluxo de trabalho obsoleto da Árvore de conteúdo de publicação também está documentado lá para referência.
API de replicação replication-api
Você pode publicar conteúdo usando a API de replicação disponível no AEM as a 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 than 1 resource at once, this approach is more performant
Map<String,ReplicationStatus> allStatus = replicationStatusProvider.getBatchReplicationStatus(enResource,deResource);
Agentes de replicação
O AEM as a Cloud Service fornece dois agentes de replicação predefinidos que direcionam o conteúdo do autor para um nível de destino por meio da Distribuição de conteúdo de sling:
- publicar — Replica o conteúdo ativado para o nível de publicação ativo. Esse agente é ativado por padrão e é usado ao publicar da interface, workflows ou API de replicação, a menos que você especifique o contrário.
- visualização — Replica o conteúdo para o nível de visualização para que os autores possam revisar as alterações antes que elas entrem no ar. Este agente não está ativado por padrão.
Você pode exibir e monitorar ambos os agentes de Ferramentas > Implantação > Distribuição:
Selecionar uma placa de agente abre seu status, logs e detalhes da fila.
Replicação com agentes específicos
Quando você replica com a API como mostrado acima, somente os agentes habilitados por padrão são usados no AEM as a Cloud Service, ou seja, somente publicar. Para replicar exclusivamente para o nível de visualização, transmita um AgentFilter que selecione o agente de visualização:
Consulte o exemplo a seguir:
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
Se você replicar sem um AgentFilter, somente publicar será usado e o nível de visualização não será afetado.
O ReplicationStatus geral de um recurso é atualizado somente quando a replicação inclui pelo menos um agente habilitado por padrão. No exemplo acima, somente visualização foi usada, então ReplicationStatus.isActivated permanece false. Use getStatusForAgent() para verificar o status de um agente específico, por exemplo, getStatusForAgent("preview") após uma replicação somente para visualização ou getStatusForAgent("publish") para o nível de publicação ativo.
Métodos de invalidação de conteúdo invalidating-content
Você pode invalidar o conteúdo diretamente usando a Invalidação de conteúdo do Sling (SCD) a partir do autor (o método preferencial) ou usando a API de replicação para chamar o agente de replicação de limpeza do Dispatcher de publicação. Consulte a página Armazenamento em cache para obter mais detalhes.
Limites de Capacidade da API de Replicação
Replicar menos de 100 caminhos de cada vez, sendo 500 o limite. Acima do limite, um ReplicationException é lançado.
Se a lógica do aplicativo não exigir uma replicação precisa, esse limite poderá ser ultrapassado definindo ReplicationOptions.setUseAtomicCalls como false, o que aceita qualquer número de caminhos, mas cria compartimentos internamente para permanecer abaixo desse limite.
O tamanho do conteúdo transmitido por chamada de replicação não deve exceder 10 MB. Essa regra inclui os nós e as propriedades, mas não os binários (pacotes de fluxo de trabalho e de conteúdo são considerados binários).
Filas de replicação replication-queues
Cada agente de replicação exibe duas filas de replicação. O AEM as a Cloud Service não mostra mais uma fila separada para cada pod de publicação — o nível de publicação é dimensionado automaticamente, de modo que as filas por pod adicionaram complexidade sem benefício prático. O status da fila é consolidado da seguinte maneira:
- persistente — a alteração é armazenada de forma durável no nível de publicação. Depois que um item é limpo nessa fila, o conteúdo é persistente; as instâncias de publicação atingem um estado consistente ao longo do tempo.
- totalmente publicado — a alteração fica ativa em todos os pods de publicação e o cache do Dispatcher é limpo para os caminhos afetados. Depois que um item limpar essa fila, os visitantes recebem o conteúdo atualizado.
Monitorar Filas de Replicação monitor-replication-queues
-
Na Navegação Global do AEM, navegue até Ferramentas > Implantação.
-
Selecione Distribuição e abra o cartão de agente publicar ou visualizar.
-
Na guia Status, verifique se cada fila mostra um status íntegro. Revise Itens pendentes para o trabalho aguardando processamento e Último item processado para a atividade recente.
-
Selecione Testar Conexão para verificar se o agente pode acessar o serviço de distribuição.
-
Selecione a guia Logs para exibir o histórico de publicações de conteúdo.
Resolução de problemas troubleshooting
Se o conteúdo não puder ser publicado, a publicação será revertida do serviço de publicação do AEM. Use Monitorar filas de replicação para abrir a guia do agente Status e identificar a fila afetada.
Quando uma fila mostrar um status vermelho, revise seus itens pendentes para encontrar a causa da falha. Selecione a fila para exibir os itens pendentes e, em seguida, limpe os itens individuais ou toda a fila, se necessário.