Depurar um trabalhador do Asset compute

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é logs de ativação no Adobe I/O Runtime iniciados a partir do AEM as a Cloud Service.

Logs

A forma mais básica de depuração de trabalhadores de Asset compute usa o modelo console.log(..) demonstrativos no código do trabalhador. A variável console O objeto JavaScript é um objeto global implícito, portanto, não há necessidade de importá-lo ou solicitá-lo, pois está sempre presente em todos os contextos.

Estas instruções de log estão disponíveis para revisão de forma diferente com base em como o worker do Asset compute é executado:

  • De aio app run, registra a impressão em uma saída padrão e o Ferramentas de desenvolvimento Logs de ativação
    aplicativo aio executar console.log(...)
  • De aio app test, registros imprimir em /build/test-results/test-worker/test.log
    aplicativo aio test console.log(...)
  • Usar wskdebug, as instruções de registro são impressas no Console de depuração do código VS (Exibir > Console de depuração), padrão
    wskdebug console.log(...)
  • Usar aio app logs, instruções de log são impressas na saída do log de ativação

Depuração remota via depurador anexado

WARNING
Use o Microsoft Visual Studio Code 1.48.0 ou posterior para compatibilidade com wskdebug

A variável wskdebug O módulo npm suporta a anexação de um depurador a trabalhadores do Asset compute, incluindo a capacidade de definir pontos de interrupção no Código VS e percorrer o código.

Click-through de depuração de um funcionário do Asset compute usando wskdebug (sem áudio)

  1. Assegurar wskdebug e grok módulos npm instalados

  2. Assegurar Desktop Docker e as imagens Docker de suporte estão instalados e em execução

  3. Feche todas as instâncias ativas em execução da Ferramenta de desenvolvimento.

  4. Implante o código mais recente usando o aio app deploy e registre o nome da ação implantada (nome entre a variável [...]). Isso é usado para atualizar o launch.json na etapa 8.

    code language-none
    ℹ Info: Deploying package [wkndAemAssetCompute-0.0.1]...
    
  5. Inicie uma nova instância da Ferramenta de desenvolvimento do Asset compute usando o comando npx adobe-asset-compute devtool

  6. No Código VS, toque no ícone Depurar na navegação à esquerda

    • Se solicitado, toque em criar um arquivo launch.json > Node.js para criar um novo launch.json arquivo.
    • Senão, toque no Engrenagem ícone à direita do Iniciar programa lista suspensa para abrir o existente launch.json no editor.
  7. Adicione a seguinte configuração de objeto JSON à configurations matriz:

    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
    }
    
  8. Selecione o novo wskdebug na lista suspensa

  9. Toque no verde Executar botão à esquerda de wskdebug lista suspensa

  10. Abertura /actions/worker/index.js e toque à esquerda dos números de linha para adicionar pontos de interrupção 1. Navegue até a janela do navegador da Web da Ferramenta de desenvolvimento do Asset compute aberta na etapa 6

  11. Toque no Executar botão para executar o trabalhador

  12. Volte para o Código VS, para /actions/worker/index.js e passe pelo código

  13. Para sair da Ferramenta de desenvolvimento depurável, toque em Ctrl-C no terminal que executou npx adobe-asset-compute devtool comando na etapa 6

Acessar logs do Adobe I/O Runtime aio-app-logs

O 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 desenvolvimento local, suas execuções não podem ser depuradas usando ferramentas locais, como Asset compute Development Tool ou wskdebug. Em vez disso, a CLI do Adobe I/O pode ser usada para buscar registros do operador executado em um espaço de trabalho específico no Adobe I/O Runtime.

  1. Assegure a variáveis de ambiente específicas do espaço de trabalho são definidos via AIO_runtime_namespace e AIO_runtime_auth, com base no espaço de trabalho que requer depuração.

  2. 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 da --limit sinalizador:

      $ aio app logs --limit=25

  3. O mais recente (até o fornecido --limit) os logs de ativação são retornados como a saída do comando para revisão.

    logs do aplicativo aio

Resolução de problemas

recommendation-more-help
4859a77c-7971-4ac9-8f5c-4260823c6f69