Os trabalhadores do Asset compute podem ser depurados de várias maneiras, desde declarações de log de depuração simples, ao código VS anexado como um depurador remoto, até registros de ativação no Adobe I/O Runtime iniciados do AEM como um Cloud Service.
A forma mais básica de depurar os trabalhadores do Asset compute usa instruções console.log(..)
tradicionais no código do trabalhador. O console
objeto JavaScript é um objeto implícito e global, de modo que não há necessidade de importá-lo ou exigi-lo, pois está sempre presente em todos os contextos.
Essas instruções de log estão disponíveis para revisão de forma diferente com base em como o trabalhador do Asset compute é executado:
aio app run
, os registros imprimem para o padrão e os Logs de Ativação da Ferramenta de Desenvolvimentoaio app test
, registra a impressão em /build/test-results/test-worker/test.log
wskdebug
, as instruções de log são impressas no Console de Depuração do Código VS (Exibir > Console de Depuração), padrãoaio app logs
, as instruções de log são impressas na saída do log de ativaçãoUse o Microsoft Visual Studio Code 1.48.0 ou superior para compatibilidade com wskdebug
O módulo wskdebug npm suporta a anexação de um depurador aos trabalhadores do Asset compute, incluindo a capacidade de definir pontos de interrupção no Código VS e percorrer o código.
Click-through da depuração de um trabalhador do Asset compute usando wskdebug (Sem áudio)
Verifique se os módulos wskdebug e ngrok npm estão instalados
Verifique se Docker Desktop e as imagens Docker de suporte estão instaladas e em execução
Feche todas as instâncias em execução ativas da Ferramenta de desenvolvimento.
Implante o código mais recente usando aio app deploy
e registre o nome da ação implantada (nome entre [...]
). Isso será usado para atualizar o launch.json
na etapa 8.
ℹ Info: Deploying package [wkndAemAssetCompute-0.0.1]...
Inicie uma nova instância da Ferramenta de Desenvolvimento de Assets compute usando o comando npx adobe-asset-compute devtool
No Código VS, toque no ícone Depurar na navegação à esquerda
launch.json
.launch.json
existente no editor.Adicione a seguinte configuração de objeto JSON à matriz configurations
:
{
"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
}
Selecione o novo wskdebug no menu suspenso
Toque no botão verde Executar à esquerda da lista suspensa wskdebug
Abra /actions/worker/index.js
e toque à esquerda dos números de linha para adicionar pontos de quebra 1. Navegue até a janela do navegador Web da Ferramenta de Desenvolvimento de Asset compute aberta na etapa 6
Toque no botão Executar para executar o trabalhador
Navegue de volta ao Código VS, até /actions/worker/index.js
e percorra o código
Para sair da Ferramenta de Desenvolvimento Depurável, toque em Ctrl-C
no terminal que executou o comando npx adobe-asset-compute devtool
na etapa 6
O AEM as a Cloud Service potencializa os trabalhadores do Asset compute por meio de Perfis de processamento, chamando-os diretamente no Adobe I/O Runtime. Como essas invocações não envolvem o desenvolvimento local, suas execuções não podem ser depuradas usando ferramentas locais, como a Ferramenta de desenvolvimento de Assets compute ou a wskdebug. Em vez disso, a CLI do Adobe I/O pode ser usada para buscar logs do trabalhador executado em um espaço de trabalho específico no Adobe I/O Runtime.
Verifique se as variáveis de ambiente específicas do espaço de trabalho estão definidas por AIO_runtime_namespace
e AIO_runtime_auth
, com base no espaço de trabalho que requer depuração.
Na linha de comando, execute aio app logs
Se o espaço de trabalho estiver com tráfego intenso, expanda o número de logs de ativação por meio do sinalizador --limit
:
$ aio app logs --limit=25
Os registros de ativações mais recentes (até o --limit
fornecido) serão retornados como a saída do comando para revisão.