Debugging eines Asset Compute-Sekundärs

Zum Debugging von Asset Compute-Sekundären gibt es verschiedene Möglichkeiten – angefangen bei einfachen Debugging-Protokollanweisungen über das Anhängen von VS Code als Remote-Debugger bis hin zum Abruf von Protokollen für Aktivierungen in Adobe I/O Runtime, die von AEM as a Cloud Service initiiert wurden.

Protokollierung

Die einfachste Form zum Debugging von Asset Compute-Sekundären besteht darin, herkömmliche console.log(..)-Anweisungen im Code des Sekundärs zu verwenden. Das JavaScript-Objekt console ist ein implizites, globales Objekt, sodass es nicht importiert oder angefordert werden muss, da es immer in allen Kontexten vorhanden ist.

Diese Protokollanweisungen können je nach Ausführung des Asset Compute-Sekundärs auf unterschiedliche Weise eingesehen werden:

  • Von aio app run werden Protokolle in die Standardausgabe und die Aktivierungsprotokolle des Entwicklungs-Tools gedruckt.
    aio app run console.log(…)
  • Von aio app test werden Protokolle unter /build/test-results/test-worker/test.log gedruckt.
    aio app test console.log(…)
  • Bei Verwendung von wskdebug werden Protokollanweisungen in die Standardausgabe der VS Code-Debugging-Konsole („Ansicht“ > „Debugging-Konsole“) gedruckt.
    wskdebug console.log(…)
  • Bei Verwendung von aio app logs werden Protokollanweisungen in die Aktivierungsprotokollausgabe gedruckt.

Remote-Debugging über angehängten Debugger

WARNING
Verwenden Sie Microsoft Visual Studio Code 1.48.0 oder höher, um die Kompatibilität mit wskdebug zu erreichen.

Das npm-Modul wskdebug unterstützt das Anhängen eines Debuggers an Asset Compute-Sekundäre, einschließlich der Möglichkeit, Breakpoints in VS Code festzulegen und den Code schrittweise zu durchlaufen.

Clickthrough beim Debugging eines Asset Compute-Sekundärs mit wskdebug (kein Audio)

  1. Stellen Sie sicher, dass die npm-Module wskdebug und ngrok installiert sind.

  2. Stellen Sie sicher, dass Docker Desktop und die unterstützenden Docker-Bilder installiert sind und ausgeführt werden.

  3. Schließen Sie alle aktiven, laufenden Instanzen des Entwicklungs-Tools.

  4. Stellen Sie den neuesten Code mit aio app deploy bereit und notieren Sie sich den Namen der bereitgestellten Aktion (Name zwischen [...]). Damit wird launch.json in Schritt 8 aktualisiert.

    code language-none
    ℹ Info: Deploying package [wkndAemAssetCompute-0.0.1]...
    
  5. Starten Sie eine neue Instanz des Asset Compute-Entwicklungs-Tools mit dem Befehl npx adobe-asset-compute devtool.

  6. Klicken Sie in VS Code im linken Navigationsbereich auf das Debugging-Symbol.

    • Klicken Sie bei entsprechender Aufforderung auf launch.json-Datei erstellen > Node.js, um eine neue launch.json-Datei zu erstellen.
    • Klicken Sie andernfalls auf das Zahnradsymbol rechts neben dem Dropdown-Menü Startprogramm, um die vorhandene launch.json-Datei im Editor zu öffnen.
  7. Fügen Sie die folgende JSON-Objektkonfiguration zum Array configurations hinzu:

    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. Wählen Sie den neuen Eintrag wskdebug aus der Dropdown-Liste aus.

  9. Klicken Sie auf die grüne Schaltfläche Ausführen links vom Dropdown-Menü wskdebug.

  10. Öffnen Sie /actions/worker/index.js und klicken Sie links neben den Zeilennummern, um Breakpoint 1 hinzuzufügen. Navigieren Sie zu dem in Schritt 6 geöffneten Webbrowser-Fenster des Asset Compute-Entwicklungs-Tools.

  11. Klicken Sie auf die Schaltfläche Ausführen, um den Sekundär auszuführen.

  12. Navigieren Sie zurück zu /actions/worker/index.js in VS Code und gehen Sie den Code schrittweise durch.

  13. Um das Debugging-fähige Entwicklungs-Tool zu beenden, klicken Sie auf Ctrl-C in dem Terminal, das in Schritt 6 den Befehl npx adobe-asset-compute devtool ausgeführt hat.

Zugreifen auf Protokolle über Adobe I/O Runtime aio-app-logs

AEM as a Cloud Service nutzt Asset Compute-Sekundäre über Verarbeitungsprofile, indem diese direkt in Adobe I/O Runtime aufgerufen werden. Da diese Aufrufe keine lokale Entwicklung erfordern, können ihre Ausführungen nicht mit lokalen Tools wie dem Asset Compute-Entwicklungs-Tool oder wskdebug debuggt werden. Stattdessen kann die Adobe I/O-CLI verwendet werden, um Protokolle von dem in einem bestimmten Arbeitsbereich in Adobe I/O Runtime ausgeführten Sekundär abzurufen.

  1. Stellen Sie sicher, dass die arbeitsbereichsspezifischen Umgebungsvariablen über AIO_runtime_namespace und AIO_runtime_auth festgelegt sind, und zwar basierend auf dem Arbeitsbereich, für den ein Debugging erforderlich ist.

  2. Führen Sie in der Befehlszeile aio app logs aus.

    • Wenn der Arbeitsbereich einen hohen Traffic aufweist, erweitern Sie die Anzahl der Aktivierungsprotokolle über das Flag --limit:
      $ aio app logs --limit=25
  3. Die neuesten Aktivierungsprotokolle (bis zum angegebenen --limit) werden als Ausgabe des Befehls zur Überprüfung zurückgegeben.

    aio app logs

Fehlerbehebung

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