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 AEM as a Cloud Service.
A forma mais básica de depurar os trabalhadores do Asset compute usa o modo tradicional console.log(..)
no código do trabalhador. O console
O objeto JavaScript é um objeto implícito e global, de modo que não é necessário 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 logs são impressos para o padrão e a variável Ferramentas de desenvolvimento Logs de ativaçãoaio app test
, logs imprimem para /build/test-results/test-worker/test.log
wskdebug
, registra instruções impressas no Console de Depuração do Código VS (Exibir > Console de Depuração), padrãoaio app logs
, 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 wskdebug O módulo 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)
Garantir Docker Desktop e as imagens Docker de suporte estão instalados 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 é usado para atualizar a variável 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
arquivo.launch.json
no editor.Adicione a seguinte configuração de objeto JSON ao configurations
array:
{
"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 na lista suspensa
Toque em verde Executar à esquerda de wskdebug lista suspensa
Abrir /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 Executar botão para executar o trabalhador
Navegue de volta para o Código VS, para /actions/worker/index.js
e percorra o código
Para sair da Ferramenta de desenvolvimento que pode ser depurada, toque em Ctrl-C
no terminal executado npx adobe-asset-compute devtool
comando na etapa 6
AEM as a Cloud Service aproveita 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 a variáveis de ambiente específicas do workspace são definidos via 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 --limit
sinalizador:
$ aio app logs --limit=25
O mais recente (até o --limit
) os logs de ativações são retornados como a saída do comando para revisão.