Actualizar los fragmentos de contenido para referencias de UUID upgrade-content-fragments-for-UUID-references
Para optimizar la estabilidad de los filtros de GraphQL, puede actualizar el contenido y las referencias de fragmento en los fragmentos de contenido para que utilicen identificadores únicos universales (UUID).
Originalmente, los modelos de fragmentos de contenido proporcionaban los tipos de datos de Referencia de contenido y Referencia de fragmento. Ambas referencias utilizan una ruta que apunta al recurso al que se hace referencia y esta ruta puede quedar obsoleta si se mueve el recurso. Aunque estas referencias son más que suficientes en la mayoría de los casos, los modelos de fragmentos de contenido se han ampliado para proporcionar también referencias basadas en un UUID:
- Referencia de contenido (UUID)
- Referencia de fragmento (UUID).
Estos nuevos tipos de referencia se pueden utilizar tanto en nuevos modelos de fragmentos de contenido como en fragmentos, y para ampliar las instancias existentes.
Para actualizar los fragmentos y modelos de contenido existentes, puede ejecutar el procedimiento documentado aquí.
Qué se actualiza what-is-upgraded
Se realizan las siguientes actualizaciones:
-
Campos de los tipos de datos:
- Las referencias de contenido se han convertido en referencias de contenido (UUID)
- La referencia de fragmento se ha convertido en referencia de fragmento (UUID)
-
Los valores de las referencias basadas en rutas que se mantienen en estos campos se sustituyen por los UUID correspondientes
Qué NO se actualiza what-is-not-upgraded
Las siguientes referencias no se actualizan:
-
Referencias de página: los UUID aún no son compatibles
-
Cualquier referencia no válida; por ejemplo, donde el destino de la ruta del fragmento de contenido o la ruta del recurso no existe
-
Las referencias no válidas no se actualizan, ya que si la ruta del fragmento de contenido o la ruta del recurso no es válida, no hay un UUID correspondiente para asignar. La referencia original permanece intacta.
-
Use una ejecución en seco para detectar referencias no válidas.
note note NOTE Al no ser válidos, no se pueden utilizar, independientemente de la actualización. -
Cuándo no se debe actualizar when-you-should-not-upgrade
No actualizar:
- Cuando cualquiera de los fragmentos de contenido utiliza referencias de página; como, los UUID aún no son compatibles con las referencias de página
Limitaciones de referencias de UUID limitations-of-uuid-references
Actualmente, se aplican las siguientes limitaciones al utilizar referencias basadas en un UUID:
-
Modelos
- Los nuevos modelos de fragmentos de contenido con campos UUID de fragmento de contenido o UUID de referencia de contenido no se pueden crear mediante OpenAPI.
- El campo
id
de los modelos no se ha cambiado para que se base en UUID. Utiliza la ruta descodificada base64 del modelo. Los modelos no se pueden mover, por lo tanto, este valor sigue siendo estable.
-
Recursos
- Al crear un fragmento de contenido mediante OpenAPI, se deben usar los tipos de campo
fragment-reference
ocontent-reference
para especificar referencias a un fragmento o recurso respectivamente, incluso al establecer el valor de un campo de referencia basado en UUID.
- Al crear un fragmento de contenido mediante OpenAPI, se deben usar los tipos de campo
Planificación de actualización upgrade-planning
Antes de ejecutar la actualización hay que realizar algunos pasos de preparación.
Ejecutar una ejecución en seco execute-a-dry-run
Se recomienda que cada vez que actualice el contenido, realice primero una ejecución sin interrupciones. Esto creará archivos de registro con entradas que resaltan cualquier problema potencial:
- Referencias no válidas
- Referencias de página
Ejecute la actualización de contenido en el modo dryRun
para:
- identificar referencias no válidas; enumerándolas en los archivos de registro
A continuación, puede corregir estas referencias antes de ejecutar la actualización de contenido real. - identificar cualquier referencia de página; enumerándolas en los archivos de registro
Cuando se detecten referencias de página, no debería ejecutar la actualización de contenido.
Aplicar la congelación de contenido enforce-a-content-freeze
La ejecución de la actualización de contenido debe planificarse durante un periodo de congelación de contenido.
La duración de la congelación de contenido depende del volumen de fragmentos de contenido que se actualicen. Por lo tanto, la actualización puede variar desde unos minutos hasta unas pocas horas, y también depende de los parámetros utilizados al iniciar la actualización de contenido.
Ejecución de la actualización de contenido running-the-content-upgrade
La actualización de contenido se puede administrar mediante el extremo: /libs/dam/cfm/maintenance.json
Administrator
para tener acceso al extremo.Iniciar una actualización de contenido start-a-content-upgrade
/libs/dam/cfm/maintenance.json
POST
start
uuidUpgradeService
1000
/conf
Especifique una de estas opciones:
- la raíz
/conf
para actualizar todas las configuraciones de AEM - una ruta de configuración de AEM seleccionada. para el cual se ejecuta la actualización de contenido
Por ejemplo:/conf/wknd-shared
solo actualiza el inquilino únicowknd-shared
10
replicate
, noReplicate
replicate
: replica el mismo trabajo en todas las instancias de publicación de AEMnoReplicate
: solo ejecuta el trabajo en instancias de autor de AEM
true
, false
false
: simular la actualización de contenido, sin guardar ningún cambio de contenidotrue
: realice la actualización de contenido y guarde los cambios del contenido
UUID
El ID del trabajo que ejecuta la actualización de contenido.
- Este ID es necesario en cualquier llamada posterior relacionada con esta ejecución.
- Si el valor
mode
está establecido enreplicate
, la ejecución en instancias de publicación de AEM también debe estar en el mismojobId
.
Ejemplo de solicitud de actualización de contenido example-content-upgrade-request
code language-http |
---|
|
code language-http |
---|
|
Obtener el estado de una actualización de contenido get-the-status-of-a-content-upgrade
/libs/dam/cfm/maintenance.json
GET
<UUID>
jobId
que se devolvió desde la llamada para iniciar la actualización de contenido.Contiene el estado detallado de la actualización de contenido:
-
Se actualiza después de cada intervalo (segundos).
-
La ejecución de
uuidUpgradeService
tiene dos fases:- fase 0 para actualizar los modelos de fragmento de contenido
- fase-1 para actualizar fragmentos de contenido
-
En cada fase, las estadísticas se actualizan después de cada intervalo.
-
"jobStatus": "COMPLETADO" marca la actualización como completada correctamente.
-
Otros valores de estado se explican por sí mismos.
Ejemplo de solicitud de estado de actualización de contenido example-content-upgrade-status-request
code language-http |
---|
|
code language-http |
---|
|
Además del estado de una actualización de contenido en ejecución obtenida del extremo HTTP, los registros de AEM proporcionan información detallada del progreso en el nivel de contenido. Por ejemplo:
code language-xml |
---|
|
Además, después del procesamiento de cada segmento (lote) de fragmentos de contenido y modelos, se registra un estado acumulado, que resume el progreso hasta el momento. Por ejemplo:
code language-xml |
---|
|
Anulación de una actualización de contenido abort-a-content-upgrade
- no revierte ningún cambio ya realizado
- podría dejar el contenido en un estado mixto
/libs/dam/cfm/maintenance.json
POST
<UUID>
jobId
que se devolvió desde la llamada para iniciar la actualización de contenido.Contiene el estado detallado de la actualización de contenido:
- El estado que se debe tener en cuenta es "jobStatus": "ABORTADO".
Después de una acción de anulación, los segmentos de datos pendientes no se procesarán. - Si el jobStatus está "COMPLETADO" antes de una anulación, la llamada no tiene ningún efecto.
Ejemplo de anulación de una solicitud de actualización de contenido example-abort-content-upgrade-request
code language-http |
---|
|
code language-http |
---|
|