Asset compute Worker debuggen

asset compute-Sekundäre können auf verschiedene Weise debuggt werden, von einfachen Debug-Protokollanweisungen über angehängten 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 des Debuggens von Asset compute-Sekundären verwendet traditionelle console.log(..)-Anweisungen im Worker-Code. Das JavaScript-Objekt console ist ein implizites, globales Objekt, sodass es nicht importiert werden muss oder erforderlich ist, da es immer in allen Kontexten vorhanden ist.

Diese Protokollanweisungen sind je nach Ausführung des Asset compute Worker unterschiedlich für die Überprüfung verfügbar:

  • Protokolliert von aio app run den Druck in Standard-Out und die Aktivierungsprotokolle des Entwicklungstools
    Ausführen der aio-App console.log(..)
  • Protokolliert von aio app test den Druck auf /build/test-results/test-worker/test.log
    aio app test console.log(..)
  • Mithilfe von wskdebug drucken Protokollanweisungen in die VS Code Debug Console (Ansicht > Debug Console), Standard-Out
    wskdebug console.log(..)
  • Mit aio app logs drucken Protokollanweisungen in die Ausgabe des Aktivierungsprotokolls

Remote-Debugging über angehängten Debugger

WARNUNG

Verwenden Sie Microsoft Visual Studio Code 1.48.0 oder höher zur Kompatibilität mit wskdebug

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

Clickthrough des Debuggens eines Asset compute Sekundärs mit wskdebug (kein Audio)

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

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

  3. Schließen Sie alle aktiven laufenden Instanzen des Entwicklungstools.

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

    ℹ Info: Deploying package [wkndAemAssetCompute-0.0.1]...
    
  5. Starten Sie eine neue Instanz des Asset compute Development Tool mit dem Befehl npx adobe-asset-compute devtool.

  6. Tippen Sie im VS-Code im linken Navigationsbereich auf das Symbol Debuggen .

    • Wenn Sie dazu aufgefordert werden, tippen Sie auf Datei launch.json erstellen > Node.js , um eine neue launch.json-Datei zu erstellen.
    • Tippen Sie andernfalls auf das Symbol Zahnrad rechts neben dem Dropdown-Menü Programm starten , um die vorhandene launch.json im Editor zu öffnen.
  7. Fügen Sie die folgende JSON-Objektkonfiguration zum configurations -Array hinzu:

    {
        "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 das neue wskdebug aus der Dropdown-Liste aus.

  9. Tippen Sie links neben wskdebug auf die grüne Schaltfläche Ausführen .

  10. Öffnen Sie /actions/worker/index.js und tippen Sie links neben den Zeilennummern, um die Umbruchpunkte 1 hinzuzufügen. Navigieren Sie zum Webbrowser-Fenster des Asset compute Development Tool , das in Schritt 6 geöffnet wurde.

  11. Tippen Sie auf die Schaltfläche Ausführen, um den Worker auszuführen.

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

  13. Um das Debuggable Development Tool zu beenden, tippen Sie im Terminal, das den Befehl npx adobe-asset-compute devtool in Schritt 6 ausgeführt hat, auf Ctrl-C .

Zugriff auf Protokolle aus Adobe I/O Runtime

AEM as a Cloud Service nutzt Asset compute-Sekundäre über Verarbeitungsprofile, indem sie sie direkt in Adobe I/O Runtime aufrufen. Da diese Aufrufe keine lokale Entwicklung erfordern, können ihre Ausführungen nicht mit lokalen Tools wie Asset compute Development Tool oder wskdebug debuggt werden. Stattdessen kann die Adobe I/O-CLI verwendet werden, um Protokolle vom Worker abzurufen, der in einem bestimmten Arbeitsbereich in Adobe I/O Runtime ausgeführt wird.

  1. Stellen Sie sicher, dass die Workspace-spezifischen Umgebungsvariablen über AIO_runtime_namespace und AIO_runtime_auth festgelegt werden, je nach Arbeitsbereich, der Debugging erfordert.

  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 die --limit -Markierung:

      $ aio app logs --limit=25

  3. Die letzten (bis zu den bereitgestellten --limit) Aktivierungsprotokolle werden als Ausgabe des Befehls zur Überprüfung zurückgegeben.

    aio app logs

Fehlerbehebung

Auf dieser Seite