Débogage d’un intervenant d’Asset compute

Les travailleurs d'Asset compute peuvent être débogués de plusieurs manières, des instructions simples du journal de débogage, au code VS joint en tant que débogueur distant, à l'extraction des journaux pour les activations dans Adobe I/O Runtime initiée à partir d'AEM en tant que Cloud Service.

Journalisation

La forme la plus élémentaire de débogage des travailleurs d'Asset compute utilise les instructions traditionnelles console.log(..) dans le code de travail. L'objet JavaScript console est implicite et global. Il n'est donc pas nécessaire de l'importer ni de l'exiger, car il est toujours présent dans tous les contextes.

Les instructions de journal suivantes peuvent faire l’objet d’une révision différente en fonction de la manière dont le travailleur d’Asset compute est exécuté :

  • À partir de aio app run, les journaux s'impriment en sortie standard et les Journaux d'Activation de l'outil de développement <a2/>
    application aio exécuter console.log(..)
  • De aio app test, les journaux s'impriment dans /build/test-results/test-worker/test.log
    aio app test console.log(...)
  • À l'aide de wskdebug, consigne les instructions imprimées dans la console de débogage du code VS (Vue > Console de débogage), hors ligne
    wskdebug console.log(...)
  • À l'aide de aio app logs, les instructions de journal s'impriment dans la sortie du journal des activations.

Débogage à distance via un débogueur joint

AVERTISSEMENT

Utiliser Microsoft Visual Studio Code 1.48.0 ou version ultérieure pour la compatibilité avec wskdebug

Le module npm wskdebug prend en charge l'association d'un débogueur aux travailleurs d'Asset compute, y compris la possibilité de définir des points d'arrêt dans le code VS et de parcourir le code.

Clic publicitaire du débogage d’un intervenant d’Asset compute à l’aide de wskdebug (sans audio)

  1. Assurez-vous que les modules wskdebug et ngrok npm sont installés.

  2. Assurez-vous que Docker Desktop et les images Docker prises en charge sont installés et en cours d'exécution.

  3. Fermez toutes les instances principales en cours d’exécution de l’outil de développement.

  4. Déployez le code le plus récent à l’aide de aio app deploy et enregistrez le nom de l’action déployée (nom compris entre [...]). Elle sera utilisée pour mettre à jour le launch.json à l'étape 8.

    ℹ Info: Deploying package [wkndAemAssetCompute-0.0.1]...
    
  5. Début d'une nouvelle instance de l'outil de développement d'Asset compute à l'aide de la commande npx adobe-asset-compute devtool

  6. Dans le code VS, appuyez sur l’icône Débogage dans le volet de navigation de gauche.

    • Si vous y êtes invité, appuyez sur créer un fichier launch.json > Node.js pour créer un nouveau fichier launch.json.
    • Sinon, appuyez sur l'icône Engrenage à droite de la liste déroulante Programme de lancement pour ouvrir l'élément launch.json existant dans l'éditeur.
  7. Ajoutez la configuration d’objet JSON suivante sur le tableau 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. Sélectionnez le nouveau wskdebug dans la liste déroulante.

  9. Appuyez sur le bouton vert Exécuter à gauche de la liste déroulante wskdebug.

  10. Ouvrez /actions/worker/index.js et appuyez sur à gauche des numéros de ligne pour ajouter des points de rupture 1. Accédez à la fenêtre du navigateur Web de l'outil de développement d'Asset compute ouverte à l'étape 6.

  11. Appuyez sur le bouton Exécuter pour exécuter le programme de travail.

  12. Revenez au code VS, à /actions/worker/index.js et parcourez le code.

  13. Pour quitter l'outil de développement débogage, appuyez sur Ctrl-C dans le terminal qui a exécuté la commande npx adobe-asset-compute devtool à l'étape 6.

Accès aux journaux à partir de Adobe I/O Runtime

L'AEM en tant que Cloud Service mobilise les travailleurs d'Asset compute via les profils de traitement en les appelant directement dans Adobe I/O Runtime. Comme ces invocations n'impliquent pas le développement local, leurs exécutions ne peuvent pas être déboguées à l'aide d'outils locaux tels que Asset compute Development Tool ou wskdebug. A la place, l’interface de ligne de commande Adobe I/O peut être utilisée pour récupérer les journaux du collaborateur exécuté dans un espace de travail particulier de Adobe I/O Runtime.

  1. Assurez-vous que les variables d'environnement propres à l'espace de travail sont définies via AIO_runtime_namespace et AIO_runtime_auth, en fonction de l'espace de travail nécessitant un débogage.

  2. Dans la ligne de commande, exécutez aio app logs

    • Si l'espace de travail génère un trafic important, augmentez le nombre de journaux d'activation à l'aide de l'indicateur --limit :

      $ aio app logs --limit=25

  3. Les journaux d'activations les plus récents (jusqu'aux --limit fournis) seront renvoyés en tant que sortie de la commande pour révision.

    journaux de l’application aio

Résolution des incidents

Sur cette page