跳到主要内容

调试云对象

云对象开发完成后,您可以对其进行调试,以验证云对象代码运行是否正常。

目前DevEco Studio云对象调试支持本地调用和远程调用,请根据实际场景选择使用:

  • 通过本地调用方式调试云对象:在DevEco Studio调试本地开发好的云对象。支持单个调试和批量调试,并支持Run和Debug两种模式,调试功能丰富,常在云对象开发过程或问题定位过程中使用。
  • 通过远程调用方式调试云对象:先将云对象部署至AGC云端,然后直接在DevEco Studio调用云端云对象。此方式主要用于测试云对象在云端的运行情况、或补充测试因各种因素限制未能在本地调用方式中发现的问题。

前提条件

  • 请确保您已登录。
  • 如果您的工程有代码逻辑涉及云对象调用云数据库,您需在调试前先将整个云工程部署到AGC云端,否则云端将没有相关数据及环境变量。

通过本地调用方式调试云对象

您可在DevEco Studio调试本地开发好的云对象,支持单个调试和批量调试,并支持Run和Debug两种模式。

  • 单个调试和批量调试流程相同,区别仅在于:单个调试是一次只为一个云对象启动本地调试,之后只能调用该云对象;批量调试是一次为“cloudfunctions”目录下所有云对象启动本地调试、然后逐个调用各个云对象。
  • Run模式和Debug模式的区别在于:Debug模式支持使用断点来追踪云对象的运行情况,Run模式则不支持。

下文以Debug模式下调试单个云对象“my-cloud-object”为例,介绍如何在DevEco Studio调试本地云对象。

  1. 右击“my-cloud-object”云对象目录,选择“Debug 'my-cloud-object'”。

    • 如需批量调试多个云对象,右击“cloudfunctions”目录,选择“Debug Cloud Functions”,即可启动该目录下所有云对象。如“cloudfunctions”目录下同时存在云函数和云对象,将会启动所有的云函数和云对象。

  2. 在下方通知栏“cloudfunctions”窗口,查看调试日志。如果出现“Cloud Functions loaded successfully”,表示云对象已成功加载到本地运行的HTTP Server中,并生成对应的Function URI。

  3. 如需设置断点调试,在函数代码中选定要设置断点的有效代码行,在行号(如下图行3)后单击鼠标左键设置断点(如下图的红点)。

    设置断点后,调试能够在断点处中断,并高亮显示该行。

  4. 在菜单栏选择“View > Tool Windows > Cloud Functions Requestor”,使用事件模拟器(Cloud Functions Requestor)触发云对象调用。

  5. 在弹出的“Cloud Functions Requestor”面板,配置触发事件参数。

    • Cloud Function:选择需要触发的云对象,此处以云对象“my-cloud-object”为例。

    • Environment:选择云对象调用环境。此处选择“Local”,表示本地调用。

    • Method:必填项,输入云对象的方法名称,如“add”。

    • Event:方法参数列表,JSON array格式,依次代表Method的入参。如add方法接收两个number类型的形参,num1与num2,那么填入“[1, 2]”表示构造num1=1,num2=2的请求。

      如果Method的入参中的某一个是数组[]类型,那么Event中将至少包含两层方括号,如'[[1, 2], 3]',外层的方括号表示参数列表。

  6. (可选)点击“Save”,可保存当前触发事件。

    点击右上角可展开保存的触发事件,后续可直接点击“Load”加载事件。对于不需要保存的触发事件,也可以点击“Delete”删除。

  7. 点击“Trigger”, 将会触发执行云对象的方法,执行结果将展示在“Result”框内。

    “Result”框右侧的“Logs”面板仅用于在通过远程调用方式调试云对象时查看日志。

  8. 点击菜单栏,可停止调试。

  9. 根据调试结果修改云对象代码后,点击重新以Debug模式启动调试,直至没有问题。

  10. 参考步骤5~9,完成云对象其他方法或其他云对象的调试。

通过远程调用方式调试云对象

您还可以将云对象部署至AGC云端,然后在DevEco Studio调用云端云对象,以测试云对象在云端的运行情况、或补充测试因各种因素限制未能在本地调试中发现的问题。

  1. 参考部署云对象将需要调试的云对象部署至AGC云端。

  2. 在菜单栏选择“View > Tool Windows > Cloud Functions Requestor”,使用事件模拟器(Cloud Functions Requestor)触发云对象调用。

  3. 在弹出的“Cloud Functions Requestor”面板,配置触发事件参数。

    • Cloud Function:选择需要触发的云对象,此处依然以“my-cloud-object”为例。

    • Environment:选择云对象调用环境。此处选择“Remote”,表示远程调用。

    • Method:输入云对象的方法名称,如“add”。

    • Event:方法参数列表,JSON array格式,按顺序代表Method的入参,如add方法接收两个number类型的形参,num1与num2,那么填入“[1, 2]”表示构造num1=1,num2=2的请求,如“[1, 2]”。

      如果Method的入参中的某一个是数组[]类型,那么Event中将至少包含两层方括号,如'[[1, 2], 3]',外层的方括号表示参数列表。

  4. 点击“Trigger”, 将会触发执行云对象方法,执行结果将展示在“Result”框内。

  5. 点击“Logs”页签,还可查看打印的日志定位问题。修改云对象代码、重新部署云对象后再次执行远程调用,直至没有问题。

  6. 参考步骤1~5,完成云对象其他方法或其他云对象的调试。