云函数调试方法、装置、计算机设备及存储介质与流程

文档序号:18214043发布日期:2019-07-19 22:30阅读:198来源:国知局
云函数调试方法、装置、计算机设备及存储介质与流程

本发明涉及计算机技术领域,特别是涉及一种云函数调试方法、装置、计算机设备及存储介质。



背景技术:

随着科学技术的飞速发展,各种技术应运而生,云技术则为其中一个应用非常广泛的技术。比如,云技术可以应用于子应用,使得在子应用中使用云能力。为了实现云技术所提供的云能力,需要对云函数进行开发。其中,为了保证云函数的正常运行,对云函数的调试必不可少。

传统方法中,开发者在编写云函数代码后,必须上传部署到云端后才能进行测试。这样一来,每改动一点代码就必须等待上传部署再进行测试验证,整个调试过程比较冗长,导致调试效率比较低。



技术实现要素:

基于此,有必要针对传统方法存在的调试效率比较低的问题,提供一种云函数调试方法、装置、计算机设备及存储介质。

一种云函数调试方法,所述方法包括:

在开发者工具中,接收针对创建至本地的云函数的本地调试指令;

响应于所述本地调试指令,通过所述开发者工具在本地模拟云函数运行环境;

在所述云函数运行环境中,加载所述云函数在本地的代码;

当获取针对所述云函数的调用请求时,执行在本地的所述代码;

根据执行结果,调试所述云函数的所述代码。

一种云函数调试装置,所述装置包括:

调试触发模块,用于在开发者工具中,接收针对创建至本地的云函数的本地调试指令;

运行环境模拟模块,用于响应于所述本地调试指令,通过所述开发者工具在本地模拟云函数运行环境;

加载模块,用于在所述云函数运行环境中,加载所述云函数在本地的代码;

调试模块,用于当获取针对所述云函数的调用请求时,执行在本地的所述代码;根据执行结果,调试所述云函数的所述代码。

一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:

在开发者工具中,接收针对创建至本地的云函数的本地调试指令;

响应于所述本地调试指令,通过所述开发者工具在本地模拟云函数运行环境;

在所述云函数运行环境中,加载所述云函数在本地的代码;

当获取针对所述云函数的调用请求时,执行在本地的所述代码;

根据执行结果,调试所述云函数的所述代码。

一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:

在开发者工具中,接收针对创建至本地的云函数的本地调试指令;

响应于所述本地调试指令,通过所述开发者工具在本地模拟云函数运行环境;

在所述云函数运行环境中,加载所述云函数在本地的代码;

当获取针对所述云函数的调用请求时,执行在本地的所述代码;

根据执行结果,调试所述云函数的所述代码。

上述云函数调试方法、装置、计算机设备及存储介质,可以在开发者工具中即可以发起对创建在本地的云函数的本地调试,通过开发者工具在本地模拟云函数运行环境;在所述云函数运行环境中,加载所述云函数在本地的代码。这样一来,后续如果接收到针对该云函数的调用请求时,则可以直接调用执行所加载的在本地的代码,而不用向云端调用,实现了对云函数的本地调试。由于对云函数在本地进行调试,省去了繁复的在云端的部署,从而提高了云函数的调试效率。

附图说明

图1为一个实施例中云函数调试方法的应用场景图;

图2为一个实施例中云函数调试方法的流程示意图;

图3为一个实施例中本地调试面板的示意图;

图4为一个实施例中本地调试触发入口的界面示意图;

图5为一个实施例中云函数调试方法的架构图;

图6为一个实施例中云函数调试装置的框图;

图7为另一个实施例中云函数调试装置的框图;

图8为一个实施例中计算机设备的框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1为一个实施例中云函数调试方法的应用场景图。参照图1,该应用场景中包括终端110和云服务器120。终端110可以是智能电视机、智能音箱、台式计算机或移动终端,移动终端可以包括手机、平板电脑、笔记本电脑、个人数字助理和穿戴式设备等中的至少一种。

终端110可以运行开发者工具,并在开发者工具中,接收针对创建至本地的云函数的本地调试指令。终端110可以响应于所述本地调试指令,通过所述开发者工具在本地模拟云函数运行环境。终端110可以在所述云函数运行环境中,加载所述云函数在本地的代码;当获取针对所述云函数的调用请求时,执行在本地的所述代码;根据执行结果,调试所述云函数的所述代码。可以理解,在终端110按照本申请实施例中的云函数调试方法调试好云函数的代码之后,即完成了对云函数的测试工作,那么,终端110就可以将调试完毕的云函数的代码上传部署到云服务器120中进行使用,比如,供子应用调用。

图2为一个实施例中云函数调试方法的流程示意图。本实施例主要以该云函数调试方法应用于计算机设备为例进行举例说明,该计算机设备可以为图1中的终端110。参照图2,该方法具体包括如下步骤:

s202,在开发者工具中,接收针对创建至本地的云函数的本地调试指令。

其中,开发者工具(ide,integrateddevelopmentenvironment),是一类辅助开发计算机程序的应用软件。可以理解,开发者工具运行于计算机设备中。

在一个实施例中,开发者工具可以为子应用开发者工具。子应用开发者工具,是对子应用进行开发和调试的开发者工具。需要说明的是,开发者工具并不限定于子应用开发者工具。

子应用,是能够在母应用提供的环境中实现的应用程序。母应用是承载子应用的应用程序,为子应用的实现提供环境。母应用是原生应用程序。原生应用程序是可直接运行于操作系统的应用程序。

云函数,是运行在云端(即云服务器)的代码,无需管理服务器,在开发者工具内编写,上传部署至云端之后即可运行。

可以理解,当开发者工具为子应用开发者工具时,按照本申请各实施例所提供的方法调试完毕的云函数部署在云端之后,能够被子应用调用。

创建至本地的云函数,是指在计算机设备的本地注册创建的云函数。即,针对创建至本地的云函数,在计算机设备的本地中注册有该云函数的代码。可以理解,针对未创建至本地的云函数,无法对其进行本地调试处理,只能通过线上云端调试。

本地调试指令,用于指示在本地调试云函数。

具体地,调试人员可以基于开发者工具的界面,对创建至本地的云函数进行本地调试操作,计算机设备可以在检测到作用于该界面的本地调试操作时,生成针对云函数的本地调试指令。

需要说明的是,本地调试操作所作用于的界面,可以是内嵌于开发者工具的子窗口,也可以是独立的窗口。

可以理解,创建至本地的云函数可以为至少一个。当创建至本地的云函数为多个时,计算机设备可以并发地接收针对多个创建至本地的云函数的本地调试指令。即,可以并发地调试多个创建至本地的云函数。计算机设备也可以仅接收对单个创建至本地的云函数的本地调试指令。即,每次仅调试一个创建至本地的云函数。对此不作限定。

s204,响应于本地调试指令,通过开发者工具在本地模拟云函数运行环境。

其中,云函数运行环境,是为云函数的运行所提供的环境。

可以理解,传统方法是在云端提供云函数运行环境,来对云函数进行调试。而本申请实施例中是通过运行于计算机设备的开发者工具,在计算机设备的本地模拟云函数运行环境,从而实现在计算机设备的本地对云函数进行调试。

具体地,计算机设备可以先通过开发者工具初始化一个云函数的运行环境,然后将云函数运行时环境变量添加至初始化的运行环境中,生成最终的云函数运行环境。其中,云函数运行时环境变量,是指云函数在运行时需要的一些环境参数。

s206,在云函数运行环境中,加载云函数在本地的代码。

其中,云函数在本地的代码,即为云函数在被创建至计算机设备的本地时,在本地注册存储的该云函数的代码。

具体地,计算机设备可以从本地获取本地调试指令所针对的、且已创建至本地的云函数的代码,并在本地模拟的云函数运行环境中,运行加载云函数在本地的代码。

s208,当获取针对云函数的调用请求时,执行在本地的代码。

其中,对云函数的调用请求,用于请求调用云函数以执行云函数的代码。

可以理解,在云函数运行环境中,加载云函数在本地的代码后,后续如果接收到针对该云函数的调用请求时,计算机设备则可以直接调用执行所加载的在本地的代码,而不用向云端调用。

需要说明的是,针对云函数的调用请求方式可以包括多种。

在一个实施例中,针对云函数的调用请求可以包括云函数调试器发起的针对云函数的调用请求。其中,云函数调试器,包括于开发者工具中,用于对云函数的代码进行调试处理。

在一个实施例中,当开发者工具为子应用开发者工具时,针对云函数的调用请求还可以包括子应用模拟器触发的针对云函数的调用请求。需要说明的是,针对云函数的调用请求,还可以由其他方式生成,并不限定于所列举的这两种方式。比如,当开发者工具启动本地调试面板时,还可以由本地调试面板针对云函数发起调用请求。本地调试面板,是用于接收对云函数进行本地调试操作的界面。

其中,子应用模拟器,包括于子应用开发者工具中。子应用模拟器,用于模拟当前开发的子应用在母应用中真实的逻辑表现,对于绝大部分的接口均能够在子应用模拟器上呈现出正确的状态。可以理解,子应用模拟器,相当于模拟在母应用中正常运行子应用时所呈现的状态。

在一个实施例中,在开始执行云函数在本地的代码时,计算机设备可以在云函数调试器中输出开始提示信息。当检测到云函数在本地的代码执行完毕时,计算机设备可以在云函数调试器中输出结束提示信息。可以理解,在代码开始执行和执行完毕后,输出提示信息,能够让调试人员更加快速、准确地把握代码执行进度,从而避免不必要的时间成本的浪费,进而间接提高了云函数调试的效率。

在一个实施例中,计算机设备可以将执行在本地的代码的过程中所产生的用户日志信息输出。可以理解,产生的用户日志信息中包含一定的信息量,对云函数的本地调试起到辅助作用,从而有助于提高云函数调试的准确性。

s210,根据执行结果,调试云函数的代码。

其中,执行结果,是执行云函数在本地的代码所得到的结果。

具体地,计算机设备可以展示执行结果。调试人员可以基于展示的执行结果,判断该云函数的代码是否需要进行调试。计算机设备可以在开发者工具中展示云函数调试器,针对需要调试的云函数的代码,调试人员可以在云函数调试器中输入相应的调试操作指令。计算机设备可以响应于该调试操作指令,对云函数的代码进行相应的调试处理。

在一个实施例中,执行结果,可以包括函数执行耗时和函数调用信息中的至少一种。

其中,函数执行耗时,是指云函数在本地的代码被执行一次所耗费的时间。函数调用信息,用于描述云函数在本地的代码被执行时,所调用的其他云函数的信息。其他云函数包括创建至本地的云函数和云端云函数。

在一个实施例中,函数调用信息可以通过图形、文字或图文结合的方式进行展示。

上述云函数调试方法,可以在开发者工具中即可以发起对创建在本地的云函数的本地调试,通过开发者工具在本地模拟云函数运行环境;在所述云函数运行环境中,加载所述云函数在本地的代码。这样一来,后续如果接收到针对该云函数的调用请求时,则可以直接调用执行所加载的在本地的代码,而不用向云端调用,实现了对云函数的本地调试。由于对云函数在本地进行调试,省去了繁复的在云端的部署,从而提高了云函数的调试效率。

此外,由于云函数的调试,是整个开发过程中的其中一个环节,在提高云函数的调试效率的同时,也相应提高了开发效率。

在一个实施例中,步骤s202包括:在开发者工具中,启动本地调试面板;在本地调试面板中,展示创建至本地的云函数的标识;通过本地调试面板,接收针对展示的标识所对应的云函数的本地调试指令。

其中,本地调试面板,是用于接收对云函数进行本地调试操作的界面。可以理解,本地调试面板可以是内嵌于开发者工具的子窗口,也可以是独立的窗口,对此不做限定。

具体地,计算机设备可以通过本地调试面板,获取创建至本地的云函数的标识,并将所获取的云函数的标识展示在本地调试面板中。调试人员可以基于本地调试面板对展示的标识进行调试相关的操作,以触发计算机设备生成针对所展示的标识所对应的云函数的本地调试指令。

在一个实施例中,调试人员可以从展示的标识中选择一个或多个目标标识,并针对选择的目标标识进行调试相关的操作,以触发计算机设备生成针对目标标识所对应的云函数的本地调试指令。

在一个实施例中,本地调试面板中,可以包括创建至本地的云函数的标识展示区域。其中,标识展示区域,用于展示创建至本地的云函数的标识。可以理解,标识展示区域中可以展示创建至本地的云函数的标识的集合。

在一个实施例中,云函数的标识,包括云函数的名称。在其他实施例中,云函数的标识还可以包括云函数的名称和附加标记。附加标记,是对云函数进行添加的附属标记。可以理解,附加标记,可以包括云函数身份标记和云函数位置标记中的至少一种。云函数身份标记,用于展示强调云函数身份。云函数位置标记,是展示云函数所创建的位置。

在一个实施例中,云函数身份标记,可以包括云形图标。在一个实施例中,云函数位置标记,可以包括本地标记和云端标记。本地标记,用于表示云函数创建至本地。云端标记,用于表示云函数创建至云端。

可以理解,同一个云函数,可以既创建至本地,又创建至云端。所以,针对一个云函数的标识,可以既对应展示本地标记又对应展示云端标记。需要说明的是,由于标识展示区域中展示的是创建至本地的云函数的标识,所以,当该区域中包括云函数位置标记时,那么,针对其中展示的每个云函数的标识都会对应展示一个本地标记,而仅针对也创建至云端的云函数的标识,才对应展示云端标记。

在一个实施例中,本地调试面板中还可以包括云函数展示区域。

其中,云函数展示区域,用于展示所加载的云函数在本地的代码。调用请求控制区域,用于实现针对云函数的调用请求相关的处理。

在一个实施例中,当接收到针对标识展示区域中的云函数的标识的触发操作时,在云函数展示区域对应呈现该云函数在本地的代码。

在一个实施例中,当接收到针对云函数的标识的单击操作时,可以在云函数展示区域打开一个临时的标签。当接收到针对云函数的标识的双击操作时,可以在云函数展示区域打开一个固定的标签。可以理解,临时的标签,是指,临时性的标示云函数被打开,当该云函数的标识不属于选中状态时,则该临时的标签不再显示,而是会显示新的一个被单击选中的云函数的标签。固定的标签,是指云函数的标签能够被固定的显示。可以理解,即使其他云函数的标识被选中,该云函数的标签仍能够显示在云函数展示区域。

在一个实施例中,计算机设备可以响应于对云函数的标签的拖动操作,将标签(tab)拖动到其他标签上以改变标签排序。计算机设备还可以响应于拖动标签到窗口外的操作,以将该云函数以独立窗口的形式进行调试。标签拖动时会展示包含标签、云函数调试器及本地调试面板的截图。

可以理解,这种情况下,在本地调试面板的主窗口中再次打开该云函数的标签时,将不显示调试器和请求控制面板,只显示已弹出的提示及提供展示窗口和收回窗口的操作。在编辑器中对该云函数选择本地调试会自动展示该云函数的独立的调试窗口。

在一个实施例中,本地调试面板还可以用于接收针对云函数的调用相关处理的指令,本地调试面板可以根据该指令生成针对云函数的调用请求。具体地,本地调试面板中可以提供调用请求控制区域,调试人员可以在该调用请求控制区域中进行与云函数调用相关的操作,以输入针对云函数的调用相关处理的指令。在一个实施例中,与云函数调用相关的操作,包括输入云函数调用请求参数。

需要说明的是,本地调试面板中包括的各区域(比如,标识展示区域、云函数展示区域和调用请求控制区域)的大小可以缩放。计算机设备在接收到缩放指令时,可以将该缩放指令所针对的区域进行相应的缩放处理,以改变该区域的大小。比如,可以在进行云函数的调用相关处理时,放大调用请求控制区域,以便获取更大的空间进行操作。

在一个实施例中,本地调试面板中还可以包括自动热重载的开关,若选择开启该自动热重载的开关,则当云函数本地文件发生变更时,将自动热重载本地云函数,方便用户边调试边改代码。

在一个实施例中,在本地调试面板中还可以自定义地设置函数执行时的时限。当设为0则表示无限时。

图3为一个实施例中本地调试面板的示意图。参照图3,302即为标识展示区域,里面展示了创建至本地的云函数的标识,比如,“aa”、“aatest”即分别为创建至本地的云函数的名称,“aa”前面的云形图标,即为附加标记,用于表明“aa”属于云函数的身份。云函数“aa”则对应本地标记l和云端标记c,说明云函数“aa”既创建至本地又创建至云端,304即为云函数展示区域,306即为调用请求控制区域。

上述实施例中,通过在开发者工具中启动的本地调试面板,接收对云函数的本地调试指令,从而实现在本地对云函数的调试处理,提高了调试效率。此外,通过专门的本地调试面板,能够更集中地对云函数进行本地调试处理操作,省去了繁复的切换操作,避免了系统在切换上所造成的资源浪费,进一步地提高了对云函数的调试效率。

在一个实施例中,所述在开发者工具中,启动本地调试面板包括:在开发者工具中,展示针对云函数的本地调试触发入口;在获取对所述本地调试触发入口的触发指令后,启动本地调试面板。

其中,本地调试触发入口,用于触发启动本地调试面板。

可以理解,计算机设备可以在开发者工具中,直接展示该本地调试触发入口。计算机设备也可以在检测到针对开发者工具做出的预设指定操作之后,展示该本地调试触发入口。

具体地,调试人员可以对该本地调试触发入口进行触发,计算机设备可以获取该触发指令,并响应于该触发指令,启动本地调试面板。

在一个实施例中,在开发者工具中,展示针对云函数的本地调试触发入口包括:在开发者工具中展示云函数目录;当检测到针对所述云函数目录中的总目录或所述云函数目录中的云函数根目录的指定操作时,展示针对云函数的本地调试触发入口。

其中,云函数目录,是开发者工具中所开发的云函数的目录信息。可以理解,云函数目录包括总目录和各云函数根目录。总目录,是云函数目录中最高层级的目录。云函数根目录是总目录的下级目录。

具体地,计算机设备可以获取在开发者工具中开发的云函数的信息,根据开发的云函数的信息生成云函数目录,并将云函数展示于开发者工具中的编辑器中。调试人员可以对云函数目录进行指定操作,计算机设备在检测到该指定操作时,可以触发展示针对云函数的本地调试触发入口。其中,编辑器,包括于开发者工具中,用于编辑代码。

在一个实施例中,指定操作包括右键点击云函数目录。可以理解,在其他实施例中,指定操作还可以包括对云函数目录拖拽或长按等操作。对此不做限定。

在一个实施例中,计算机设备可以在检测到该指定操作时,触发生成选项集合并展示在开发者工具中,该选项集合中包括对应于本地调试触发入口的选项。当接收到针对该选项的触发指令时,计算机设备则可以触发该选项对应的本地调试触发入口,以启动本地调试面板。

在一个实施例中,调试人员可以对云函数目录中的总目录进行指定操作,计算机设备在检测到该指定操作时,可以触发展示针对云函数的本地调试触发入口。在另一个实施例中,调试人员可以对云函数目录中的云函数根目录进行指定操作,计算机设备在检测到该指定操作时,可以触发展示针对云函数的本地调试触发入口。

图4为一个实施例中本地调试触发入口的界面示意图。参照图4,是以开发者工具为子应用开发者工具为例进行说明。在开发者工具的编辑器中展示云函数目录402,右键点击其中一个云函数“miniprogram”,则触发生成选项集合,圆形区域404是选项集合中的部分选项的放大图。从圆形区域404中可见,选项集合中包括“本地调试”选项,该“本地调试”选项即对应本地调试触发入口。调试人员可以对该调试触发入口进行触发操作,即可启动图3所示的本地调试面板。

上述实施例中,在开发者工具中,展示针对云函数的本地调试触发入口,以触发启动本地调试面板对云函数进行本地调试,即在开发者工具中就能实现对云函数的调试处理,提高了调试效率。此外,在开发者工具中,展示针对云函数的本地调试触发入口,通过能够快速地启动本地调试面板,从而提高调试效率。

在一个实施例中,该方法还包括:通过开发者工具启动本地调试服务程序;根据本地调试服务程序,初始化本地服务器;在所述本地服务器中创建本地的云函数。本实施例中,在本地调试面板中,展示创建至本地的云函数的标识包括:从本地服务器获取创建的云函数的标识,并展示于本地调试面板中。

其中,本地调试服务程序,是设置于开发者工具中的、且用于对云函数进行本地调试处理的程序。

具体地,计算机设备可以通过开发者工具启动本地调试服务程序,可以根据本地调试服务程序,在该计算机设备的本地初始化一个本地服务器。

可以理解,开发者工具可以与初始化的本地服务器之间进行交互。具体地,开发者工具可以向本地调试服务程序发起云函数的创建请求,本地调试服务程序会将创建请求中所指定创建的云函数,在本地服务器中进行注册创建。即,本地调试服务程序可以将指定创建的云函数的代码,挂载到本地服务器中,以实现在本地服务器中创建该云函数。

在一个实施例中,本地调试服务程序在接收到云函数的创建请求时,可以检查该创建请求中所指定创建的云函数的合法性,当合法性检查通过时,再将该云函数在本地服务器中进行注册创建。

可以理解,本地调试服务程序可以向开发者工具发送创建结果。开发者工具在接收到创建成功的创建结果之后,可以再执行在开发者工具中,启动本地调试面板的步骤。在启动本地调试面板之后,本地调试面板可以自动连接本地服务器,从本地服务器中拉取已创建至本地的云函数的标识,并将拉取的云函数的标识展示于本地调试面板中。

在其他实施例中,也可以在开发者工具中,启动本地调试面板之后,执行通过开发者工具启动本地调试服务程序的步骤,对此不作限定。

需要说明的是,开发者工具可以与初始化的本地服务器之间的交互并不仅限于云函数的创建处理。开发者工具可以向本地调试服务程序发送云函数管理请求,该云函数管理请求除了包括在本地创建云函数的请求之外,还可以包括查询或删除云函数的请求。本地调试服务程序可以根据该云函数管理请求在本地服务器中对云函数进行相应的管理处理。

上述实施例中,通过本地调试服务程序,初始化本地服务器,以实现在本本地创建云函数,为对云函数的本地调试提供了先决条件,从而能够针对创建至本地的云函数实现本地调试处理,提高了调试效率。

在一个实施例中,所述通过本地调试面板,接收针对展示的标识所对应的云函数的本地调试指令包括:获取从展示的标识中选择的目标标识;对应于所述目标标识展示本地调试开关;当检测到针对所述本地调试开关的开启操作时,则生成针对所述目标标识所对应的云函数的本地调试指令。

其中,目标标识,是待调试的云函数的标识。本地调试开关,用于控制是否针对云函数开启本地调试处理。对应于目标标识的本地调试开关,用于控制是否对所对应的目标的云函数开启本地调试处理。

可以理解,本地调试开关包括本地调试开启状态和本地调试关闭状态这两种状态。本地调试开启状态,用于表示开启对云函数的本地调试处理。本地调试关闭状态,用于表示关闭对云函数的本地调试处理,即不对云函数进行本地调试处理。

具体地,调试人员可以从本地调试面板中展示的云函数的标识中,选择目标标识。计算机设备可以获取所选择的目标标识,并对应于该目标标识展示本地调试开关。调试人员可以对本地调试开关进行开启操作,计算机设备在检测到该开启操作时,可以将本地调试开关调整至本地调试开启状态,并触发生成针对目标标识所对应的云函数的本地调试指令。

可以理解,选择的目标标识可以为至少一个。

在一个实施例中,本地调试开关,可以是用于开启本地调试的复选框(checkbox)。可以理解,当检测到针对该复选框的选择操作时(相当于检测到对本地调试开关的开启操作),计算机设备则可以触发生成针对目标标识所对应的云函数的本地调试指令。在其他实施例中,本地调试开关还可以是能够两端切换的滑动条或按钮。其中,滑动条或按钮的一端对应本地调试开启状态,另一端对应本地调试关闭状态。

为了便于理解本地调试开关,现结合图3进行解释说明。参照图3中的“开启本地调试”的复选框,即为本地调试开关,通过对该复选框进行勾选,则可以触发生成针对目标标识所对应的云函数的本地调试指令。

需要说明的是,本实施例中,对一个云函数所对应的本地调试开关进行开启操作之后,相当于对该创建至本地的云函数开启了本地调试功能,这种情况下,在获取到针对该云函数的调用请求,才会执行该云函数在本地的代码,如果没有开启本地调试功能,则对该云函数的调用请求,会从云端调用该云函数。

在一个实施例中,当生成针对所述目标标识所对应的云函数的本地调试指令之后,在开发者工具中的调试器中可以自动打开云函数入口文件,方便用户打开入口文件开始断点调试。云函数入口文件,用于描述需要打开哪个文函数的文件。在开发者工具中,也可以自动打开面板下的侧边栏目录树定位到入口文件,方便用户快速找到函数相关文件。

在一个实施例中,在检测到针对所述本地调试开关的开启操作之后,计算机设备可以检查是否有安装依赖的模块,并在没有时给出警告提示。

在一个实施例中,当没有设置需要安装的依赖的模块的node.js路径时,计算机设备可以默认取系统环境变量中的node.js路径。node.js路径,用于描述需要安装的依赖的模块的位置。调试人员可以在输入框中输入展示node路径,下方展示相应node版本号。计算机设备可以对输入框中所输入的路径和node版本号进行监测,以监测其合法性。

上述实施例中,通过本地调试开关,能够灵活、准确地控制是否对云函数进行调试处理,提高了调试控制的准确性。

在一个实施例中,该方法还包括:在所述本地调试面板中显示请求方式选项集合;当从请求方式选项集合中选中的选项为手动触发选项时,则展示请求参数配置区;获取在所述请求参数配置区中输入的请求参数;根据输入的所述请求参数生成针对所述云函数的调用请求。

其中,请求方式选项,是请求方式的可视化表示。请求方式,是指触发针对云函数的调用请求的方式。请求方式选项集合中包括至少一个请求方式选项。

请求方式选项集合中包括手动触发选项。手动触发,是指手动地作用于本地调试面板以触发生成针对云函数的调用请求的方式。请求参数配置区,用于配置生成云函数的调用请求的请求参数。

具体地,调试人员可以在请求参数配置区中输入请求参数,计算机设备获取输入的请求参数,并根据请求参数生成针对所述云函数的调用请求。

可以理解,请求参数配置区包含于调用请求控制区域。为了便于理解,现结合图3进行解释说明。参见图3,调用请求控制区域306中的306a即为请求参数配置区。当选择的请求方式选项为“手动触发”选项后,可以在请求参数配置区306a中输入请求参数。调试人员可以在请求参数输入完毕后,点击“调用”按钮306b,以通过本地调试面板向云函数“openapi”发起调用请求。

在一个实施例中,当开发者工具为子应用开发者工具时,请求方式选项集合中除了包括手动触发选项以外还可以包括模拟器触发选项。当从请求方式选项集合中选中的选项为模拟器触发选项时,则展示模拟器操作提示。

其中,模拟器触发选项,用于表示模拟器触发的方式。模拟器触发,是指通过子应用模拟器触发生成针对云函数的调用请求的方式。模拟器操作提示,用于提示调试人员到模拟器进行与生成云函数的调用请求相关的触发操作。可以理解,当选中的选项为模拟器触发选项时,可以不展示请求参数配置区,而仅展示模拟器操作提示,也可以保留请求参数配置区的展示。

在一个实施例中,本地调试面板可以校验输入的请求参数的合法性。在一个实施例中,本地调试面板中还提供模板保存入口,当检测到对该模板保存入口的触发操作时,则可以将该请求参数保存为模板,供以后直接拉取使用。可以理解,初次保存可以弹出初始化模板保存位置的提示信息。

上述实施例中,通过设置请求参数配置区,能够接收自定义的请求参数,从而能够更加灵活地、更加充分地对云函数进行调用,进而,根据充分、合适的调用,能够提高云函数调试的准确性。

在一个实施例中,所述开发者工具,为子应用开发者工具;该方法还包括:在所述本地调试面板中,展示模拟调用方式选项的集合;所述集合中包括子应用调用选项。本实施例中,所述根据输入的所述请求参数生成针对所述云函数的调用请求包括:当检测到针对所述子应用调用选项的选择操作时,根据输入的所述请求参数,生成子应用针对所述云函数的调用请求。本实施例中,所述当获取针对所述云函数的调用请求时,执行在本地的所述代码包括:通过执行在本地的所述代码,获取所述子应用的母应用的上下文内容。

其中,模拟调用方式,是指模拟调用云函数的方式。可以理解,模拟调用方式,用于表示调用云函数的对象,即表示谁来调用云函数。

模拟调用方式选项的集合中包括子应用调用选项。子应用调用选项,用于表示从子应用端调用云函数。在一个实施例中,模拟调用方式选项还可以包括云函数调用选项。

具体地,当从请求方式选项集合中选中的选项为手动触发选项时,在所述本地调试面板中还可以展示模拟调用方式选项的集合。调试人员可以从模拟调用方式选项的集合中选择选项,当检测针对所述子应用调用选项的选择操作时,计算机设备则可以由本地调试面板根据输入的所述请求参数,生成子应用针对所述云函数的调用请求。计算机设备可以通过本地调试面板将该调用请求发送至本地调试服务程序,以使本地调试服务程序执行该云函数在本地服务器创建的代码,并通过执行该代码,获取该子应用的母应用的上下文内容。在一个实施例中,母应用的上下文内容可以包括openid。openid是母应用中唯一对应用户身份的标识。

在一个实施例中,模拟调用方式选项还可以包括云函数调用选项。当检测到针对云函数调用选项的选择操作时,本地调试面板则可以根据输入的所述请求参数,生成另外的云函数针对该云函数的调用请求。计算机设备可以通过本地调试面板将该调用请求发送至本地调试服务程序,以使本地调试服务程序执行该云函数在本地服务器创建的代码。

同样可以结合图3进行解释说明。参见图3,“模拟”那一栏对应了“从小程序端调用”(即选中了子应用调用选项,可以理解,小程序是子应用的通俗叫法)。这样一来,则可以从子应用向云函数发起调用请求。

上述实施例中,能够自定义地模拟子应用对云函数的调用,使得调用更加的充分,减少了调试盲点,从而提高调试准确性。此外,通过子应用调用云函数,能够直接获取子应用的母应用的上下文内容,从而节省了相应的操作,提高了效率。

在一个实施例中,步骤s204包括:在所述开发者工具中,启动本地调试服务程序;通过所述本地调试服务程序,初始化云函数的运行环境;将云函数运行时环境变量添加至初始化的所述运行环境中,得到在本地模拟的云函数运行环境。

其中,云函数运行时环境变量,是指云函数在运行时需要的一些环境参数。

具体地,计算机设备可以通过本地调试服务程序,先创建一个初始化的云函数的运行环境,然后将云函数运行时环境变量放入初始化的所述运行环境中,得到在本地模拟的最终的云函数运行环境。

上述实施例中,将云函数运行时环境变量添加至初始化的所述运行环境中,能够在本地更加准确地模拟云函数运行环境。

在一个实施例中,步骤s206包括:在所述云函数运行环境中,加载所述云函数在本地的代码至云函数实例模板中,创建本地云函数实例。本实施例中,所述当获取针对所述云函数的调用请求时,执行在本地的所述代码包括:通过所述本地云函数实例,获取针对所述云函数的调用请求;响应于所述调用请求,执行所述本地云函数实例中的所述代码。

其中,云函数实例,实质上是用于实现云函数功能的进程。其中,云函数实例模板,是初始的模板化的云函数实例。可以理解,在云函数实例模板注入云函数的代码,才能得到最终的云函数实例。本地云函数实例,是在本地创建的云函数实例。

具体地,计算机设备可以通过本地调试服务程序,创建云函数实例模板,在所述云函数运行环境中,加载所述云函数在本地的代码至云函数实例模板中,从而创建得到本地云函数实例。针对云函数的调用请求,则会调用到本地云函数实例,即,通过所述本地云函数实例,获取针对所述云函数的调用请求。本地云函数实例可以处理该调用请求,执行所述本地云函数实例中的所述代码。

上述实施例中,在云函数运行环境中创建本地云函数实例,进而能够在接收到针对云函数的调用请求时,皆调用该本地云函数实例,而不用走线上调用,进而能够提高调试效率。

在一个实施例中,该方法还包括:建立本地云函数实例与本地调试面板之间的连接;基于连接,在本地调试面板中展示本地云函数实例中的代码;获取针对展示的代码添加的调试断点标记。本实施例中,响应于调用请求,执行本地云函数实例中的代码包括:响应于调用请求,按照调试断点标记,执行本地云函数实例中的代码。

其中,调试断点标记,是调试断点的标记,用于在云函数的代码中标记出调试的断点位置。断点,可以让程序中断在需要的地方,从而方便其分析。

具体地,本地云函数实例可以启动调试模式,暴露该本地云函数实例的本地调试链接地址。计算机设备可以通过本地调试面板连接该本地调试链接地址,以建立本地调试面板和本地云函数实例之间的连接。

在一个实施例中,本地云函数实例可以暴露基于websocket协议(websocket是一种在单个tcp连接上进行全双工通信的协议)的本地调试链接地址。计算机设备可以通过本地调试面板连接该本地调试链接地址。在一个实施例中,本地调试面板可以基于浏览器开发者工具连接该本地调试链接地址。在一个实施例中,浏览器开发者工具可以是chromedevtools(即chrome开发者工具,是内嵌在chrome浏览器里的一组用于网页制作和调试的工具)。

计算机设备可以基于该建立的连接,在本地调试面板中展示所连接的本地云函数实例中的云函数的代码,从而可以进行代码级别的端点调试处理。调试人员可以在本地调试面板中针对展示的代码添加调试断点标记,计算机设备可以通过本地调试面板获取针对展示的代码添加的调试断点标记。这样一来,当通过本地云函数实例获取针对云函数的调用请求时,计算机设备可以响应于调用请求,按照调试断点标记,执行本地云函数实例中的代码。

上述实施例中,基于本地云函数实例与本地调试面板之间的连接,能够使代码可视化于本地调试面板中,从而在代码级别实现断点调试。进而能够根据断点调试,更加准确地进行调试处理。

图5为一个实施例中云函数调试方法的架构图。参照图5,该架构图包括子应用开发者工具、本地服务器以及本地云函数实例三大组成部分。子应用开发者工具中包括子应用模拟器逻辑层、本地调试面板以及云函数调试器。在一个实施例中,云函数调试器可以为无服务器云函数调试器((serverlesscloudfunction,scf)。云函数调试器可以从云开发平台获取与调试处理相关的密钥信息。然后基于该密钥信息,启动本地调试服务程序以创建本地服务器。具体地,云函数调试器可以在图5的步骤(2)中分别执行启动本地调试服务程序、挂载云函数的代码、设置云函数管理器、设置云函数网关以及暴露云函数管理器的api接口等步骤,从而得到在本地创建了云函数的本地服务器。该本地服务器中包括云函数管理器的api接口服务、云函数管理器以及云函数网关。基于该本地服务器,可以依次创建云函数实例模板并加载,初始化云函数运行环境、打开调试模式、加载创建至本地的云函数的代码至云函数实例模板中,等待指示,从而创建得到本地云函数实例。该本地云函数实例中加载有云函数在本地的代码。本地调试面板可以通过云函数调试器连接本地云函数实例。具体地,云函数调试器可以通过步骤(3)创建浏览器开发者工具(比如,chromedevtools,chromedevtools(chrome开发者工具)是内嵌在chrome浏览器里的一组用于网页制作和调试的工具),并基于浏览器开发者工具连接端口,从而使本地调试面板连接到本地云函数实例,以在本地调试面板展示所述本地云函数实例中的代码,从而进行断点调试。子应用模拟器逻辑层所支持的小程序模拟器和本地调试面板都可以向云函数调试器发起调用请求。其中,小程序模拟器可以经步骤(4)通过子应用模拟器逻辑层路由云函数调用请求至云函数调试器,以发起调用请求,本地调试面板可以经步骤(4)通过界面发送调试调用信息至云函数调试器,以发起调用请求。云函数调试器可以经步骤(5)根据调用请求调用执行本地云函数实例中的代码,并获取执行结果。本地云函数实例中的代码也可以通过云函数网关发起外部请求,以访问外网或者调用创建至本地的其他云函数。除此之外,在步骤(4)中云函数调试器还可以暴露http端口,以保留api给外部浏览器调用,从而使得外部浏览器能够进行云函数管理。

如图6所示,在一个实施例中,提供了一种云函数调试装置600,该装置600包括:调试触发模块602、运行环境模拟模块604、加载模块606以及调试模块608,其中:

调试触发模块602,用于在开发者工具中,接收针对创建至本地的云函数的本地调试指令。

运行环境模拟模块604,用于响应于所述本地调试指令,通过所述开发者工具在本地模拟云函数运行环境。

加载模块606,用于在所述云函数运行环境中,加载所述云函数在本地的代码。

调试模块608,用于当获取针对所述云函数的调用请求时,执行在本地的所述代码;根据执行结果,调试所述云函数的所述代码。

在一个实施例中,调试触发模块602还用于在开发者工具中,启动本地调试面板;在所述本地调试面板中,展示创建至本地的云函数的标识;通过本地调试面板,接收针对展示的标识所对应的云函数的本地调试指令。

在一个实施例中,调试触发模块602还用于在开发者工具中,展示针对云函数的本地调试触发入口;在获取对所述本地调试触发入口的触发指令后,启动本地调试面板。

在一个实施例中,调试触发模块602还用于在开发者工具中展示云函数目录;当检测到针对所述云函数目录中的总目录或所述云函数目录中的云函数根目录的指定操作时,展示针对云函数的本地调试触发入口。

在一个实施例中,该装置600还包括:

创建模块603,用于通过开发者工具启动本地调试服务程序;根据所述本地调试服务程序,初始化本地服务器;在所述本地服务器中创建本地的云函数;调试触发模块602还用于从本地服务器获取创建的云函数的标识,并展示于所述本地调试面板中。

在一个实施例中,调试触发模块602还用于获取从展示的标识中选择的目标标识;对应于所述目标标识展示本地调试开关;当检测到针对所述本地调试开关的开启操作时,则生成针对所述目标标识所对应的云函数的本地调试指令。

如图7所示,在一个实施例中,该装置600还包括:创建模块603和调用控制模块607,其中:

调用控制模块607,用于在所述本地调试面板中显示请求方式选项集合;当从请求方式选项集合中选中的选项为手动触发选项时,则展示请求参数配置区;获取在所述请求参数配置区中输入的请求参数;根据输入的所述请求参数生成针对所述云函数的调用请求。

在一个实施例中,所述开发者工具,为子应用开发者工具。调用控制模块607还用于在所述本地调试面板中,展示模拟调用方式选项的集合;所述集合中包括子应用调用选项;当检测到针对所述子应用调用选项的选择操作时,根据输入的所述请求参数,生成子应用针对所述云函数的调用请求;通过执行在本地的所述代码,获取所述子应用的母应用的上下文内容。

在一个实施例中,运行环境模拟模块604还用于在所述开发者工具中,启动本地调试服务程序;通过所述本地调试服务程序,初始化云函数的运行环境;将云函数运行时环境变量添加至初始化的所述运行环境中,得到在本地模拟的云函数运行环境。

在一个实施例中,运行环境模拟模块604还用于在所述云函数运行环境中,加载所述云函数在本地的代码至云函数实例模板中,创建本地云函数实例;通过所述本地云函数实例,获取针对所述云函数的调用请求;响应于所述调用请求,执行所述本地云函数实例中的所述代码。

在一个实施例中,调试模块608还用于建立所述本地云函数实例与所述本地调试面板之间的连接;基于所述连接,在本地调试面板中展示所述本地云函数实例中的所述代码;获取针对展示的所述代码添加的调试断点标记;响应于所述调用请求,按照所述调试断点标记,执行所述本地云函数实例中的所述代码。

在一个实施例中,调试模块608还用于获取所述本地云函数实例的本地调试链接地址;通过本地调试面板连接所述本地调试链接地址,以建立所述本地调试面板和本地云函数实例之间的连接。

图8为一个实施例中计算机设备的内部结构示意图。参照图8,该计算机设备可以是图1中终端110。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质可存储操作系统和计算机程序。该计算机程序被执行时,可使得处理器执行一种云函数调试方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该内存储器中可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行一种云函数调试方法。计算机设备的网络接口用于进行网络通信。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏等。计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是外接的键盘、触控板或鼠标等。该计算机设备可以是个人计算机、智能音箱、移动终端或车载设备,移动终端包括手机、平板电脑、个人数字助理或可穿戴设备等中的至少一种。

本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,本申请提供的云函数调试装置可以实现为一种计算机程序的形式,计算机程序可在如图8所示的计算机设备上运行,计算机设备的非易失性存储介质可存储组成该云函数调试装置的各个程序模块,比如,图6所示的调试触发模块602、运行环境模拟模块604、加载模块606以及调试模块608。各个程序模块所组成的计算机程序用于使该计算机设备执行本说明书中描述的本申请各个实施例的云函数调试方法中的步骤,例如,计算机设备可以通过如图6所示的云函数调试装置600中的调试触发模块602在开发者工具中,接收针对创建至本地的云函数的本地调试指令。计算机设备可以通过运行环境模拟模块604响应于所述本地调试指令,通过所述开发者工具在本地模拟云函数运行环境。计算机设备可以通过加载模块606在所述云函数运行环境中,加载所述云函数在本地的代码。计算机设备可以通过调试模块608当获取针对所述云函数的调用请求时,执行在本地的所述代码;根据执行结果,调试所述云函数的所述代码。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述云函数调试方法的步骤。此处云函数调试方法的步骤可以是上述各个实施例的云函数调试方法中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述云函数调试方法的步骤。此处云函数调试方法的步骤可以是上述各个实施例的云函数调试方法中的步骤。

需要说明的是,本申请各实施例中的“第一”和“第二”等仅用作区分,而并不用于大小、先后、从属等方面的限定。

应该理解的是,虽然本申请各实施例中的各个步骤并不是必然按照步骤标号指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1