Eseguire il debug di un processo di lavoro Asset compute

I processi di lavoro Asset Compute possono essere sottoposti a debug in diversi modi, dalle semplici istruzioni di registro di debug, al codice VS allegato come debugger remoto, fino all’estrazione dei registri per le attivazioni in Adobe I/O Runtime avviate da AEM as a Cloud Service.

Registrazione

La forma più semplice di debug dei processi di lavoro Asset Compute utilizza le istruzioni console.log(..) tradizionali nel codice del processo di lavoro. L'oggetto JavaScript console è un oggetto globale implicito, pertanto non è necessario importarlo o richiederlo, in quanto è sempre presente in tutti i contesti.

Queste istruzioni di registro sono disponibili per la revisione in modo diverso in base alla modalità di esecuzione del lavoratore Asset compute:

  • Da aio app run, i registri vengono stampati in uscita standard e i registri di attivazione dello strumento di sviluppo
    esecuzione app console.log(...)
  • Da aio app test, i registri vengono stampati in /build/test-results/test-worker/test.log
    aio app test console.log(...)
  • Utilizzando wskdebug, le istruzioni di registro vengono stampate nella console di debug del codice VS (Visualizza > Console di debug), in uscita standard
    wskdebug console.log(...)
  • Utilizzando aio app logs, le istruzioni di registro vengono stampate nell'output del registro di attivazione

Debugging remoto tramite il debugger collegato

WARNING
Utilizzare Microsoft Visual Studio Code 1.48.0 o versione successiva per la compatibilità con wskdebug

Il modulo wskdebug npm supporta l'associazione di un debugger ai processi di lavoro Asset Compute, inclusa la possibilità di impostare punti di interruzione nel codice VS e di analizzare il codice.

Click-through del debug di un processo di lavoro Asset compute tramite wskdebug (nessun audio)

  1. Assicurarsi che siano installati wskdebug e ngrok moduli npm

  2. Verificare che Docker Desktop e le immagini Docker di supporto siano installati e in esecuzione

  3. Chiude tutte le istanze in esecuzione attive dello strumento di sviluppo.

  4. Distribuire il codice più recente utilizzando aio app deploy e registrare il nome dell'azione distribuita (nome compreso tra [...]). Utilizzato per aggiornare launch.json nel passaggio 8.

    code language-none
    ℹ Info: Deploying package [wkndAemAssetCompute-0.0.1]...
    
  5. Avvia una nuova istanza di Asset Compute Development Tool con il comando npx adobe-asset-compute devtool

  6. In Codice VS, tocca l’icona Debug nella navigazione a sinistra

    • Se richiesto, toccare crea un file launch.json > Node.js per creare un nuovo file launch.json.
    • Altrimenti, tocca l'icona Ingranaggio a destra del menu a discesa Avvia programma per aprire launch.json esistente nell'editor.
  7. Aggiungi la seguente configurazione di oggetto JSON all'array 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. Seleziona il nuovo wskdebug dal menu a discesa

  9. Tocca il pulsante verde Esegui a sinistra del menu a discesa wskdebug

  10. Apri /actions/worker/index.js e tocca a sinistra dei numeri di riga per aggiungere i punti di interruzione 1. Passa alla finestra del browser Web dello strumento di sviluppo Asset compute aperta nel passaggio 6

  11. Tocca il pulsante Esegui per eseguire il processo di lavoro

  12. Torna a Codice VS, a /actions/worker/index.js e scorri il codice

  13. Per uscire dallo strumento di sviluppo con debug, toccare Ctrl-C nel terminale che ha eseguito il comando npx adobe-asset-compute devtool nel passaggio 6

Accesso ai registri da Adobe I/O Runtime aio-app-logs

AEM as a Cloud Service sfrutta i processi di lavoro Asset Compute tramite Profili elaborazione richiamandoli direttamente in Adobe I/O Runtime. Poiché queste chiamate non coinvolgono lo sviluppo locale, non è possibile eseguire il debug delle relative esecuzioni utilizzando strumenti locali come Asset Compute Development Tool o wskdebug. È invece possibile utilizzare l’interfaccia della riga di comando Adobe I/O per recuperare i registri dal processo di lavoro eseguito in una particolare area di lavoro in Adobe I/O Runtime.

  1. Verificare che le variabili di ambiente specifiche dell'area di lavoro siano impostate tramite AIO_runtime_namespace e AIO_runtime_auth, in base all'area di lavoro che richiede il debug.

  2. Dalla riga di comando, eseguire aio app logs

    • Se il traffico dell'area di lavoro è intenso, espandere il numero di registri di attivazione tramite il flag --limit:

      $ aio app logs --limit=25

  3. I registri di attivazioni più recenti (fino a --limit) forniti vengono restituiti come output del comando per la revisione.

    registri app aio

Risoluzione dei problemi

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