调试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 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代码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.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. 点按​运行​按钮以执行工作程序

  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应用程序日志

疑难解答

在此页面上