偵錯Asset compute背景工作

asset compute背景工作可透過數種方式進行除錯,包括簡單的除錯記錄陳述式、附加的VS Code (作為遠端除錯工具),乃至於從起始自AEM as a Cloud Service的Adobe I/O Runtime中提取啟用的記錄。

記錄

偵錯Asset compute背景工作的最基本形式是使用背景工作程式碼中的傳統console.log(..)陳述式。 console JavaScript物件是隱含的全域物件,因此不需要匯入或要求它,因為它一律存在於所有內容中。

根據Asset compute背景工作程式的執行方式,可檢視這些記錄陳述式:

  • aio app run,記錄檔列印至標準輸出,以及開發工具的啟動記錄檔
    aio應用程式執行console.log(...)
  • aio app test,記錄列印至/build/test-results/test-worker/test.log
    aio應用程式測試主控台.log(...)
  • 使用wskdebug,將記錄陳述式列印到VS程式碼偵錯主控台(檢視>偵錯主控台),標準輸出
    wskdebug console.log(...)
  • 使用aio app logs,將記錄陳述式列印至啟動記錄輸出

透過附加的偵錯工具進行遠端偵錯

WARNING
使用Microsoft Visual Studio Code 1.48.0或更新版本,以與wskdebug相容

wskdebug npm模組支援將偵錯工具附加至Asset compute背景工作,包括在VS程式碼中設定中斷點,以及逐步執行程式碼的功能。

使用wskdebug (無音訊)偵錯Asset compute背景工作程式的點進

  1. 確定已安裝wskdebugngrok npm模組

  2. 確保Docker Desktop和支援的Docker映像已安裝並執行

  3. 關閉開發工具的任何使用中的執行中例項。

  4. 使用aio app deploy部署最新的程式碼並記錄部署的動作名稱(名稱介於[...]之間)。 這可用來更新步驟8中的launch.json

    code language-none
    ℹ Info: Deploying package [wkndAemAssetCompute-0.0.1]...
    
  5. 使用命令npx adobe-asset-compute devtool啟動Asset compute開發工具的新執行個體

  6. 在VS Code中,點選左側導覽中的偵錯圖示

    • 如果出現提示,請點選​ 建立launch.json檔案> Node.js ​以建立新的launch.json檔案。
    • 否則,點選「Launch程式」下拉式清單右側的​ 齒輪 ​圖示,在編輯器中開啟現有的launch.json
  7. 將下列JSON物件組態新增至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. 從下拉式清單中選取新的​ wskdebug

  9. 點選​ wskdebug ​下拉式清單左側的綠色​ 執行 ​按鈕

  10. 開啟/actions/worker/index.js並點選行號左邊以新增破斷點1。 導覽至在步驟6開啟的Asset compute開發工具網頁瀏覽器視窗

  11. 點選​ 執行 ​按鈕以執行背景工作

  12. 導覽回VS程式碼至/actions/worker/index.js並逐步執行程式碼

  13. 若要結束可偵錯的開發工具,請在步驟6中執行npx adobe-asset-compute devtool命令的終端機中點選Ctrl-C

從Adobe I/O Runtime存取記錄檔 aio-app-logs

AEM as a Cloud Service透過處理設定檔,在Adobe I/O Runtime中直接叫用Asset compute背景工作。 由於這些叫用不涉及本機開發,因此無法使用本機工具(例如Asset compute開發工具或wskdebug)來偵錯其執行。 反之,Adobe I/OCLI可用來從在Adobe I/O Runtime中特定工作區執行的Worker擷取記錄。

  1. 根據需要偵錯的工作區,確定已透過AIO_runtime_namespaceAIO_runtime_auth設定工作區特定的環境變數

  2. 從命令列,執行aio app logs

    • 如果工作區發生大量流量,請透過--limit旗標擴充啟用記錄檔的數量:

      $ aio app logs --limit=25

  3. 最近(至提供的--limit)啟用記錄會傳回作為命令的輸出以供檢閱。

    aio應用程式記錄

疑難排解

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