Debug di un processo di lavoro Asset compute

Il debug dei processi di lavoro di Asset compute può essere eseguito in diversi modi, dalle semplici istruzioni di log di debug, al codice VS allegato come debugger remoto, all’estrazione dei registri per le attivazioni in Adobe I/O Runtime iniziate da AEM come Cloud Service.

Registrazione

La forma più semplice di debugging dei processi di lavoro Asset compute utilizza 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 processo di lavoro Asset compute:

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

Debug remoto tramite debugger collegato

AVVERTENZA

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

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

Click-through di debugging di un processo di lavoro Asset compute utilizzando wskdebug (nessun audio)

  1. Assicurati che i moduli wskdebug e ngrok npm siano installati

  2. Assicurati che Docker Desktop e le immagini Docker di supporto siano installate ed in esecuzione

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

  4. Distribuisci il codice più recente utilizzando aio app deploy e registra il nome dell'azione distribuita (nome compreso tra [...]). Verrà utilizzato per aggiornare il launch.json nel passaggio 8.

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

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

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

  9. Toccare 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 punti di interruzione 1. Passare alla finestra del browser Web dello strumento di sviluppo Asset compute aperta nel passaggio 6

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

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

  13. Per uscire dallo strumento di sviluppo debug, tocca Ctrl-C nel terminale che eseguiva il comando npx adobe-asset-compute devtool al punto 6

Accesso ai registri da Adobe I/O Runtime

AEM as a Cloud Service sfrutta i lavoratori Asset compute tramite Profili di elaborazione richiamandoli direttamente in Adobe I/O Runtime. Poiché queste chiamate non richiedono lo sviluppo locale, non è possibile eseguire il debug delle loro esecuzioni utilizzando strumenti locali come Asset compute Development Tool o wskdebug. È invece possibile utilizzare Adobe I/O CLI per recuperare i registri dal processo di lavoro eseguito in una particolare area di lavoro in Adobe I/O Runtime.

  1. Assicurati che le variabili di ambiente specifiche per l'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, esegui aio app logs

    • Se l'area di lavoro sta attraversando un traffico pesante, espandi il numero di registri di attivazione tramite il flag --limit:

      $ aio app logs --limit=25

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

    registri app aio

Risoluzione dei problemi

In questa pagina