Replica replication
Adobe Experience Manager as a Cloud Service utilizza la funzionalità Distribuzione contenuto Sling per spostare il contenuto da replicare in un servizio pipeline eseguito su Adobe Developer che si trova al di fuori del runtime AEM.
Metodi di pubblicazione dei contenuti methods-of-publishing-content
Si sconsiglia di creare un codice personalizzato per la pubblicazione in blocco.
Se devi personalizzare per qualsiasi motivo, puoi attivare un flusso di lavoro con questo passaggio utilizzando API di flusso di lavoro esistenti.
È sempre buona prassi pubblicare solo i contenuti che devono essere pubblicati. E fai attenzione a non pubblicare un gran numero di contenuti, se non è necessario. Tuttavia, non vi sono limiti alla quantità di contenuto che è possibile inviare tramite flussi di lavoro con il passaggio Flusso di lavoro di attivazione struttura.
Annullamento/pubblicazione rapida - Annullamento/pubblicazione pianificata publish-unpublish
Questa funzione ti consente di pubblicare immediatamente le pagine selezionate, senza le opzioni aggiuntive possibili con l’approccio Gestisci pubblicazione.
Per ulteriori informazioni, consulta Gestisci pubblicazione.
Tempi di attivazione e disattivazione - Configurazione dell’attivatore on-and-off-times-trigger-configuration
Sono disponibili possibilità aggiuntive di Ora di attivazione e Ora di disattivazione dalla scheda Base delle Proprietà pagina.
Per realizzare la replica automatica per questa funzionalità, abilitare Replica automatica nella configurazione OSGi Configurazione attivazione/disattivazione:
Gestisci pubblicazione manage-publication
Gestisci pubblicazione offre più opzioni rispetto alla Pubblicazione rapida e consente di includere pagine figlie, personalizzare i riferimenti, avviare tutti i flussi di lavoro applicabili e pubblicare successivamente.
L’inclusione degli elementi figlio di una cartella per l’opzione “Pubblica più tardi” richiama il flusso di lavoro Pubblica struttura contenuto, descritto in Flussi di lavoro di replica della struttura.
Puoi trovare informazioni più dettagliate su Gestisci pubblicazione nella sezione Documentazione di base sulla pubblicazione.
Per replicare in blocco gerarchie di contenuti profondi, utilizza un approccio basato su flussi di lavoro. Consulta Flussi di lavoro di replica ad albero per il passaggio del flusso di lavoro di attivazione ad albero consigliato, i parametri di configurazione e le linee guida per il monitoraggio. Anche il flusso di lavoro obsoleto Pubblica albero dei contenuti è documentato qui per riferimento.
API di replica replication-api
Puoi pubblicare il contenuto utilizzando l’API di replica disponibile in AEM as a Cloud Service.
Per ulteriori informazioni, consulta la documentazione dell’API.
Utilizzo di base dell’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);
Agenti di replica
AEM as a Cloud Service fornisce due agenti di replica predefiniti che indirizzano il contenuto dal livello di authoring a quello di destinazione tramite Sling Content Distribution:
- publish — replica il contenuto attivato nel livello di pubblicazione live. Questo agente è abilitato per impostazione predefinita e viene utilizzato quando esegui la pubblicazione dall’interfaccia utente, dai flussi di lavoro o dall’API di replica, a meno che non venga specificato diversamente.
- anteprima — replica il contenuto nel livello di anteprima in modo che gli autori possano esaminare le modifiche prima che vengano pubblicate. Per impostazione predefinita, questo agente non è abilitato.
È possibile visualizzare e monitorare entrambi gli agenti da Strumenti > Distribuzione > Distribuzione:
Selezionando una scheda agente si aprono lo stato, i registri e i dettagli della coda.
Replica con agenti specifici
Quando esegui la replica con l’API come mostrato sopra, vengono utilizzati solo gli agenti abilitati per impostazione predefinita, in AEM as a Cloud Service, ovvero solo pubblica. Per eseguire la replica esclusivamente nel livello di anteprima, passare un AgentFilter che seleziona l’agente di anteprima:
Vedi l’esempio seguente:
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 si esegue la replica senza un AgentFilter, viene utilizzato solo publish e il livello di anteprima non viene interessato.
Il ReplicationStatus complessivo di una risorsa viene aggiornato solo quando la replica include almeno un agente abilitato per impostazione predefinita. Nell’esempio precedente, è stata utilizzata solo la anteprima, quindi ReplicationStatus.isActivated rimane false. Utilizzare getStatusForAgent() per controllare lo stato di un agente specifico, ad esempio getStatusForAgent("preview") dopo una replica di sola anteprima o getStatusForAgent("publish") per il livello di pubblicazione live.
Metodi di invalidazione dei contenuti invalidating-content
Puoi annullare direttamente la validità del contenuto utilizzando l’Invalidazione dei contenuti Sling (SCD) dall’authoring (metodo preferito) o utilizzando l’API di replica per richiamare l’agente di svuotamento del Dispatcher di pubblicazione. Per ulteriori dettagli, vedere la pagina Memorizzazione in cache.
Limiti capacità API di replica
Replica meno di 100 percorsi alla volta; il limite massimo consentito è 500. Al di sopra del limite, viene generato un ReplicationException.
Se la logica dell’applicazione non richiede la replica atomica, questo limite può essere superato impostando ReplicationOptions.setUseAtomicCalls su false, che accetta qualsiasi numero di percorsi, ma crea internamente dei bucket al fine di rimanere al di sotto di questo limite.
La dimensione del contenuto trasmesso per chiamata di replica non deve superare i 10 MB. Questa regola include i nodi e le proprietà, ma non eventuali dati binari (i pacchetti di flusso di lavoro e i pacchetti di contenuto sono considerati dati binari).
Code di replica replication-queues
Ogni agente di replica visualizza due code di replica. AEM as a Cloud Service non mostra più una coda separata per ciascun pod di pubblicazione: il livello di pubblicazione viene scalato automaticamente, pertanto le code per pod hanno aumentato la complessità senza vantaggi pratici. Lo stato della coda viene consolidato come segue:
- persistente — La modifica è memorizzata in modo permanente sul livello di pubblicazione. Dopo che un elemento cancella questa coda, il contenuto viene mantenuto; le istanze di pubblicazione raggiungono uno stato coerente nel tempo.
- pubblicazione completa: la modifica è attiva in tutti i pod di pubblicazione e la cache di Dispatcher viene cancellata per i percorsi interessati. Dopo che un elemento cancella questa coda, i visitatori ricevono il contenuto aggiornato.
Monitorare le code di replica monitor-replication-queues
-
Dalla Navigazione globale di AEM, passa a Strumenti > Distribuzione.
-
Seleziona Distribuzione, quindi apri la scheda dell’agente pubblicazione o anteprima.
-
Nella scheda Stato verificare che ogni coda presenti uno stato integro. Rivedi Elementi in sospeso per il lavoro in attesa di elaborazione e Ultimo elemento elaborato per l’attività recente.
-
Selezionare Verifica connessione per verificare che l’agente possa raggiungere il servizio di distribuzione.
-
Selezionare la scheda Registri per visualizzare la cronologia delle pubblicazioni di contenuto.
Risoluzione di problemi troubleshooting
Se non è possibile pubblicare il contenuto, la pubblicazione viene ripristinata dal servizio di pubblicazione di AEM. Utilizzare Monitora le code di replica per aprire la scheda dell’agente Stato e identificare la coda interessata.
Quando una coda mostra uno stato rosso, esaminare gli elementi in sospeso per individuare la causa dell’errore. Selezionare la coda per visualizzare gli elementi in sospeso, quindi, se necessario, cancellare singoli elementi o l’intera coda.