對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 app test
,記錄列印至/build/test-results/test-worker/test.log
- 使用
wskdebug
,將記錄陳述式列印到VS程式碼偵錯主控台(檢視>偵錯主控台),標準輸出
- 使用
aio app logs
,將記錄陳述式列印至啟動記錄輸出
透過附加的偵錯工具進行遠端偵錯
wskdebug npm模組支援將偵錯工具附加至Asset Compute背景工作,包括在VS程式碼中設定中斷點,以及逐步執行程式碼的功能。
使用wskdebug (無音訊)偵錯Asset Compute背景工作程式的點進
-
確保Docker Desktop和支援的Docker映像已安裝並執行
-
關閉開發工具的任何使用中的執行中例項。
-
使用
aio app deploy
部署最新的程式碼並記錄部署的動作名稱(名稱介於[...]
之間)。 這可用來更新步驟8中的launch.json
。code language-none ℹ Info: Deploying package [wkndAemAssetCompute-0.0.1]...
-
使用命令
npx adobe-asset-compute devtool
啟動Asset Compute開發工具的新執行個體 -
在VS Code中,點選左側導覽中的偵錯圖示
- 如果出現提示,請點選 建立launch.json檔案> Node.js 以建立新的
launch.json
檔案。 - 否則,點選「Launch程式」下拉式清單右側的 齒輪 圖示,在編輯器中開啟現有的
launch.json
。
- 如果出現提示,請點選 建立launch.json檔案> Node.js 以建立新的
-
將下列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 }
-
從下拉式清單中選取新的 wskdebug
-
點選 wskdebug 下拉式清單左側的綠色 執行 按鈕
-
開啟
/actions/worker/index.js
並點選行號左邊以新增破斷點1。 導覽至在步驟6開啟的Asset Compute開發工具網頁瀏覽器視窗 -
點選 執行 按鈕以執行背景工作
-
導覽回VS程式碼至
/actions/worker/index.js
並逐步執行程式碼 -
若要結束可偵錯的開發工具,請在步驟6中執行
npx adobe-asset-compute devtool
命令的終端機中點選Ctrl-C
從Adobe I/O Runtime存取記錄檔 aio-app-logs
AEM as a Cloud Service透過處理設定檔運用Asset Compute背景工作,方法是直接在Adobe I/O Runtime中叫用這些設定檔。 由於這些叫用不涉及本機開發,因此無法使用本機工具(例如Asset Compute開發工具或wskdebug)來偵錯其執行。 反之,Adobe I/O CLI可用於擷取在Adobe I/O Runtime中特定工作區執行之背景工作程式的記錄檔。
-
根據需要偵錯的工作區,確定已透過
AIO_runtime_namespace
和AIO_runtime_auth
設定工作區特定的環境變數。 -
從命令列,執行
aio app logs
-
如果工作區發生大量流量,請透過
--limit
旗標擴充啟用記錄檔的數量:$ aio app logs --limit=25
-
-
最近(至提供的
--limit
)啟用記錄會傳回作為命令的輸出以供檢閱。