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.
- Von
aio app test
werden Protokolle unter/build/test-results/test-worker/test.log
gedruckt.
- Bei Verwendung von
wskdebug
werden Protokollanweisungen in die Standardausgabe der VS Code-Debugging-Konsole („Ansicht“ > „Debugging-Konsole“) gedruckt.
- Bei Verwendung von
aio app logs
werden Protokollanweisungen in die Aktivierungsprotokollausgabe gedruckt.
Remote-Debugging über angehängten Debugger
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)
-
Stellen Sie sicher, dass die npm-Module wskdebug und ngrok installiert sind.
-
Stellen Sie sicher, dass Docker Desktop und die unterstützenden Docker-Bilder installiert sind und ausgeführt werden.
-
Schließen Sie alle aktiven, laufenden Instanzen des Entwicklungs-Tools.
-
Stellen Sie den neuesten Code mit
aio app deploy
bereit und notieren Sie sich den Namen der bereitgestellten Aktion (Name zwischen[...]
). Damit wirdlaunch.json
in Schritt 8 aktualisiert.code language-none ℹ Info: Deploying package [wkndAemAssetCompute-0.0.1]...
-
Starten Sie eine neue Instanz des Asset Compute-Entwicklungs-Tools mit dem Befehl
npx adobe-asset-compute devtool
. -
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.
- Klicken Sie bei entsprechender Aufforderung auf launch.json-Datei erstellen > Node.js, um eine neue
-
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 }
-
Wählen Sie den neuen Eintrag wskdebug aus der Dropdown-Liste aus.
-
Klicken Sie auf die grüne Schaltfläche Ausführen links vom Dropdown-Menü wskdebug.
-
Ö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. -
Klicken Sie auf die Schaltfläche Ausführen, um den Sekundär auszuführen.
-
Navigieren Sie zurück zu
/actions/worker/index.js
in VS Code und gehen Sie den Code schrittweise durch. -
Um das Debugging-fähige Entwicklungs-Tool zu beenden, klicken Sie auf
Ctrl-C
in dem Terminal, das in Schritt 6 den Befehlnpx 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.
-
Stellen Sie sicher, dass die arbeitsbereichsspezifischen Umgebungsvariablen über
AIO_runtime_namespace
undAIO_runtime_auth
festgelegt sind, und zwar basierend auf dem Arbeitsbereich, für den ein Debugging erforderlich ist. -
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
- Wenn der Arbeitsbereich einen hohen Traffic aufweist, erweitern Sie die Anzahl der Aktivierungsprotokolle über das Flag
-
Die neuesten Aktivierungsprotokolle (bis zum angegebenen
--limit
) werden als Ausgabe des Befehls zur Überprüfung zurückgegeben.