专栏首页云开发攻略丨CloudBase Toolkit 云函数调试

攻略丨CloudBase Toolkit 云函数调试

Tencent CloudBase Toolkit 插件 0.2.0 版起支持云函数本地调试和云端调试两种调试模式。

  • 本地调试:使用 CloudBase CLI 在本地模拟运行 Node.js 云函数,云函数的 eventcontext 均为模拟参数,适合本地开发
  • 云端调试:使用云端的云函数实例进行调试,所有的参数、环境均与云端一致,适合定位复杂的线上问题。

本地调试

本地调试需要使用 CloudBase CLI 工具,请先安装 CloudBase CLI 工具。

安装地址:

https://docs.cloudbase.net/cli/intro.html

操作步骤

1. 确保当前项目根目录存在 cloudbaserc.json 配置文件,如果不存在,请在资源管理区右键选择【生成 cloudbaserc 配置文件】;

2. 在需要调试的位置打上断点;

3. 选中需要调试的云函数目录,右键【调试云函数】,在弹出的选项中选择【本地调试】即可。

云端调试

云端调试会运行一个云函数实例,供本地连接调试使用。云端调试需要使用云函数实例,会产生相应的运行费用。

云端调试只能通过 CloudBase Toolkit 的【调试云函数】触发,无法通过 Debug 面板触发。

注意:

  • 在开始操作前,建议你先阅读下方的注意事项。
  • 不建议对生产环境或被频繁调用的云函数进行云端调试,可能会无法命中调试,并阻塞其他的请求。

操作步骤

1. 确保当前项目根目录存在 cloudbaserc.json 配置文件,如果不存在,请在资源管理区右键选择【生成 cloudbaserc 配置文件】;

2. 选中需要调试的云函数目录,右键【调试云函数】,在弹出的选项中选择【云端调试】;

3. 在需要调试的位置打上断点;

4. 触发你的云函数。你可以根据的你的使用情况,从小程序端、SDK 或腾讯云控制台中触发你的云函数。

注意事项

当前云函数的云端调试能力处于 Beta 阶段,欢迎试用并向我们反馈使用中的问题或建议。

在使用云函数的云端调试功能时,需要了解如下信息及注意点:

1. 云端调试使用了云函数的一个实际运行的并发实例来进行调试。

2. 由于触发事件的随机性,如果有多个实例存在的情况下,触发事件可能随机的落到某个实例上,因此不是任意请求均能命中调试并发实例并可以开始调试。

3. 调试断点暂停运行时:长时间未运行且未返回的情况下,可能会导致触发端报错,例如 API 网关提示超时。实例仍然处于计时状态,并会在此次调试完成时,继续执行直到函数执行完成。整个过程记录耗费的总时长作为此次函数的运行时长。

4. 从触发并发实例运行,到最终完成调试,单次执行完成的最长时间为 900 秒。即在调试时如果中断执行 900 秒后,将会强制终止此次执行,按函数运行时长 900 秒并超时进行统计和计量。

5. 当前版本的调试能力,会使得云函数超时配置为 900 秒,在正常退出调试时将会重新设置超时为正常值。如果调试命令异常退出或强行终止,会导致云函数超时未能设置为正常值,此时可以通过再次部署(命令行)或手工编辑(控制台)的方式修改云函数的超时配置。

配置项

一般情况下,你无需关心调试的配置选项,CloudBase Toolkit 会自动生成相关的调试配置,并启动调试功能。

本地调试

下面是本地调试的 launch 配置,包含了如下选项:

  • type: VS Code 调试类型,固定值为 node
  • request: VS Code 调试启动类型,固定值为 attach
  • port: 调试进程端口,默认为 9229
  • name: 当前调试项的名称,默认为 "[函数名] 云函数本地调试" 形式
  • entry: 调试的目标函数名
  • cloudbaseLocal: 标志当前调试项为适用于 CloudBase Toolkit 本地调试
{  "configurations": [    {      "type": "node",      "request": "attach",      "port": 9229,      "name": "[app] 云函数本地调试",      "entry": "app",      "cloudbaseLocal": true    }  ]}

下面是云端调试的 launch 配置,包含了如下选项:

  • type: VS Code 调试类型,固定值为 node
  • request: VS Code 调试启动类型,固定值为 attach
  • port: 调试进程端口,默认为 9222
  • name: 当前调试项的名称,默认为 "[函数名] 云函数云端调试" 形式
  • remoteRoot: 云端代码的根路径,固定为 /var/user
  • localRoot: 本地代码的根路径
  • cloudbaseRemote: 标志当前调试项为 CloudBase Toolkit 云端调试配置项
{  "type": "node",  "request": "attach",  "name": "[app] 云函数云端调试",  "port": 9222,  "cloudbaseRemote": true,  "remoteRoot": "/var/user",  "localRoot": "${workspaceFolder}/functions/app"}

本文分享自微信公众号 - 腾讯云云开发(tcb2tcb),作者:云开发CloudBase

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何将 Jekyll 部署到云开发静态网站托管

    云开发静态托管是云开发提供的静态网站托管的能力,静态资源(HTML、CSS、JavaScript、字体等)的分发由腾讯云对象存储 COS 和拥有多个边缘网点的腾...

    腾讯云开发TCB
  • 腾讯犀牛鸟「云开发」校园技术布道师养成计划

    人才竞争日益激烈,如何构建一个具有市场竞争力的能力模型?是值得每一个开发者思考的话题。无论你是在校生,还是在职开发者,未雨绸缪,方能抓住机遇。

    腾讯云开发TCB
  • 用小程序·云开发轻松构建二手书商城小程序(下)丨实战

    今天是“世界读书日”,传承知识,手有余香~本文教你用小程序·云开发轻松制作二手书交易商城小程序,让智慧延续,让温暖传递。

    腾讯云开发TCB
  • .NET 反编译调试神器:dnSpy了解一下

    可前往dnSpy官网下载或直接从我的分享链接下载(内置包含.NET Framework 4.7.1,若运行提示需要安装,可解压找到.NET Framework ...

    圣杰
  • 初探Windows用户态调试机制

    最近写Named Pipe Server Using Completion Routines 发现在delphi调试器中会阻塞在:

    战神伽罗
  • H5 App调试方法参考H5调试常见方法chrome developer tools模拟器GapDebugweinrespy-debugger代理总结

    相较于pc端,移动端调试要更加丰富一些,下面对调试的方法进行简单汇总。 主要分为以下几点:

    一个会写诗的程序员
  • 64位内核开发第五讲,调试与反调试

    debugport是在EPROCESS结构中的.调试时间会通过DebugPort端口将调试事件发送给ring3进行调试的.如果设置为0.则ring3就无法进行调...

    IBinary
  • 移动端网页调试

    还有还有,有哪位大佬推荐下前端开发的工作吗,base广州啊,不胜感激~关于我请戳blog下的resume.png?

    嘉明
  • tomcat远程调试javaweb

      当把一个本地项目部署到远程服务器后有可能出现意想不到错误,这个时候通过远程调试能够更清楚的找到bug所在位置。

    用户2038589
  • 64位内核开发第五讲,调试与反调试

    debugport是在EPROCESS结构中的.调试时间会通过DebugPort端口将调试事件发送给ring3进行调试的.如果设置为0.则ring3就无法进行调...

    战神伽罗

作者介绍

腾讯云开发TCB

腾讯科技有限公司云开发(TCB)团队

腾讯科技有限公司 · 云开发(TCB)团队 (已认证)

精选专题

活动推荐

扫码关注云+社区

领取腾讯云代金券