Depuración de un trabajador de Asset compute
Los trabajadores de assets computes se pueden depurar de varias formas, desde simples sentencias de registro de depuración, pasando por el código VS adjunto como depurador remoto, hasta la extracción de registros para activaciones en Adobe I/O Runtime iniciadas desde AEM as a Cloud Service.
Registro
La forma más básica de depurar los trabajadores de Asset compute usa las instrucciones console.log(..)
tradicionales en el código de trabajo. El objeto JavaScript console
es un objeto global implícito, por lo que no es necesario importarlo ni requerirlo, ya que siempre está presente en todos los contextos.
Estas instrucciones de registro están disponibles para revisarse de forma diferente en función de cómo se ejecute el trabajador de Asset compute:
- Desde
aio app run
, los registros se imprimen hasta la salida estándar y los registros de activación de la herramienta de desarrollo
- Desde
aio app test
, los registros se imprimen a/build/test-results/test-worker/test.log
- Con
wskdebug
, las instrucciones de registro se imprimen en la consola de depuración de código de VS (Ver > Consola de depuración), salida estándar
- Con
aio app logs
, las instrucciones de registro se imprimen en la salida del registro de activación
Depuración remota mediante el depurador adjunto
El módulo wskdebug npm, admite la asociación de un depurador a los trabajadores de Asset compute, incluida la capacidad de establecer puntos de interrupción en código VS y recorrer paso a paso el código.
Clic en la depuración de un trabajador de Asset compute mediante wskdebug (sin audio)
-
Asegúrese de que los módulos wskdebug y ngrok npm estén instalados
-
Asegúrese de que Docker Desktop y las imágenes de Docker compatibles estén instalados y en ejecución
-
Cierre todas las instancias activas en ejecución de la herramienta de desarrollo.
-
Implemente el código más reciente utilizando
aio app deploy
y registre el nombre de la acción implementada (nombre entre[...]
). Se usa para actualizarlaunch.json
en el paso 8.code language-none ℹ Info: Deploying package [wkndAemAssetCompute-0.0.1]...
-
Iniciar una nueva instancia de la herramienta de desarrollo de Assets computes con el comando
npx adobe-asset-compute devtool
-
En Código VS, pulse el icono Depurar en el panel de navegación izquierdo
- Si se le solicita, pulse crear un archivo launch.json > Node.js para crear un nuevo archivo
launch.json
. - De lo contrario, pulsa el icono Engranaje a la derecha de la lista desplegable Programa de lanzamiento para abrir el(la)
launch.json
existente(a) en el editor.
- Si se le solicita, pulse crear un archivo launch.json > Node.js para crear un nuevo archivo
-
Agregue la siguiente configuración de objeto JSON a la matriz
configurations
:code language-json { "type": "pwa-node", "request": "launch", "name": "wskdebug", "attachSimplePort": 0, "runtimeExecutable": "wskdebug", "args": [ "wkndAemAssetCompute-0.0.1/__secured_worker", // Version must match your Asset Compute worker's version "${workspaceFolder}/actions/worker/index.js", // Points to your worker "-l", "--ngrok" ], "localRoot": "${workspaceFolder}", "remoteRoot": "/code", "outputCapture": "std", "timeout": 30000 }
-
Seleccione el nuevo wskdebug en la lista desplegable
-
Pulse el botón verde Ejecutar a la izquierda del menú desplegable wskdebug
-
Abra
/actions/worker/index.js
y pulse a la izquierda de los números de línea para agregar los puntos de interrupción 1. Vaya a la ventana del explorador web de la herramienta de desarrollo de Assets computes que se abrió en el paso 6 -
Pulse el botón Ejecutar para ejecutar el trabajador
-
Vuelva al código VS, a
/actions/worker/index.js
y desplácese por el código -
Para salir de la herramienta de desarrollo de depuración, pulse
Ctrl-C
en el terminal que ejecutó el comandonpx adobe-asset-compute devtool
en el paso 6
Acceder a registros desde Adobe I/O Runtime aio-app-logs
AEM as a Cloud Service aprovecha los Assets computes a través de los perfiles de procesamiento invocándolos directamente en Adobe I/O Runtime. Debido a que estas invocaciones no implican desarrollo local, sus ejecuciones no se pueden depurar con herramientas locales como Herramienta de desarrollo de Assets computes o wskdebug. En su lugar, la CLI de Adobe I/O se puede utilizar para recuperar registros del trabajador ejecutado en un espacio de trabajo determinado en Adobe I/O Runtime.
-
Asegúrese de que las variables de entorno específicas del espacio de trabajo se establecen a través de
AIO_runtime_namespace
yAIO_runtime_auth
, en función del espacio de trabajo que requiere depuración. -
Desde la línea de comandos, ejecute
aio app logs
-
Si el área de trabajo está sufriendo mucho tráfico, expanda el número de registros de activación a través del indicador
--limit
:$ aio app logs --limit=25
-
-
Los registros de activaciones más recientes (hasta el
--limit
proporcionado) se devuelven como salida del comando para su revisión.
Resolución de problemas
- El depurador no se asocia
- Los puntos de interrupción no se pausan
- El depurador de código VS no está adjunto
- Se adjuntó el depurador de código VS después de iniciar la ejecución del trabajador
- Se agota el tiempo de espera del trabajador durante depuración
- No se puede finalizar el proceso del depurador