調試Asset compute工作

asset compute背景工作可透過數種方式進行除錯,從簡單的除錯記錄陳述式,到附加的VS Code(作為遠端除錯工具),再到從AEM作為Cloud Service啟動的Adobe I/O Runtime中提取啟動記錄。

記錄

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

根據Asset compute工作程式的執行方式,這些日誌陳述式可用於查看的方式不同:

  • aio app run,記錄打印到標準輸出,以及開發工具的激活日誌
    aio app run console.log(...)
  • aio app test,將日誌打印到/build/test-results/test-worker/test.log
    aio app test console.log(...)
  • 使用wskdebug,記錄陳述式會列印至VS程式碼除錯主控台(檢視>除錯主控台),標準輸出
    wskdebug console.log(...)
  • 使用aio app logs,日誌語句打印到激活日誌輸出

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

警告

使用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

    ℹ Info: Deploying package [wkndAemAssetCompute-0.0.1]...
    
  5. 使用命令npx adobe-asset-compute devtool啟動Asset compute開發工具的新實例

  6. 在VS程式碼中,點選左側導覽中的「除錯」圖示

    • 如果出現提示,請點選​建立launch.json檔案> Node.js​以建立新的launch.json檔案。
    • 否則,點選​Launch Program​下拉式清單右側的​Gear​圖示,以開啟編輯器中現有的launch.json
  7. 將下列JSON物件設定新增至configurations陣列:

    {
        "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開發工具Web瀏覽器視窗

  11. 點選​Run​按鈕以執行工作器

  12. 導覽回「VS程式碼」、/actions/worker/index.js,然後逐步執行程式碼

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

從Adobe I/O Runtime存取記錄

AEM as aCloud Service會直接在Adobe I/O Runtime中叫用Asset compute背景工作, 透過處理設定檔來運用背景工作。由於這些調用不涉及本地開發,因此無法使用本地工具(如Asset compute開發工具或wskdebug)調試它們的執行。 相反地,Adobe I/OCLI可用來從Adobe I/O Runtime中特定工作區中執行的工作器擷取記錄。

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

  2. 從命令行執行aio app logs

    • 如果工作區發生大量流量,請透過--limit標幟展開啟用記錄的數量:

      $ aio app logs --limit=25

  3. 將返回最近的(直到提供的--limit)激活日誌作為要查看的命令的輸出。

    aio應用程式記錄

疑難排解

本頁內容