System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于浏览器的Serverless代码在线调试方法技术_技高网

基于浏览器的Serverless代码在线调试方法技术

技术编号:40260657 阅读:7 留言:0更新日期:2024-02-02 22:51
本发明专利技术提供基于浏览器的Serverless代码在线调试方法,包括用户在进行调试前先打开浏览器的开发者工具,并在用户端代码处打上断点;该用户打开一个真实的在线开发调试请求,基于浏览器的虚拟机启动Web Container容器服务后,通过浏览器的Service Worker工作线程将开发调试请求转发到Web Container容器;基于Web Container容器执行NodeJs服务端代码。本发明专利技术通过借助于在线断点调试,免去用户本地安装环境的复杂步骤,同时又提供了快速的开发环境准备,从而让开发者在断点开发调试体验上有很大提升。

【技术实现步骤摘要】

本专利技术涉及web开发,具体为基于浏览器的serverless代码在线调试方法。


技术介绍

1、在常见的web开发过程中,用户将服务端代码运行在本地或者服务器上。

2、当用户遇到不可预知的结果或者想知道客户端请求时发送的具体参数时,用户一般可以通过打印中间过程变量的方法来得知。

3、如果是本地开发用户可以借助ide工具进行断点,这样当请求过来的时候,用户程序的运行将中断在用户之前断点的位置,并可以手动控制接下来程序的运行过程。

4、在这个过程中可以通过步进、进入到执行函数内部、跳过当前函数等方法帮用户定位到运行时的各种参数,进而找出程序运行的bug或查看请求参数等。

5、程序员常用的开发工具如eclipse、intellij idea、vscode等都提供代码断点功能,可以帮助开发者调试各种服务端程序,如java、c++、go、nodejs等。而对于前端开发者来说,则主要依靠浏览器的开发者工具(developertool)进行断点调试。

6、近来流行的无服务(serverless)开发方式则与上述传统开发模式有所不同。

7、serverless的全称是 serverless computing无服务器运行,又被称为函数即服务(function-as-a-service,缩写为faas),是云计算的一种模型。以平台即服务(paas)为基础,无服务器运算提供一个微型的架构,终端客户不需要部署、配置或管理服务器服务,代码运行在所需要的服务器服务皆由云端平台来提供。而用户编写或上传的函数执行逻辑由事件触发,事件可以是http请求、定时任务、文件上传等。

8、因为代码运行在远程服务器,而用户一般又没有远程服务器的登录权限,所以serverless开发模式下要进行断点调试将非常困难,简单的方式是通过开发时添加各种日志来查看,更好的方式是提供命令行工具在本地模拟无服务的运行环境,实现本地调试。例如阿里云提供的fun工具可以执行fun local start --debug 3000 -config vscode进行本地模拟,其他云厂商也有类似的方案。

9、现有的serverless调试方案中,第1种是在线打日志,第2种是本地模拟。

10、第1种方案对开发者来说相对简单,且可以查看真实请求的参数,但打日志始终无法像断点那样可以准确清楚地查看程序的详细运行逻辑。

11、第2种本地模拟的方案虽然可以像传统的本地开发一样进行断点调试,但是需要用户安装一定的模拟环境,且无法查看真实的客户请求只是模拟。

12、因此,为解决上述2种方案中的不足,亟需提出了一种综合2种方案优点的新方法,即,在浏览器中借助浏览器的开发者工具进行在线断点调试的方法。


技术实现思路

1、针对现有技术存在的不足,本专利技术目的是提供基于浏览器的serverless代码在线调试方法,通过借助于在线断点调试,具备免去用户本地安装环境的复杂步骤的优点,同时,通过借助于本地代理工具,使得开发者可以在本地直接调用serverless云函数,为开发提供更多的可扩展性。解决上述
技术介绍
中提出的问题。

2、为了实现上述目的,本专利技术是通过如下的技术方案来实现:基于浏览器的serverless代码在线调试方法,包括以下步骤:

3、s1、用户在进行调试前先打开浏览器的开发者工具,并在用户端代码处打上断点;

4、s2、该用户打开一个真实的在线开发调试请求,基于所述浏览器的虚拟机启动webcontainer容器服务后,通过浏览器的service worker工作线程将所述开发调试请求转发到web container容器;

5、s3、基于所述web container容器执行nodejs服务端代码,具体方式为:

6、所述用户端代码被serverless服务调用后将被开发者工具中断,开始进入调试模式;

7、调试完成后,再反向一层层返回给用户端,至此完成整个调试过程。

8、与现有技术相比,本专利技术的有益效果:

9、1. 本专利技术通过借助于在线断点调试,免去用户本地安装环境的复杂步骤,同时又提供了快速的开发环境准备,从而让开发者在断点开发调试体验上有很大提升;

10、2. 由于大部分开发者都已经熟悉了浏览器的调试方法,因此借助于浏览器开发者工具的调试体验,对于开发者来说无额外的学习成本;

11、3. 由于wasm自身的隔离性和安全性,本专利技术方案的安全性更高;同时,由于是借助于本地代理工具,因此本专利技术可以在本地直接调用serverless云函数,从而为开发提供更多的可扩展性。

本文档来自技高网...

【技术保护点】

1.基于浏览器的Serverless代码在线调试方法,其特征在于:包括以下步骤:

2.根据权利要求1所述的基于浏览器的Serverless代码在线调试方法,其特征在于:

3.根据权利要求2所述的基于浏览器的Serverless代码在线调试方法,其特征在于:

4.根据权利要求3所述的基于浏览器的Serverless代码在线调试方法,其特征在于:当iframe页面与代理工具建立websocket连接后,所述Web Container容器才执行NodeJs服务端代码,完成整个调试过程,其具体方式为:

5.根据权利要求2所述的基于浏览器的Serverless代码在线调试方法,其特征在于:所述代理工具实现用户本地可以访问Web Container容器中NodeJs服务提供的Web服务的通讯方式包括:websocket连接通讯和HTTP长连接通讯。

【技术特征摘要】

1.基于浏览器的serverless代码在线调试方法,其特征在于:包括以下步骤:

2.根据权利要求1所述的基于浏览器的serverless代码在线调试方法,其特征在于:

3.根据权利要求2所述的基于浏览器的serverless代码在线调试方法,其特征在于:

4.根据权利要求3所述的基于浏览器的serverless代码在线调试方法,其特征在于:当iframe页面...

【专利技术属性】
技术研发人员:郭志强
申请(专利权)人:图灵人工智能研究院南京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1