前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >再见,本地环境!腾讯云全球首发:Serverless 在线远程调试

再见,本地环境!腾讯云全球首发:Serverless 在线远程调试

作者头像
腾讯云serverless团队
发布2021-01-07 09:10:30
1K0
发布2021-01-07 09:10:30
举报
文章被收录于专栏:Tencent Serverless 官方专栏

在线调试是云函数为了解决用户在本地搭建调试环境复杂,云上环境不便于定位等问题推出的功能。

云上的各种服务,在本地无法完全模拟,程序员大都遇到过本地和远程环境运行结果不一致的情形,追查起来费时费力,不仅效率低下,也造成非常郁闷的工作体验。

所以,能否直接在远程环境中完成全部的开发流程,是提升开发体验的最直接手段,然而在其他问题都解决后,远程调试功能是最后的一公里。

本篇文章将以一段内存泄漏的代码为例,给大家展示如何使用云函数在线调试功能定位和解决问题。Node10 及以上版本的 runtime,使用 Chrome 浏览器打开云函数控制台,在函数代码页即可看到在线调试的入口。

开启调试模式

使用Chrome浏览器打开函数代码编辑页,可以看到在【远程调试】页。为保障调试的体验,开启调试模式将修改函数的部分配置,包括函数进入单实例模式、函数超时时间修改为900秒等。开启前请务必确认这些调整。

待加载完成后,页面将自动展示入口文件。

找不到需要的文件?

使用快捷键 Cmd + P(Mac)或 Ctrl + P(Windows)可以打开所需要的文件。但大家可能会发现,刚开启调试模式时,打开文件的列表中找不到所需要的文件。这是因为对于动态脚本语言来说,调试器不会加载所有的内容,只会加载执行过的文件。我们先点击测试,让函数运行一次。在运行一次后,我们就可以打开所需要的文件了。

设置断点

在代码前点击即可设置断点,在右上角的工具中可以进行继续执行、跨步执行、单步执行等操作,也可以灵活地启动或禁用断点。

内存泄漏排查 - 内存快照

这部分介绍如何使用内存快照功能排查内存泄漏的问题。内存泄漏的排查方法大致为:找准内存泄漏的时机,在泄漏的前后对内存进行快照,通过对比快照的内容判断内存泄漏的问题点。

首先,我们将调试的窗口切换到 Memory 页面,点击左上方的实心圆形按钮捕捉内存快照。

这样,我们就有了运行前的内存快照。现在我们执行存在内存泄漏的代码。这行代码有一个从未清理的全局缓存,随着调用的增加,越来越占内存。

随后,我们进行第二次内存快照,打开对比页面,通过对Delta值的分析,可以发现 concatenated string 这个部分增加了很多,很有可能有问题。

打开以后,便可以发现内存中多存储了很多“recording time”的数据。

这些重复性的数据也就意味着代码中出现了内存泄漏,在代码中找到相关内容,进行调整,解决内存泄漏的问题。

除了云函数的控制台,也可以使用Serverless Framework Dev 模式开启在线调试的功能。

One More Thing

立即体验腾讯云 Serverless Demo,获取 Serverless 新用户礼包,请在 PC 端访问: serverless.cloud.tencent.com/start?c=wx

欢迎进入千人 QQ 群 (537539545) 交流!

  • GitHub: github.com/serverless
  • 官网: cloud.tencent.com/product/serverless-catalog

没看过瘾?点击「阅读原文」进入 Serverless 中文网,体验更多 Serverless 应用的最佳实践!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ServerlessCloudNative 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 开启调试模式
  • 找不到需要的文件?
  • 设置断点
  • 内存泄漏排查 - 内存快照
  • One More Thing
相关产品与服务
云函数
云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码。您只需使用平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。云函数是实时文件处理和数据处理等场景下理想的计算平台。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档