Déboguer un programme de travail Asset Compute

Les programmes de travail Asset Compute peuvent être débogués de plusieurs façons, depuis des instructions de journal de débogage simples, jusqu’au VS Code joint en tant que débogueur à distance en passant par l’extraction des journaux pour les activations dans Adobe I/O Runtime initiées à partir d’AEM as a Cloud Service.

Journalisation

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

Ces instructions de journal peuvent être examinées différemment selon la manière dont le programme de travail d’Asset Compute est exécuté :

  • Depuis aio app run, les journaux impriment vers Standard Out et les journaux d’activation des outil de développement.
    Exécution de l’application console.log(...) dans AIO.
  • Depuis aio app test, les journaux impriment vers /build/test-results/test-worker/test.log.
    Test de l’application console.log(...) AIO.
  • À l’aide de wskdebug, les instructions de journal impriment vers la console de débogage de VS Code (Affichage > Console de débogage), Standard Out.
    wskdebug console.log(...).
  • À l’aide de aio app logs, les instructions de journal impriment vers la sortie du journal d’activation.

Déboguer à distance via un débogueur joint

WARNING
Utilisez Microsoft Visual Studio Code 1.48.0 ou version ultérieure pour la compatibilité avec wskdebug.

Le module npm wskdebug prend en charge un débogueur joint aux programmes de travail d’Asset Compute, y compris la possibilité de définir des points d’arrêt dans VS Code et de parcourir le code.

Déboguer par clic un programme de travail d’Asset Compute à l’aide de wskdebug (pas d’audio)

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

  2. Assurez-vous que l’application Docker Desktop et les images Docker prises en charge sont installées et en cours d’exécution.

  3. Fermez toutes les instances actives 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 entre [...]). Cela permet de mettre à jour le launch.json à l’étape 8.

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

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

    • Si on vous y invite, appuyez sur Créer un fichier launch.json > Node.js pour créer un nouveau fichier launch.json.
    • Sinon, appuyez sur l’icône d’engrenage à droite du menu déroulant Programme Launch pour ouvrir le launch.json existant dans l’éditeur.
  7. Ajoutez la configuration d’objet JSON suivante au tableau 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. Sélectionnez le nouveau wskdebug dans le menu déroulant.

  9. Appuyez sur le bouton vert Exécuter à gauche du menu déroulant wskdebug.

  10. Ouvrez /actions/worker/index.js et appuyez sur la partie gauche des numéros de ligne pour ajouter les points d’arrêt 1. Accédez à la fenêtre du navigateur web de l’outil de développement Asset Compute ouverte à l’étape 6.

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

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

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

Accéder aux journaux à partir d’Adobe I/O Runtime aio-app-logs

AEM as a Cloud Service exploite les programmes de travail d’Asset Compute via les profils de traitement en les appelant directement dans Adobe I/O Runtime. Comme ces appels n’impliquent pas de développement local, leurs exécutions ne peuvent pas être déboguées à l’aide d’outils locaux tels que l’outil de développement Asset Compute ou wskdebug. Au lieu de cela, l’interface de ligne de commande d’Adobe I/O peut être utilisée pour récupérer les journaux du programme de travail exécuté dans un espace de travail particulier d’Adobe I/O Runtime.

  1. Assurez-vous que les variables d’environnement spécifiques à 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. Depuis la ligne de commande, exécutez aio app logs.

    • Si l’espace de travail génère un trafic important, développez le nombre de journaux d’activation via l’indicateur --limit :
      $ aio app logs --limit=25
  3. Les journaux d’activation les plus récents (jusqu’à la valeur --limit fournie) sont renvoyés en tant que sortie de la commande pour révision.

    Journaux de l’Application AIO.

Résolution des problèmes

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