调试Asset compute工作程序
asset compute工作程序可以通过多种方式进行调试,从简单的调试日志语句,到作为远程调试器的附加VS Code,再到在Adobe I/O Runtime中为从AEM as a Cloud Service启动的激活提取日志。
日志记录
调试Asset compute工作程序的最基本形式是在工作程序代码中使用传统的console.log(..)
语句。 console
JavaScript对象是一个隐式全局对象,因此无需导入或要求它,因为它始终存在于所有上下文中。
根据执行Asset compute工作进程的方式,可查看这些log语句:
- 从
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开发工具Web浏览器窗口 -
点按 运行 按钮以执行辅助进程
-
导航回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通过直接在Adobe I/O Runtime中调用用户档案来利用Asset compute工作人员。 由于这些调用不涉及本地开发,因此无法使用本地工具(如Asset compute开发工具或wskdebug)调试其执行。 相反,Adobe I/OCLI可用于从Adobe I/O Runtime中特定工作区执行的worker中提取日志。
-
请确保根据需要调试的工作区,通过
AIO_runtime_namespace
和AIO_runtime_auth
设置特定于工作区的环境变量🔗。 -
从命令行执行
aio app logs
-
如果工作区发生大量流量,请通过
--limit
标记扩展激活日志的数量:$ aio app logs --limit=25
-
-
最近(截至提供的
--limit
)的激活日志作为命令输出返回,以供审查。