调试资产计算工作者

资产计算工作程序可以通过多种方式进行调试,从简单的调试日志语句,到将附加的VS代码作为远程调试器,再到为从AEM作为Cloud Service启动的Adobe I/O Runtime激活提取日志。

记录

调试资产计算工作线程的最基本形式在工作线程代码 console.log(..) 中使用传统的语句。 JavaScript console 对象是隐式的全局对象,因此无需导入或要求它,因为它始终存在于所有上下文中。

根据资产计算工作人员的执行方式,这些日志语句可以以不同方式进行审阅:

  • 从打 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模块支持将调试器附加到资产计算工作器,包括在VS代码中设置断点并遍历代码。

使用wskdebug调试资产计算工作器的点进(无音频)

  1. 保已安 装wskdebug 和ngrok npm模块

  2. 保Docker Desktop和支持的Docker映像 ,已安装并运行

  3. 关闭开发工具的任何正在运行的实例。

  4. 使用部署的最新代 aio app deploy 码并记录已部署的操作名称(在之间 [...]的名称)。 此操作将用于更新 launch.json 步骤8中的。

    ℹ Info: Deploying package [wkndAemAssetCompute-0.0.1]...
    
  5. 使用命令开始资产计算开发工具的新实例 npx adobe-asset-compute devtool

  6. 在VS代码中,点按左侧导航中的调试图标

    • 如果出现提示, 请点按“创建launch.json文件”>“Node.js ”以创建新 launch.json 文件。
    • 否则,点按 启动项目 (Launch)下拉 框右侧的齿轮图标 ,以打开编辑器 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中打开的“资产计算开发工具Web浏览器”窗口

  11. 点按“ 运行 ”按钮以执行该工作器

  12. 导航回VS代码, /actions/worker/index.js 遍历代码

  13. 要退出可调试的开发工具,请点 Ctrl-C 击第6步中运行命 npx adobe-asset-compute devtool 令的终端

访问来自Adobe I/O Runtime的日志

AEM作为Cloud Service,通过在Adobe I/O Runtime直接调用资产计算工作器 ,通过处理用户档案利用资产计算工作器。 由于这些调用不涉及本地开发,因此无法使用本地工具(如Asset Compute Development Tool或wskdebug)调试它们的执行。 相反,AdobeI/O CLI可用于从Adobe I/O Runtime某特定工作区执行的工作器中提取日志。

  1. 确保 根据需要调试的工作区 ,通过 AIO_runtime_namespace 和设置特定于工作 AIO_runtime_auth区的环境变量。

  2. 从命令行执行 aio app logs

    • 如果工作区产生大量流量,请通过以下标志扩展激活日志 --limit 数:

      $ aio app logs --limit=25

  3. 最近(最多提供)的激活 --limit日志将作为命令的输出返回以供审阅。

    aio应用程序日志

疑难解答

在此页面上