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 pelo AEM as a Cloud Service.

Logs

A forma mais básica de depuração de trabalhadores de Asset compute usa instruções console.log(..) tradicionais no código de trabalho. O objeto JavaScript console é um objeto global implícito, portanto não há necessidade de importá-lo ou solicitá-lo, pois ele 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, os logs são impressos no padrão e os 🔗 Logs de Ativação da Ferramenta de Desenvolvimento
    aio app run console.log(...)
  • De aio app test, logs são impressos em /build/test-results/test-worker/test.log
    aio app test console.log(...)
  • Usando o wskdebug, as instruções de logs são impressas no Console de Depuração do Código VS (Exibir > Console de Depuração), padrão
    wskdebug console.log(...)
  • Usando aio app logs, as 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

O módulo wskdebug npm oferece suporte à 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 trabalhador de Asset compute usando wskdebug (Sem áudio)

  1. Verifique se os módulos wskdebug e ngrok npm estão instalados

  2. Verifique se o Docker Desktop e as imagens do 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 aio app deploy e registre o nome da ação implantada (nome entre o [...]). Isto é 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 arquivo launch.json.
    • Senão, toque no ícone de engrenagem à direita da lista suspensa Iniciar programa para abrir o launch.json existente no editor.
  7. Adicione a seguinte configuração de objeto JSON à 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
    }
    
  8. Selecione o novo wskdebug na lista suspensa

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

  10. Abra /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 botão Executar para executar o trabalhador

  12. Navegue de volta 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 o comando npx adobe-asset-compute devtool 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 do Processamento de Perfis, invocando-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. Verifique se as variáveis de ambiente específicas do espaço de trabalho estão definidas 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 do sinalizador --limit:

      $ aio app logs --limit=25

  3. Os logs de ativações mais recentes (até o --limit fornecido) 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