调试函数
====

函数开发完成后，您可以对函数进行调试，以验证函数代码运行是否正常。

目前DevEco Studio函数调试支持本地调用和远程调用，请根据实际场景选择使用：

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

#### 前提条件

*   请确保您已登录。
*   如果您的工程有代码逻辑涉及云函数调用云数据库，您需在调试前先[将整个云工程部署到AGC云端](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/agc-harmonyos-clouddev-deploy)，否则云端将没有相关数据及环境变量。

#### 通过本地调用方式调试函数

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

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

下文以Debug模式下调试单个函数“my-cloud-function”为例，介绍如何在DevEco Studio调试本地函数。

1.  右击“my-cloud-function”函数目录，选择“Debug 'my-cloud-function'”。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/40/v3/a6558ErOSzqQEiaLDiyceA/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260612T073824Z&HW-CC-Expire=86400&HW-CC-Sign=8E588617214A41BE7857B0F6982B9B1807F6B976FBCCB5C4E96DDDB8A69471BC)
    
    *   直接从当前路径下Debug，使用的是默认的Debug配置，您也可[自定义Debug配置](#section65830284215)。自定义Debug配置后再从此路径下Debug，将优先采用自定义Debug配置。
    *   如需批量调试多个函数，右击“cloudfunctions”目录，选择“Debug Cloud Functions”，即可启动该目录下所有函数。如“cloudfunctions”目录下同时存在云函数和云对象，将会启动所有的云函数和云对象。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/77/v3/wZTovI1_TAOA8chcJnE8EA/zh-cn_image_0000002214858717.png?HW-CC-KV=V1&HW-CC-Date=20260612T073824Z&HW-CC-Expire=86400&HW-CC-Sign=1EF892A86654581B42DCA06FB022733583D4D81CDF6AE9F26FA76FDAC5050C9D)
    
2.  在下方通知栏“cloudfunctions”窗口，查看调试日志。如果出现“Cloud Functions loaded successfully”，表示函数成功加载到本地运行的HTTP Server中，并生成对应的Function URI。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/c4/v3/_sHJXEc9TMu6POuCZ17ATw/zh-cn_image_0000002214704369.png?HW-CC-KV=V1&HW-CC-Date=20260612T073824Z&HW-CC-Expire=86400&HW-CC-Sign=826279AF7D0048E3361B9B338C0C9767C3457BCAA2EE2FF037B4D1D9C055B2A2)
    
3.  如需设置断点调试，在函数代码中选定要设置断点的有效代码行，在行号（如下图行15）后单击鼠标左键设置断点（如下图的红点）。
    
    设置断点后，调试能够在断点处中断，并高亮显示该行。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/d3/v3/8oV_e5myRjCcZX1g5PFrcg/zh-cn_image_0000002533684069.png?HW-CC-KV=V1&HW-CC-Date=20260612T073824Z&HW-CC-Expire=86400&HW-CC-Sign=8AA5C346A0FA14DAFF1CD4FE07439DEDE396D8FD5F20CEDF9312B181E2A96267)
    
4.  在菜单栏选择“View > Tool Windows > Cloud Functions Requestor”，使用事件模拟器（Cloud Functions Requestor）触发函数调用。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/47/v3/M4j2O8o2TO69L1ivTBBPaA/zh-cn_image_0000002179338456.png?HW-CC-KV=V1&HW-CC-Date=20260612T073824Z&HW-CC-Expire=86400&HW-CC-Sign=D4404BFD51AA27860768D6E743472E5337F7664E4DAB7DB5939E9CBC3F3F9F97)
    
5.  在弹出的“Cloud Functions Requestor”面板，配置触发事件参数。
    
    *   Cloud Function：选择需要触发的云函数，此处以函数“my-cloud-function”为例。
    *   Environment：选择函数调用环境。此处选择“Local”，表示本地调用。
    *   Event：输入事件参数，内容为JSON格式请求体数据。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/ef/v3/FFnteosTTfiaUGT_kbaggA/zh-cn_image_0000002179338412.png?HW-CC-KV=V1&HW-CC-Date=20260612T073824Z&HW-CC-Expire=86400&HW-CC-Sign=681DAD9D61B0E1805484E4C5931C24FF6A00370D625F8E39F335CC7AEAA716F1)
    
6.  （可选）点击“Save”，可保存当前触发事件。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/55/v3/b7rvhWH6SJ-gFpUJTQZz5g/zh-cn_image_0000002179498072.png?HW-CC-KV=V1&HW-CC-Date=20260612T073824Z&HW-CC-Expire=86400&HW-CC-Sign=C7127B699BF979A5562A7439A86A867073C90478B7EE1A1AB1B3BDA75A99FFFA)
    
    点击右上角![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/59/v3/wWryJi2GS6-wHDhL3BEI3Q/zh-cn_image_0000002179498132.png?HW-CC-KV=V1&HW-CC-Date=20260612T073824Z&HW-CC-Expire=86400&HW-CC-Sign=5A6CD9AE6C0F2DC4B8539985CEA4D146F98595B1F7F2EDE88CC34F954675D077)可展开保存的触发事件，后续可直接点击“Load”加载事件。对于不需要保存的触发事件，也可以点击“Delete”删除。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/db/v3/JC_YaXV3RKOEgF0xrRqUmg/zh-cn_image_0000002278063192.png?HW-CC-KV=V1&HW-CC-Date=20260612T073824Z&HW-CC-Expire=86400&HW-CC-Sign=2D5AE37291CF5132E53981F13BF71BBE80F2AEAB5775291CD7C9B670BD8C1F46)
    
7.  点击“Trigger”， 将会触发执行用户函数代码。执行结果将展示在“Result”框内，“cloudfunctions”窗口同时打印调试日志。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/93/v3/fcDgQkNqRs6238r_zcZAzQ/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260612T073824Z&HW-CC-Expire=86400&HW-CC-Sign=7138D1B6EFB73D60001DAC445C4AA55313A8C61030E6C022E3F7E52D5D2ABA27)
    
    “Result”框右侧的“Logs”面板仅用于在[通过远程调用方式调试函数](#section123191549587)时查看日志。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/84/v3/zd_Az2x0SRqKlpiV07Qx1A/zh-cn_image_0000002503613920.png?HW-CC-KV=V1&HW-CC-Date=20260612T073824Z&HW-CC-Expire=86400&HW-CC-Sign=9C7300A76C9B0162BF2A44621363F58F815F06F5B8627DBF9A6E278FF100A226)
    
8.  （可选）如[配置了环境变量](#li15793566149)，可将变量信息传入到函数执行环境中，用于函数运行时读取。
    
    logger.info(context.env._name_);//name为环境变量名称
    
    如下图，函数“my-cloud-function”配置了环境变量“env1”，可成功访问环境变量“env1”的值“value1”。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/6a/v3/egcPM1YoRQ2rNjzilbc4aQ/zh-cn_image_0000002503615754.png?HW-CC-KV=V1&HW-CC-Date=20260612T073824Z&HW-CC-Expire=86400&HW-CC-Sign=6C8A6F1837127498AB06F083A1B8A948CE89224245BDF098B398D3B69E2B0EF1)
    
9.  点击菜单栏![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/54/v3/xNSMrVItQEiVJtMkVZHaBQ/zh-cn_image_0000002179338396.png?HW-CC-KV=V1&HW-CC-Date=20260612T073824Z&HW-CC-Expire=86400&HW-CC-Sign=58486B1D1CFA4C383D85BD177AE4E9159D9FCB4F51464434BED5CC733530AFCC)，可停止调试。
10.  根据调试结果修改函数代码后，点击![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/cb/v3/WalPMu1QSQyNpJwYFFO3_A/zh-cn_image_0000002179338420.png?HW-CC-KV=V1&HW-CC-Date=20260612T073824Z&HW-CC-Expire=86400&HW-CC-Sign=D6769C0F0118C8A219A441C2567BC701A5399EF5D96A468B9400D3B630F36547)重新以Debug模式启动调试，直至没有问题。
11.  参考步骤5~10，完成其他函数的调试。

#### 通过远程调用方式调试函数

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

1.  参考[部署函数](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/agc-harmonyos-clouddev-deployfunc)将需要调试的函数部署至AGC云端。
2.  （可选）如函数代码涉及访问环境变量，需在AGC Portal函数列表中点击函数名称，为函数配置环境变量的值，供函数在运行时读取和使用。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/0e/v3/J3lUeDymQl21yvmCAbUC4A/zh-cn_image_0000002214858729.png?HW-CC-KV=V1&HW-CC-Date=20260612T073824Z&HW-CC-Expire=86400&HW-CC-Sign=0785E27ED2321F078A90C7F9A6BA8F8C5D1667799FDC83664EAFAD32658DFA82)
    
3.  在菜单栏选择“View > Tool Windows > Cloud Functions Requestor”，使用事件模拟器（Cloud Functions Requestor）触发函数调用。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/b7/v3/9bb7VoBTT-CJmmKjPb5gLw/zh-cn_image_0000002179498140.png?HW-CC-KV=V1&HW-CC-Date=20260612T073824Z&HW-CC-Expire=86400&HW-CC-Sign=FF4B24EA4BA9E21A9CCC7A86359B15916AAC28D99529F9A66B8B4B615A894E7E)
    
4.  在弹出的“Cloud Functions Requestor”面板，配置触发事件参数。
    
    *   Cloud Function：选择需要触发的云函数，此处依然以函数“my-cloud-function”为例。
    *   Environment：选择函数调用环境。此处选择“Remote”，表示远程调用。
    *   Event：输入事件参数，内容为JSON格式请求体数据。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/7e/v3/do0NHa67QTGVzsvQX0aGpg/zh-cn_image_0000002179338388.png?HW-CC-KV=V1&HW-CC-Date=20260612T073824Z&HW-CC-Expire=86400&HW-CC-Sign=2B134C58BBD25C708C2DDF55C05264A99061E390FDE06B9FBB960C3D428F0C81)
    
5.  点击“Trigger”， 将会触发执行用户函数代码，执行结果将展示在“Result”框内。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/b1/v3/G3mbXOrYTpK8VtqSJYuzLA/zh-cn_image_0000002214704345.png?HW-CC-KV=V1&HW-CC-Date=20260612T073824Z&HW-CC-Expire=86400&HW-CC-Sign=FCB89C92E03763C9574AF5815D1C9326C2670FF499C8CCDD42DE1B874E503712)
    
6.  点击“Logs”页签，可查看打印的日志定位问题。修改函数代码、重新部署函数后再次执行远程调用，直至没有问题。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/e3/v3/bR8Va-L1Qvi6yJ5Ua3U85A/zh-cn_image_0000002535303613.png?HW-CC-KV=V1&HW-CC-Date=20260612T073824Z&HW-CC-Expire=86400&HW-CC-Sign=016447255A908423D483BAABA4F725208A7D7CBFFDF61AF505EF04AD377A9331)
    
7.  参考步骤1~5，完成其他函数的调试。

#### （可选）自定义Run/Debug配置

直接启动函数调试采用的是默认的Run/Debug配置。如有特殊需求，您也可使用自定义Run/Debug配置项来进行调试。

1.  在菜单栏选择“Run > Edit Configurations”。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/20/v3/qTpCpWcnTLmT3k3GEE4q7g/zh-cn_image_0000002179498096.png?HW-CC-KV=V1&HW-CC-Date=20260612T073824Z&HW-CC-Expire=86400&HW-CC-Sign=E9A9DC7C19A918848E38CC5AA10A8B6222A646F55F01CC18A6DA0FF15C8427D6)
    
2.  在“Run/Debug Configurations”窗口，点击![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/ec/v3/7cF9PG4pR12AAmVFGcoAOQ/zh-cn_image_0000002214858773.png?HW-CC-KV=V1&HW-CC-Date=20260612T073824Z&HW-CC-Expire=86400&HW-CC-Sign=04D1617F407C204D57275BFF9EB3938B3AFDF11F771E96709353D312CECDC48A)，选择“Cloud Functions”，新增一个Run/Debug配置。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/c0/v3/YDYAF8i0TzSvdZ6mM3b4qw/zh-cn_image_0000002214704341.png?HW-CC-KV=V1&HW-CC-Date=20260612T073824Z&HW-CC-Expire=86400&HW-CC-Sign=39F598061BEFE5E687511415FD1A3D18380B0DFEC242956B68FCEE969720DDE9)
    
3.  自定义Run/Debug配置，完成后点击“Run”或“Debug”即可立即按当前自定义配置启动本地调试。
    
    如当前暂不使用自定义配置，可点击“OK”保存配置。后续有需要时再选择自定义配置，分别点击![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/d8/v3/6kkYqpAVRJ-mGDfnVm-h_Q/zh-cn_image_0000002179338416.png?HW-CC-KV=V1&HW-CC-Date=20260612T073824Z&HW-CC-Expire=86400&HW-CC-Sign=88EF43F2A0A59668DFE449695389CE2978520DEF7F489475AE9FA9C7498DFA74)或![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/95/v3/pefcSgLzQJWi2i3Tk1MWCQ/zh-cn_image_0000002214704373.png?HW-CC-KV=V1&HW-CC-Date=20260612T073824Z&HW-CC-Expire=86400&HW-CC-Sign=B10E9E0A295895B21B856F2198F289D6120B776D686F577F25BF5DE8F31814C4)进行Run或Debug。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/4b/v3/gDxryfiXQmeYAtA7WV0TuQ/zh-cn_image_0000002214704377.png?HW-CC-KV=V1&HW-CC-Date=20260612T073824Z&HW-CC-Expire=86400&HW-CC-Sign=17814FDB5BA4BB1AA84E5744315D592421A0A80A7FFD4F16491876E98B8EB204)
    
    *   Name：Run/Debug配置的名称，如“functions-custom1”。
    *   Server IP Address：HTTP服务端监听IP地址，默认为localhost，支持切换为您的局域网IP地址。
    *   Server Port：HTTP服务端监听端口。默认为“18090”，自定义端口号建议大于1024。勾选“Auto increment”表示如当前端口被占用则端口号自动加“1”。
    *   Environment variables：函数运行的环境变量，为key-value形式。
        
        点击“Edit environment variables”按钮，在“Environment Variables”弹窗中点击“+”添加一个环境变量，然后点击“OK”。添加成功后，您便可以将变量配置信息传入到函数执行环境中，用于函数运行时读取。
        
        ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/bc/v3/jwLnDDW9Q96eAQeSaCRmXQ/zh-cn_image_0000002179338424.png?HW-CC-KV=V1&HW-CC-Date=20260612T073824Z&HW-CC-Expire=86400&HW-CC-Sign=192C529FB6B852ECEAB27A3A4A07CD94F2B6154FA963AE8787288F4D0B88F39D)