对基于无服务器框架开发的应用进行调试的方法和系统技术方案

技术编号:39601253 阅读:15 留言:0更新日期:2023-12-03 20:01
本公开涉及对基于无服务器框架开发的应用进行调试的方法和系统。该方法包括:启动本地调试进程;将代理函数部署到无服务器框架中,所述代理函数被配置为能够捕获云上的触发事件,并将与所捕获的触发事件相关的信息发送到本地调试进程;和由本地调试进程基于接收到的所述信息在本地调用与所述触发事件相对应的用户函数,从而对所调用的用户函数进行调试。试。试。

【技术实现步骤摘要】
对基于无服务器框架开发的应用进行调试的方法和系统


[0001]本公开涉及对应用的调试,具体地涉及对基于无服务器框架开发的应用进行调试的方法、计算机程序产品、计算机可读介质、计算机系统以及设备。

技术介绍

[0002]近年来,在云计算的基础上进一步发展出了无服务器(Serverless)。在无服务器架构下,开发者只需要专注于核心的业务和代码,而无需管理和运营基础设施(例如,服务器等)。一般地,无服务器架构可以例如作为FaaS(Function as a Service,函数即服务)和BaaS(Backend as a Service,后端服务)来实现。
[0003]无服务器框架能够帮助用户摆脱基础设施管理,从而可以大大缩短开发周期,并降低开发和运营成本。此外,无服务器框架下,底层基础架构可以根据实际业务需求而自动伸缩。进一步地,无服务器框架还具有支持按照算力的实际使用量进行支付,以及高可用性及安全性等优势。

技术实现思路

[0004]本公开旨在提供用于对基于无服务器框架开发的应用进行调试的方法、计算机程序产品、计算机可读介质、计算机系统以及设备。
[0005]根据本公开一些实施例,提供一种对基于无服务器框架开发的应用进行调试的方法,所述方法包括:启动本地调试进程;将代理函数部署到无服务器框架中,所述代理函数被配置为能够捕获云上的触发事件,并将与所捕获的触发事件相关的信息发送到本地调试进程;和由本地调试进程基于接收到的所述信息在本地调用与所述触发事件相对应的用户函数,从而对所调用的用户函数进行调试。
[0006]根据本公开一些实施例,该方法还可以包括:预先存储用户函数信息,其中,所述用户函数信息至少包括:要调试的一个或多个用户函数的类名、方法名和参数列表,以及一个或多个触发事件与所述一个或多个用户函数之间的对应关系,由所述本地调试进程基于接收到的与所捕获的触发事件相关的信息、根据所述用户函数信息调用与所述触发事件相对应的用户函数。
[0007]根据本公开一些实施例,该方法还可以包括由所述本地调试进程将从所述代理函数接收到的信息中包括的与要调用的用户函数相关的一个或多个参数转换为与该用户函数相匹配的参数类型。
[0008]根据本公开一些实施例,所述代理函数经由超文本传输协议HTTP服务或消息队列与所述本地调试进程进行通信。
[0009]根据本公开一些实施例,该方法还可以包括由所述本地调试进程向所述代理函数反馈与所调用的用户函数的运行结果相关的信息,和由所述代理函数将与所调用的用户函数的运行结果相关的信息发送回云上的与触发事件相关的事件源。
[0010]根据本公开一些实施例,所述触发事件包括对云上的一个或多个应用编程接口
API中的任一API的访问,并且其中,所述方法进一步包括:将一个或多个API资源部署到云上的API服务中;和将所述一个或多个API的后端指向所述代理函数,使得当所述一个或多个API中的任一API被访问时,访问请求通过该API发送到所述代理函数,进而发送到所述本地调试进程。
[0011]根据本公开一些实施例,所述触发事件包括满足一个或多个定时计划任务中的任一定时计划任务,并且其中,所述方法进一步包括:为所述代理函数配置一个或多个定时计划任务,使得当所述一个或多个定时计划任务中的任一定时计划任务被满足时,将至少指示该定时计划任务的信息发送到所述本地调试进程。
[0012]根据本公开一些实施例,所述触发事件包括满足一个或多个触发器中的任一触发器的触发条件,并且其中,所述方法进一步包括:向所述代理函数配置一个或多个触发器,使得当满足所述一个或多个触发器中的任一触发器的触发条件时,将至少指示该触发器的信息发送到所述本地调试进程。
[0013]根据本公开一些实施例,无服务器框架是阿里云或亚马逊AWS云提供的无服务器框架
[0014]根据本公开一些实施例,提供一种用于对基于无服务器框架开发的应用进行调试的计算机程序产品,所述计算机程序产品包括计算机可执行指令,当所述计算机可执行指令被处理器执行时,使得所述处理器执行如上所述的方法。
[0015]根据本公开一些实施例,提供一种存储有计算机可执行指令的计算机可读介质,当所述计算机可执行指令被处理器执行时,使得所述处理器执行如上所述的方法。
[0016]根据本公开一些实施例,提供一种对基于无服务器框架开发的应用进行调试的计算机系统,所述计算机系统包括处理器和存储有计算机可执行指令的存储器,当所述计算机可执行指令被所述处理器执行时,使所述处理器执行如上任一项所述的方法。
[0017]根据本公开一些实施例,提供一种对基于无服务器框架开发的应用进行调试的设备,所述设备包括执行如上任一项所述的方法的装置。
附图说明
[0018]通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
[0019]图1示出了根据本公开实施例的示意性架构图。
[0020]图2示出了根据本公开实施例的对基于无服务器框架开发的应用进行调试的方法的流程图。
[0021]图3示出了可以实现根据本公开实施例的设备的一般硬件环境的示意图。
具体实施方式
[0022]提供以下描述以使得本领域的技术人员能够实现和使用所述实施例,并且以下描述是以特定应用及其要求的上下文提供的。各种修改形式对于本领域的技术人员而言将是显而易见的,并且本文中所限定的一般性原则可应用于其他实施例和应用程序,而不脱离所述实施例的实质和范围。因此,所述实施例不限于所示出的实施例,而是要被赋予符合本
文所公开的原理和特征的最宽泛的范围。
[0023]在本文中,术语“调试”与“测试”可以广义地理解为在整个开发过程中的任何适当时间例如按照规定的条件运行开发的应用或函数、观察和/或记录运行结果,从而发现/排查错误。在这种广义理解下,术语“调试”与“测试”可互换使用。
[0024]上文已经简单介绍了无服务器框架及其优点。然而,在无服务器框架下,虽然开发者可以方便地编写应用的业务逻辑并上传相应代码来开发应用,但是现有的无服务器框架仅仅提供了针对函数的模拟数据进行本地调试的工具,这种本地调试在调试限制、配置、代码同步、资源消耗以及兼容性等方面存在一些缺点。
[0025]例如,现有的无服务器框架提供的调试工具无法完全模拟实际的生产环境,诸如实际的网络延迟、内存限制之类的限制条件。因此,现有的无服务器框架提供的本地调试环境与实际的云环境可能存在差异,进而可能导致代码在本地调试环境中正常运行,但是在实际的云环境中异常运行。再例如,现有的无服务器框架提供的调试工具仅仅支持本地调试环境下对模拟数据进行调试,但是这种本地调试环境无法集成真实的云环境中的事件信息,从而导致无法实现从函数的触发到运行的全流程调试,例如本地调试无法捕获实际云环境中的触发事件,进而无法测试对与该触发事本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种对基于无服务器框架开发的应用进行调试的方法,其特征在于,所述方法包括:启动本地调试进程;将代理函数部署到无服务器框架中,所述代理函数被配置为能够捕获云上的触发事件,并将与所捕获的触发事件相关的信息发送到本地调试进程;和由本地调试进程基于接收到的所述信息在本地调用与所述触发事件相对应的用户函数,从而对所调用的用户函数进行调试。2.如权利要求1所述的方法,其中,所述方法还包括:预先存储用户函数信息,其中,所述用户函数信息至少包括:要调试的一个或多个用户函数的类名、方法名和参数列表,以及一个或多个触发事件与所述一个或多个用户函数之间的对应关系,由所述本地调试进程基于接收到的与所捕获的触发事件相关的信息、根据所述用户函数信息调用与所述触发事件相对应的用户函数。3.如权利要求1或2所述的方法,其中,所述方法还包括由所述本地调试进程将从所述代理函数接收到的信息中包括的与要调用的用户函数相关的一个或多个参数转换为与该用户函数相匹配的参数类型。4.如权利要求1或2所述的方法,其中,所述代理函数经由超文本传输协议HTTP服务或消息队列与所述本地调试进程进行通信。5.如权利要求1或2所述的方法,其中,所述方法还包括:由所述本地调试进程向所述代理函数反馈与所调用的用户函数的运行结果相关的信息,和由所述代理函数将与所调用的用户函数的运行结果相关的信息发送回云上的与触发事件相关的事件源。6.如权利要求1或2所述的方法,其中,所述触发事件包括对云上的一个或多个应用编程接口API中的任一API的访问,并且其中,所述方法进一步包括:将一个或多个API资源部署到云上的API服务中;和将所述一个或多个API的后端指向所述代理函数,使得当所述一个或多个API中的任一API被访问时,访问请求通过该API发...

【专利技术属性】
技术研发人员:韩松江杨帆
申请(专利权)人:领悦数字信息技术有限公司
类型:发明
国别省市:

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

1