Gestión de problemas de temporización al crear carpetas e importar recursos con la API de autor de AEM Assets

En este artículo se describe cómo solucionar errores intermitentes al importar recursos a carpetas recién creadas mediante la API de autor de Assets de Adobe Experience Manager (AEM) mediante la implementación de la lógica de reintentos para garantizar que las carpetas estén totalmente disponibles antes de las operaciones de importación de recursos.

Descripción description

Entornos

Adobe Experience Manager (AEM), incluidos AEM as a Cloud Service y otros modelos de implementación que utilizan la API de autor de Assets y extremos basados en OpenAPI.

Síntomas

Al automatizar las importaciones de recursos, una aplicación externa:

  • Comprueba si existe una carpeta de destino mediante la API Folder Exists (HEAD).
  • Crea la carpeta si esta no existe mediante la API Crear carpeta.
  • Recibe una respuesta de creación de carpeta correcta y una llamada posterior a la API Folder Exists (HEAD) devuelve HTTP 200.
  • Llama inmediatamente a la API Import de Assets (/import/fromUrl) para cargar un recurso.
  • La solicitud de importación a veces falla con HTTP 400 o HTTP 403 errores, como No se puede resolver la carpeta u otros errores relacionados con la escritura.
  • En algunos casos, la API de Crear carpeta devuelve HTTP 200, pero la carga de respuesta indica un error (por ejemplo: matriz de éxitos vacía y mensaje de error).

Ejemplos de solicitudes y respuestas de API

Create Folder API response (failure despite HTTP 200):{"operation": "adobe.folders.createFolders","status": 200,"description": "Created folders","data": { "values": { "successes": [ ]  } },"errors": [ {"type": "https://api.adobeaemcloud.com/adobe/meta/errors/internal_server_error","title": "Internal Server Error","detail": "Failed to create folder /content/dam/folder1 due to an exception: Unable to commit changes to session."}] ,"warnings": [ ] }

Causa

AEM muestra una eventual coherencia tras la creación de la carpeta, lo que provoca un breve retraso antes de que la carpeta esté totalmente disponible para las operaciones con los recursos. Una respuesta correcta de Folder Exists (HEAD) no siempre garantiza la preparación inmediata para las importaciones de recursos.

Resolución resolution

Siga los pasos a continuación para resolver el problema:

  1. Después de crear una carpeta, inspeccione siempre la carga útil de respuesta de la API de Crear carpeta:

    • Confirme que la matriz successes contiene la ruta de carpeta esperada.

    • Compruebe si hay errores en la respuesta, aunque el estado HTTP sea 200.

  2. No llame inmediatamente al API Import de Assets después de crear la carpeta. En su lugar, implemente un mecanismo de reintentos limitado:

    • Espere un breve intervalo (por ejemplo: 1 segundo) antes de reintentar la comprobación de existencia de la carpeta.

    • Vuelva a intentar la comprobación un número limitado de veces (por ejemplo: 2-3 intentos con retrasos crecientes como 1, 2, 4).

    • Solo se debe llamar a la API Import de Assets después de que la comprobación de la existencia de la carpeta devuelva HTTP 200 de forma consistente, y se confirme que la carpeta está disponible (y que la respuesta de creación de la carpeta se ha realizado correctamente).

  3. Si la operación de importación sigue fallando con la resolución de carpetas o errores transitorios de escritura/acceso, continúe reintentando durante un número limitado de intentos antes de tratarla como un error final.

  4. Si se producen errores persistentes de 403, valide los permisos y la configuración de acceso a la API para la ruta de destino.

Comprobación: Confirme que la operación de importación de recursos se realiza correctamente sin errores de resolución de carpetas después de seguir los pasos anteriores.

recommendation-more-help
experience-cloud-kcs-help-kbarticles