Aggiornamento dei frammenti di contenuto per riferimenti UUID upgrade-content-fragments-for-UUID-references
Per ottimizzare la stabilità dei filtri GraphQL, puoi aggiornare i riferimenti a contenuto e frammento nei Frammenti di contenuto in modo che utilizzino identificatori univoci universali (UUID).
In origine i modelli per frammenti di contenuto fornivano i tipi di dati Riferimento contenuto e Riferimento frammento. Entrambi questi riferimenti utilizzano un percorso per puntare alla risorsa di riferimento e possono diventare obsoleti se la risorsa viene spostata. Sebbene tali riferimenti siano più che sufficienti nella maggior parte degli scenari, i modelli per frammenti di contenuto sono stati estesi per fornire anche riferimenti basati su un UUID:
- Riferimento contenuto (UUID)
- Riferimento frammento (UUID).
Questi nuovi tipi di riferimento possono essere utilizzati sia nei nuovi modelli e frammenti di frammento di contenuto che per estendere le istanze esistenti.
Per aggiornare frammenti di contenuto e modelli esistenti, puoi eseguire la procedura documentata qui.
Cosa viene aggiornato what-is-upgraded
Vengono apportati i seguenti aggiornamenti:
-
Campi dei tipi di dati:
- Il riferimento contenuto è convertito in Riferimento contenuto (UUID)
- I riferimenti frammento sono convertiti in riferimenti frammento (UUID)
-
I valori dei riferimenti basati sul percorso contenuti in questi campi vengono sostituiti dai corrispondenti UUID
Cosa NON è aggiornato what-is-not-upgraded
I seguenti riferimenti non vengono aggiornati:
-
Riferimenti pagina - UUID non ancora supportati
-
Eventuali riferimenti non validi; ad esempio, dove la destinazione del percorso del frammento di contenuto o del percorso della risorsa non esiste
-
I riferimenti non validi non vengono aggiornati, come se il percorso del frammento di contenuto, o percorso della risorsa, non fosse valido in assenza di un UUID corrispondente da assegnare. Il riferimento originale rimane invariato.
-
Utilizza una prova per rilevare eventuali riferimenti non validi.
note note NOTE Non essendo valide, non sono utilizzabili, indipendentemente dall’aggiornamento. -
Quando non effettuare l’aggiornamento when-you-should-not-upgrade
Non aggiornare:
- Quando uno dei frammenti di contenuto utilizza i riferimenti di pagina; poiché gli UUID non sono ancora supportati per i riferimenti di pagina
Limitazioni dei riferimenti UUID limitations-of-uuid-references
Attualmente, quando si utilizzano riferimenti basati su un UUID si applicano le seguenti limitazioni:
-
Modelli
- Non è possibile creare nuovi modelli per frammenti di contenuto con campi UUID frammento di contenuto o UUID riferimento contenuto tramite OpenAPI.
- Il campo
idper i modelli non è stato modificato per essere basato su UUID. Utilizza il percorso decodificato base64 del modello. I modelli non possono essere spostati, pertanto questo valore è ancora stabile.
-
Risorse
- Durante la creazione di un frammento di contenuto tramite OpenAPI, è necessario utilizzare i tipi di campo
fragment-referenceocontent-referenceper specificare i riferimenti rispettivamente a un frammento o a una risorsa, anche quando si imposta il valore di un campo di riferimento basato su UUID.
- Durante la creazione di un frammento di contenuto tramite OpenAPI, è necessario utilizzare i tipi di campo
Pianificazione dell'aggiornamento upgrade-planning
Sono disponibili alcuni passaggi di preparazione prima di eseguire l’aggiornamento.
Esecuzione di un'esecuzione di prova execute-a-dry-run
Si consiglia di eseguire un'esecuzione di prova ogni volta che si aggiorna il contenuto. Verranno creati file di registro con voci che evidenziano eventuali problemi:
- Riferimenti non validi
- Riferimenti pagina
Eseguire l'aggiornamento del contenuto in modalità dryRun per:
- identificare eventuali riferimenti non validi, elencandoli nei file di registro
Puoi quindi correggere questi riferimenti prima di eseguire l’aggiornamento effettivo del contenuto. - identificare eventuali riferimenti di pagina, inserendoli nei file di registro
Quando vengono rilevati riferimenti di pagina, non deve eseguire l'aggiornamento del contenuto.
Imporre un blocco dei contenuti enforce-a-content-freeze
L’esecuzione dell’aggiornamento del contenuto deve essere pianificata durante un periodo di blocco dei contenuti.
La durata del blocco dei contenuti dipende dal volume di Frammenti di contenuto da aggiornare. Di conseguenza, l’aggiornamento può variare da pochi minuti a poche ore e dipende anche dai parametri utilizzati all’avvio dell’aggiornamento del contenuto.
Esecuzione dell’aggiornamento del contenuto running-the-content-upgrade
L'aggiornamento del contenuto può essere gestito utilizzando l'endpoint: /libs/dam/cfm/maintenance.json
Administrator per accedere all'endpoint.Avviare un aggiornamento del contenuto start-a-content-upgrade
/libs/dam/cfm/maintenance.jsonPOSTstartuuidUpgradeService1000/confSpecificare:
- la radice
/confper aggiornare tutte le configurazioni di AEM - un percorso di configurazione di AEM selezionato. per cui viene eseguito l'aggiornamento del contenuto
Ad esempio:/conf/wknd-sharedaggiorna solo il singolo tenantwknd-shared
10replicate, noReplicatereplicate: replica lo stesso processo in tutte le istanze di AEM PublishnoReplicate: esegue il processo solo sulle istanze di AEM Author
true, falsefalse: simulare l'aggiornamento del contenuto senza salvare le modifiche apportatetrue: eseguire l'aggiornamento del contenuto e salvare le modifiche apportate al contenuto
UUIDID del processo che esegue l’aggiornamento del contenuto.
- Questo ID è richiesto in tutte le chiamate successive relative a questa esecuzione.
- Se il valore
modeè impostato sureplicate, anche l'esecuzione sulle istanze AEM Publish deve trovarsi nello stessojobId.
Esempio di richiesta di aggiornamento del contenuto example-content-upgrade-request
| code language-http |
|---|
|
| code language-http |
|---|
|
Ottenere lo stato di un aggiornamento del contenuto get-the-status-of-a-content-upgrade
/libs/dam/cfm/maintenance.jsonGET<UUID>jobId restituito dalla chiamata per avviare l'aggiornamento del contenuto.Contiene lo stato dettagliato dell’aggiornamento del contenuto:
-
Aggiornato dopo ogni intervallo (secondi).
-
L'esecuzione di
uuidUpgradeServiceprevede due fasi:- fase 0 per aggiornare i modelli per frammenti di contenuto
- fase 1: aggiornamento dei frammenti di contenuto
-
In ogni fase, le statistiche vengono aggiornate dopo ogni intervallo.
-
"jobStatus": "COMPLETED" contrassegna l'aggiornamento come completato correttamente.
-
Altri valori di stato sono auto-esplicativi.
Esempio di richiesta di stato dell’aggiornamento del contenuto example-content-upgrade-status-request
| code language-http |
|---|
|
| code language-http |
|---|
|
Oltre allo stato di un aggiornamento del contenuto in esecuzione ottenuto dall’endpoint HTTP, i registri di AEM forniscono informazioni dettagliate sull’avanzamento a livello di contenuto. Ad esempio:
| code language-xml |
|---|
|
Inoltre, dopo l’elaborazione di ciascun segmento (batch) di Frammenti di contenuto e Modelli, viene registrato uno stato accumulato che riepiloga l’avanzamento finora. Ad esempio:
| code language-xml |
|---|
|
Interrompere un aggiornamento del contenuto abort-a-content-upgrade
- non ripristina le modifiche già apportate
- potrebbe lasciare il contenuto in uno stato misto
/libs/dam/cfm/maintenance.jsonPOST<UUID>jobId restituito dalla chiamata per avviare l'aggiornamento del contenuto.Contiene lo stato dettagliato dell’aggiornamento del contenuto:
- Lo stato da notare è "jobStatus": "ABORTED".
Dopo un'azione di interruzione, i segmenti di dati in sospeso non verranno elaborati. - Se jobStatus è "COMPLETED" prima di un'interruzione, la chiamata non ha alcun effetto.
Esempio di richiesta di interruzione di un aggiornamento del contenuto example-abort-content-upgrade-request
| code language-http |
|---|
|
| code language-http |
|---|
|