调试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应用运行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开发工具Web浏览器窗口

  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