调试Asset compute工作程序

asset compute工作程序可以通过多种方式进行调试,从简单的调试日志语句,到作为远程调试器的附加VS Code,再到在Adobe I/O Runtime中为从AEMas 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应用程序测试控制台日志(...)
  • 使用 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 并记录已部署的操作名称(名称介于 [...])。 这用于更新 launch.json 步骤8.

    code language-none
    ℹ Info: Deploying package [wkndAemAssetCompute-0.0.1]...
    
  5. 使用命令启动Asset compute开发工具的新实例 npx adobe-asset-compute devtool

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

    • 如果出现提示,请点按 创建launch.json文件> Node.js 以新建 launch.json 文件。
    • 否则,点按 齿轮 图标(位于页面右侧) 启动项目 下拉菜单以打开现有的 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. 要退出可调试的开发工具,请点按 Ctrl-C 在运行的终端中 npx adobe-asset-compute devtool 步骤6中的命令

从Adobe I/O Runtime访问日志 aio-app-logs

AEMas a Cloud Service通过处理用户档案来利用Asset compute工作人员 直接在Adobe I/O Runtime中调用它们。 由于这些调用不涉及本地开发,因此无法使用本地工具(如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