CN114860480A - 基于Serverless的Web服务代理方法、装置及存储介质 - Google Patents
基于Serverless的Web服务代理方法、装置及存储介质 Download PDFInfo
- Publication number
- CN114860480A CN114860480A CN202210521948.6A CN202210521948A CN114860480A CN 114860480 A CN114860480 A CN 114860480A CN 202210521948 A CN202210521948 A CN 202210521948A CN 114860480 A CN114860480 A CN 114860480A
- Authority
- CN
- China
- Prior art keywords
- web service
- function
- bff
- request
- function event
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/549—Remote execution
Abstract
本申请属于金融领域和云计算领域,具体涉及一种基于Serverless的Web服务代理方法、装置及存储介质。本申请通过在接收到Web服务请求时,确定Web服务请求对应的函数事件,函数事件用于指示待调用的BFF服务层实例的函数入口;通过分析函数事件的上下文,提取Web服务请求中包含的数据结构;将数据结构作为参数,进入函数入口以调用BFF服务层实例,BFF服务层实例用于执行Web服务得到Web服务响应数据;根据Web服务响应数据,确定函数事件响应数据;向Web服务请求的发送方发送函数事件响应数据。本申请可以实现提高BFF服务层的开发效率。
Description
技术领域
本申请涉及金融领域和云计算领域,尤其涉及一种基于Serverless的Web服务代理方法、装置及存储介质。
背景技术
随着前后端分离技术的发展和后端微服务架构的演进,在后端微服务和前端应用中间出现了服务于前端的后端(Backend For Frontend,简称:BFF)服务层,由BFF服务层对后端接口进行聚合、裁剪等处理后再输出给前端。BFF服务层解决了接口协调的问题,但BFF服务层作为新增的服务层,研发阶段的运维方面的技术成本和服务器资源成本大幅提高,运维及成本问题成为BFF服务层应用的瓶颈。而无服务器(Serverless)作为云虚拟机技术、容器技术之后的下一代计算产品形态,具有按需加载、事件驱动、自动弹性伸缩、免运维等特点,正好能够弥补BFF服务层的不足。目前,最常见的Serverless实现方案是函数即服务(FaaS)与后端即服务(BaaS)的结合。
目前,BFF服务层一般基于企业级Web框架搭建,包含许多服务接口。在BFF服务层向函数计算平台(FaaS平台)迁移过程中,若FaaS平台无法兼容企业级Web框架,则BFF服务层的存量服务接口必须利用FaaS平台提供的函数开发规范进行改造,从而导致迁移改造成本较高,不利于存量服务的复用和服务快速迁移,严重影响BFF服务层开发效率。
发明内容
本申请提供一种基于Serverless的Web服务代理方法、装置及存储介质,用以实现在BFF服务层向FaaS平台迁移过程中,提高BFF服务层的开发效率。
第一方面,本申请提供一种基于Serverless的Web服务代理方法,应用于函数计算平台,该基于Serverless的Web服务代理方法包括:在接收到Web服务请求时,确定Web服务请求对应的函数事件,函数事件用于指示待调用的BFF服务层实例的函数入口;通过分析函数事件的上下文,提取Web服务请求中包含的数据结构;将数据结构作为参数,进入函数入口以调用BFF服务层实例,BFF服务层实例用于执行Web服务得到Web服务响应数据;根据Web服务响应数据,确定函数事件响应数据;向Web服务请求的发送方发送函数事件响应数据。
在一种可能的实施方式中,Web服务请求为超文本传输协议http请求,确定Web服务请求对应的函数事件,包括:根据Web服务请求的类型和路径,确定Web服务请求对应的函数事件。
在一种可能的实施方式中,Web服务请求为Kafka请求,确定Web服务请求对应的函数事件,包括:根据Web服务请求的网际互连协议IP地址、日志中心的包名和包的关键字,确定Web服务请求对应的函数事件。
在一种可能的实施方式中,通过分析函数事件的上下文,提取Web服务请求中包含的数据结构,包括:分析函数事件的上下文,获取函数事件中的参数对象;根据参数对象获取Web服务请求的目标参数;将目标参数确定为数据结构。
在一种可能的实施方式中,根据Web服务响应数据,确定函数事件响应数据,包括:根据数据结构对Web服务响应数据进行组装,得到函数事件响应数据。
在一种可能的实施方式中,在接收到Web服务请求之前,还包括:获取BFF服务层实例;存储BFF服务层实例,并将BFF服务层实例注册为函数入口。
第二方面,本申请提供一种基于Serverless的Web服务代理装置,应用于函数计算平台,该基于Serverless的Web服务代理装置包括:函数事件确定模块,用于在接收到Web服务请求时,确定Web服务请求对应的函数事件,函数事件用于指示待调用的BFF服务层实例的函数入口;函数事件接收模块,用于通过分析函数事件的上下文,提取Web服务请求中包含的数据结构;Web服务调用模块,用于将数据结构作为参数,进入函数入口以调用BFF服务层实例,BFF服务层实例用于执行Web服务得到Web服务响应数据;函数事件输出模块,用于根据Web服务响应数据,确定函数事件响应数据;发送模块,用于向Web服务请求的发送方发送函数事件响应数据。
第三方面,本申请提供一种函数计算平台,包括:处理器,以及与处理器通信连接的存储器;存储器存储计算机执行指令;处理器执行存储器存储的计算机执行指令,以实现第一方面的基于Serverless的Web服务代理方法。
第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现如第一方面的基于Serverless的Web服务代理方法。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现第一方面的基于Serverless的Web服务代理方法。
本申请提供的基于Serverless的Web服务代理方法、装置及存储介质,通过将用户提供的BFF服务层实例存储并注册为函数入口,这样函数计算平台就可以以此函数入口对外提供Web服务。当某个Web服务请求发送到函数计算平台后,函数计算平台会确定出该Web服务请求对应的函数事件;然后对该函数事件进行上下文分析,就可以确定出该Web服务请求中包含的数据结构;将该数据结构作为参数调用BFF服务层实例执行对应的Web服务,就可以得到Web服务响应数据;最后按照函数事件的数据结构,将Web服务响应数据组装成函数事件响应数据,向Web服务请求的发送方发送该函数事件响应数据,就可以实现在无需对BFF Web服务进行改造的情况下,将Web服务迁移到函数计算平台,提高了BFF服务层的开发效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的基于Serverless的Web服务代理方法的一种场景示意图;
图2为本申请实施例提供的基于Serverless的Web服务代理方法的流程图;
图3为本申请实施例提供的http请求结构的示意图;
图4为本申请实施例提供的基于Serverless的Web服务代理装置的结构示意图;
图5为本申请实施例提供的一种函数计算平台的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
首先对本申请所涉及的名词进行解释:
Serverless:无服务器,指构建和运行不需要服务器管理的应用程序的概念,允许开发者在服务部署级别来管理应用部署,强调的是一种架构思想和服务模型,让开发者无需关心基础设施(服务器等),而是专注到应用程序业务逻辑上;
FaaS:功能即服务,是一种云计算服务,允许执行代码以响应事件,而无需构建和启动微服务应用程序相关的复杂基础设施;
http(Hyper Text Transfer Protocol,即超文本传输协议)请求:从客户端到服务器端的请求消息,包括消息首行中,对资源的请求方法、资源的标识符及使用的协议。
背景技术中提供的现有技术中,至少存在以下技术问题:
随着前后端分离技术的发展和后端微服务架构的演进,在后端微服务和前端应用中间出现了服务于前端的后端(Backend For Frontend,简称:BFF)服务层,由BFF服务层对后端接口进行聚合、裁剪后再输出给前端,前端逐渐开始向全栈方向转变,形成了基于Node.js的全栈开发模式。BFF服务层的架构虽然解决了接口协调的问题,但BFF服务层作为新增的服务层,除了要求前端工程师具备全栈开发技术储备外,在研发阶段的额外环境部署、并发、网络、硬件、容灾、扩缩容等运维方面的技术成本和服务器资源成本大幅提高,运维及成本问题成为BFF服务层落地应用的瓶颈。
因此,业界发展出了Serverless方案。目前,最常见的Serverless实现方案是函数即服务(FaaS)与后端即服务(BaaS)的结合。作为云虚拟机技术、容器技术之后的下一代计算产品形态,Serverless具有按需加载、事件驱动、自动弹性伸缩、免运维等特点,正好能够弥补传统BFF架构的不足。
目前国内外云厂商的函数计算平台(FaaS平台)都提供函数开发规范,开发者利用handler处理接口的输入参数和输出结果来编写单个云函数。在企业级Web框架支持方面,依赖于云厂商是否提供兼容机制。
BFF服务层一般基于企业级Web框架搭建,包含许多服务接口。在BFF服务层向Serverless函数计算平台迁移过程中,若函数计算平台无法兼容对应企业级Web框架,则BFF服务层的存量服务接口都必须利用函数计算平台提供的函数开发规范进行改造,改造技术成本太高,不利于存量服务的复用和服务快速迁移,严重影响BFF服务层的开发效率,导致无法利用Serverless优势实现业务快速上线发布。
针对上述的问题,本申请提出一种基于Serverless的Web服务代理方法,通过将用户提供的BFF服务层实例存储并注册为函数入口,这样函数计算平台就可以以此函数入口对外提供Web服务,也即,本申请通过统一封装BFF服务层,使BFF服务层的所有Web服务不需改造就能迁移到函数计算平台,减少迁移的技术成本,提高了BFF服务层的开发效率,有利于业务快速上线。
在一种实施例中,可以在一种应用场景中应用该基于Serverless的Web服务代理方法。图1为本申请实施例提供的基于Serverless的Web服务代理方法的一种场景示意图,如图1所示,该基于Serverless的Web服务代理方法可以应用于函数计算平台,该函数计算平台可以包括:入口注册模块、函数事件接收模块、Web服务调用模块和函数事件输出模块。此外,该函数计算平台还可以配置有触发器。
在上述场景中,用户可以提供BFF服务层实例,也即BFF Web服务实例,然后函数计算平台可以通过入口注册模块将用户提供的BFF服务层实例进行存储,并注册为函数入口,这样函数计算平台就可以以此函数入口对外提供Web服务。每个函数入口可以对应一个Web服务。
在上述场景中,当某个Web服务请求,比如http请求,发送到函数计算平台之后,函数计算平台配置的触发器对该http请求进行触发,得到与该http请求对应的函数事件,并使该函数事件进入函数入口,这样入口注册模块就可以向函数事件接收模块发送该函数事件;函数事件接收模块在接收到还函数事件之后,对该函数事件进行上下文分析,提取出http请求中包括的数据结构,得到Web请求数据,并向Web服务调用模块发送该Web请求数据;Web服务调用模块接收到该Web请求数据之后,将该Web请求数据作为参数,向入口注册模块调用BFF服务层实例,由该BFF服务层实例执行其对应的Web服务,得到Web服务响应数据,再向函数事件输出模块发送该Web服务响应数据;函数事件输出模块接收到该Web服务响应数据之后,对该Web服务响应数据进行分析,然后按照http请求对应的函数事件的数据结构,将该Web服务响应数据组装成函数事件响应数据,并向http请求的发送方发送该函数事件响应数据,这样就可以实现不需改造Web服务,就能将Web服务迁移到函数计算平台,从而提高BFF服务层的开发效率。
结合上述场景,下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图2为本申请实施例提供的基于Serverless的Web服务代理方法的流程图,如图2所示,该方法应用于函数计算平台,该方法包括以下步骤:
S201:在接收到Web服务请求时,确定Web服务请求对应的函数事件。
在该步骤中,函数事件用于指示待调用的BFF服务层实例的函数入口。
在上述方案中,函数计算平台可以配置触发器。当函数计算平台接收到Web服务请求时,触发器可以触发该Web服务请求,从而得到该Web服务请求对应的函数事件。其中,Web服务请求与函数事件之间可以存在对应关系,因此,在接收到Web服务请求之后,就可以根据对应关系确定出对应的函数事件。
S202:通过分析函数事件的上下文,提取Web服务请求中包含的数据结构。
在该步骤中,函数事件中包括参数的对象,通过这些参数的对象可以确定出Web服务请求的参数,这些参数即为需要提取的Web服务请求中包含的数据结构。
S203:将数据结构作为参数,进入函数入口以调用BFF服务层实例。
在该步骤中,BFF服务层实例用于执行Web服务得到Web服务响应数据,每个函数入口可以对应一个Web服务。
在上述方案中,BFF服务层实例是通过函数计算平台的入口注册模块存储并注册为函数入口的,函数计算平台在提取出Web服务请求中包含的数据结构之后,可以将该数据结构作为参数,进入对应的函数入口,从入口注册模块中调用函数入口对应的BFF服务层实例,这样BFF服务层实例就可以执行其对应的Web服务得到Web服务响应数据。
S204:根据Web服务响应数据,确定函数事件响应数据。
在该步骤中,可以按照Web服务请求对应的函数事件的数据结构,对Web服务响应数据进行组装或者包装,从而得到函数事件响应数据,这样函数计算平台就可以对外提供Web服务请求响应。
S205:向Web服务请求的发送方发送函数事件响应数据。
在该步骤中,在得到函数事件响应数据之后,就可以向Web服务请求的发送方发送该函数事件响应数据,Web服务请求的发送方根据该函数事件响应数据实现Web服务请求对应的业务功能。
本实施例提供的基于Serverless的Web服务代理方法,当某个Web服务请求发送到函数计算平台后,函数计算平台会确定出该Web服务请求对应的函数事件;然后对该函数事件进行上下文分析,就可以确定出该Web服务请求中包含的数据结构;将该数据结构作为参数调用BFF服务层实例执行对应的Web服务,就可以得到Web服务响应数据;最后按照函数事件的数据结构,将Web服务响应数据组装成函数事件响应数据,向Web服务请求的发送方发送该函数事件响应数据,就可以实现在无需对BFF Web服务进行改造的情况下,将Web服务迁移到函数计算平台,提高了BFF服务层的开发效率。
在一种实施例中,Web服务请求为超文本传输协议http请求,确定Web服务请求对应的函数事件,包括:根据Web服务请求的类型和路径,确定Web服务请求对应的函数事件。
在该方案中,Web服务请求与函数事件之间可以存在对应关系。Web服务请求可以为http请求,在确定http请求对应的函数事件时,可以根据http请求的类型和路径URL,确定对应的函数事件,避免确定函数事件出现错误。
在上述方案中,常见的http请求的类型可以包括如下几种:OPTIONS、HEAD、GET、POST、PUT、DELETE、TRACE、CONNECT等。其中,OPTIONS用于返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送‘*’的请求来测试服务器的功能性;HEAD用于向服务器索求与GET请求相一致的响应,只不过响应体将不会被返回,这一方法可以再不必传输整个响应内容的情况下,就可以获取包含在响应小消息头中的元信息;GET用于向特定的资源发出请求,注意:GET方法不应当被用于产生“副作用”的操作中,例如在WebApplication中,其中一个原因是GET可能会被网络蜘蛛等随意访问,Loadrunner中对应get请求函数:web_link和web_url;POST用于向指定资源提交数据进行处理请求(例如提交表单或者上传文件),数据被包含在请求体中,POST请求可能会导致新的资源的建立和/或已有资源的修改,Loadrunner中对应POST请求函数:web_submit_data,web_submit_form;PUT用于向指定资源位置上传其最新内容;DELETE用于请求服务器删除Request-URL所标识的资源;TRACE用于回显服务器收到的请求,主要用于测试或诊断;CONNECT用于HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
在上述方案中,http请求的URL在浏览器中书写格式可以如下:
协议方案名://登录信息@服务器地址:服务器端口号/带层次的文件路径?查询字符串#片段标识符
在一种实施例中,Web服务请求为Kafka请求,确定Web服务请求对应的函数事件,包括:根据Web服务请求的网际互连协议IP地址,确定Web服务请求对应的函数事件。
在该方案中,Web服务请求与函数事件之间可以存在对应关系。Web服务请求可以为Kafka请求,在确定Kafka请求对应的函数事件时,可以根据Kafka请求的IP地址、日志中心的包名和包的关键字,确定对应的函数事件,避免确定函数事件出现错误。
在一种实施例中,通过分析函数事件的上下文,提取Web服务请求中包含的数据结构,包括:分析函数事件的上下文,获取函数事件中的参数对象;根据参数对象获取Web服务请求的目标参数;将目标参数确定为数据结构。
在该方案中,Web服务请求对应的函数事件中包括参数对象,在对函数事件进行上下文分析之后,可以获取到函数实践中包括的参数对象,从而可以根据参数对象确定出Web服务请求的目标参数,该目标参数即为要提取的Web服务请求中包含的数据结构,从而可以实现通过该数据结构对Web服务响应数据进行组装。
在上述方案中,若Web服务请求是http请求,则http请求结构可以如图3所示。图3为本申请实施例提供的http请求结构的示意图,在图3中,http请求可以包括请求行(request line)、请求头部(header)、空行和请求数据四个部分。其中,请求行中可以包括请求方法、路径URL、协议版本;请求头部可以包括头部字段名、:、值;请求数据即为前述数据结构。
在一种实施例中,根据Web服务响应数据,确定函数事件响应数据,包括:根据数据结构对Web服务响应数据进行组装,得到函数事件响应数据。
在该方案中,在确定Web服务请求中包含的数据结构之后,可以按照Web服务请求中包含的数据结构的格式,将Web服务响应数据进行组装或者包装,从而得到函数事件响应数据,这样函数计算平台就可以对外提供Web服务请求响应。
在一种实施例中,在接收到Web服务请求之前,还包括:获取BFF服务层实例;存储BFF服务层实例,并将BFF服务层实例注册为函数入口。
在该方案中,用户可以提供BFF服务层实例,也即BFF Web服务实例,函数计算平台可以通过入口注册模块将BFF服务层实例存储并注册为函数入口,这样函数计算平台就可以以此函数入口对外提供Web服务。
在上述方案中,由于函数事件和Web服务无法并存,若需要将Web服务迁移到函数计算平台,则必须要将Web服务变成函数的形式,但Web服务不可能变成函数,因此,可以通过将BFF服务层实例注册为函数入口,实现将Web服务包装成为函数计算平台所需的API服务集,这样就可以使原有的BFF服务层的所有存量Web服务不需任何改造就能应用在函数计算平台,实现低成本落地,并充分利用函数计算平台高可用、免运维的优势,提高了BFF服务层的开发运维效率。
本实施例提供的基于Serverless的Web服务代理方法,通过将用户提供的BFF服务层实例存储并注册为函数入口,这样函数计算平台就可以以此函数入口对外提供Web服务。当某个Web服务请求发送到函数计算平台后,函数计算平台会确定出该Web服务请求对应的函数事件;然后对该函数事件进行上下文分析,就可以确定出该Web服务请求中包含的数据结构;将该数据结构作为参数调用BFF服务层实例执行对应的Web服务,就可以得到Web服务响应数据;最后按照函数事件的数据结构,将Web服务响应数据组装成函数事件响应数据,向Web服务请求的发送方发送该函数事件响应数据,就可以实现在无需对BFF Web服务进行改造的情况下,将Web服务迁移到函数计算平台,提高了BFF服务层的开发效率。
从总体上来说,本申请提供的技术方案,是一种可以提高BFF服务层的开发效率的技术方案。
本申请实施例还提供一种基于Serverless的Web服务代理装置,应用于函数计算平台。图4为本申请实施例提供的基于Serverless的Web服务代理装置的结构示意图,如图4所示,该基于Serverless的Web服务代理装置400包括:
函数事件确定模块401,用于在接收到Web服务请求时,确定Web服务请求对应的函数事件,函数事件用于指示待调用的BFF服务层实例的函数入口;
函数事件接收模块402,用于通过分析函数事件的上下文,提取Web服务请求中包含的数据结构;
Web服务调用模块403,用于将数据结构作为参数,进入函数入口以调用BFF服务层实例,BFF服务层实例用于执行Web服务得到Web服务响应数据;
函数事件输出模块404,用于根据Web服务响应数据,确定函数事件响应数据;
发送模块404,用于向Web服务请求的发送方发送函数事件响应数据。
可选的,Web服务请求为超文本传输协议http请求,函数事件确定模块401具体可以用于:根据Web服务请求的类型和路径,确定Web服务请求对应的函数事件。
可选的,Web服务请求为Kafka请求,函数事件确定模块401具体可以用于:根据Web服务请求的网际互连协议IP地址、日志中心的包名和包的关键字,确定Web服务请求对应的函数事件。
可选的,函数事件接收模块402具体用于:分析函数事件的上下文,获取函数事件中的参数对象;根据参数对象获取Web服务请求的目标参数;将目标参数确定为数据结构。
可选的,函数事件输出模块404具体用于:根据数据结构对Web服务响应数据进行组装,得到函数事件响应数据。
可选的,该基于Serverless的Web服务代理装置400还可以包括入口注册模块(未示出),该入口注册模块具体用于:在接收到Web服务请求之前,获取BFF服务层实例;存储BFF服务层实例,并将BFF服务层实例注册为函数入口。
本实施例提供的基于Serverless的Web服务代理装置,用于执行前述方法实施例中的基于Serverless的Web服务代理方法的技术方案,其实现原理和技术效果类似,在此不再赘述。
本申请实施例还提供一种函数计算平台。图5为本申请实施例提供的一种函数计算平台的结构示意图,如图5所示,函数计算平台500可以包括处理组件501,其进一步包括一个或多个处理器,以及由存储器502所代表的存储器资源,用于存储可由处理组件501执行的计算机执行指令,例如应用程序。存储器502中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件501被配置为执行计算机执行指令,以执行上述基于Serverless的Web服务代理方法的实施例。
函数计算平台500还可以包括一个电源组件503,电源组件503被配置为执行函数计算平台500的电源管理,一个有线或无线网络接口504被配置为将函数计算平台500连接到网络,和一个输入输出(I/O)接口505。函数计算平台500可以操作基于存储在存储器502的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
存储器可以是,但不限于,随机存取存储器(Random Access Memory,简称:RAM),只读存储器(Read Only Memory,简称:ROM),可编程只读存储器(Programmable Read-OnlyMemory,简称:PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,简称:EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,简称:EEPROM)等。其中,存储器用于存储程序,处理器在接收到执行指令后,执行程序。进一步地,上述存储器内的软件程序以及模块还可包括操作系统,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通信,从而提供其他软件组件的运行环境。
处理器可以是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称:CPU)、网络处理器(NetworkProcessor,简称:NP)等。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现前述方法实施例中提供的基于Serverless的Web服务代理方法的技术方案。
本申请实施例还提供一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时用于实现前述方法实施例中提供的基于Serverless的Web服务代理方法的技术方案。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由本申请的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (10)
1.一种基于Serverless的Web服务代理方法,其特征在于,应用于函数计算平台,包括:
在接收到Web服务请求时,确定所述Web服务请求对应的函数事件,所述函数事件用于指示待调用的BFF服务层实例的函数入口;
通过分析所述函数事件的上下文,提取所述Web服务请求中包含的数据结构;
将所述数据结构作为参数,进入所述函数入口以调用所述BFF服务层实例,所述BFF服务层实例用于执行Web服务得到Web服务响应数据;
根据所述Web服务响应数据,确定函数事件响应数据;
向所述Web服务请求的发送方发送所述函数事件响应数据。
2.根据权利要求1所述的Web服务代理方法,其特征在于,所述Web服务请求为超文本传输协议http请求,所述确定所述Web服务请求对应的函数事件,包括:
根据所述Web服务请求的类型和路径,确定所述Web服务请求对应的函数事件。
3.根据权利要求1所述的Web服务代理方法,其特征在于,所述Web服务请求为Kafka请求,所述确定所述Web服务请求对应的函数事件,包括:
根据所述Web服务请求的网际互连协议IP地址,确定所述Web服务请求对应的函数事件。
4.根据权利要求1至3中任一项所述的Web服务代理方法,其特征在于,所述通过分析所述函数事件的上下文,提取所述Web服务请求中包含的数据结构,包括:
分析所述函数事件的上下文,获取所述函数事件中的参数对象;
根据所述参数对象获取所述Web服务请求的目标参数;
将所述目标参数确定为所述数据结构。
5.根据权利要求1至3中任一项所述的Web服务代理方法,其特征在于,所述根据所述Web服务响应数据,确定函数事件响应数据,包括:
根据所述数据结构对所述Web服务响应数据进行组装,得到所述函数事件响应数据。
6.根据权利要求1至3中任一项所述的Web服务代理方法,其特征在于,所述在接收到Web服务请求之前,还包括:
获取所述BFF服务层实例;
存储所述BFF服务层实例,并将所述BFF服务层实例注册为函数入口。
7.一种基于Serverless的Web服务代理装置,其特征在于,应用于函数计算平台,包括:
函数事件确定模块,用于在接收到Web服务请求时,确定所述Web服务请求对应的函数事件,所述函数事件用于指示待调用的BFF服务层实例的函数入口;
函数事件接收模块,用于通过分析所述函数事件的上下文,提取所述Web服务请求中包含的数据结构;
Web服务调用模块,用于将所述数据结构作为参数,进入所述函数入口以调用所述BFF服务层实例,所述BFF服务层实例用于执行Web服务得到Web服务响应数据;
函数事件输出模块,用于根据所述Web服务响应数据,确定函数事件响应数据;
发送模块,用于向所述Web服务请求的发送方发送所述函数事件响应数据。
8.一种函数计算平台,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至6任一项所述的基于Serverless的Web服务代理方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至6任一项所述的基于Serverless的Web服务代理方法。
10.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的基于Serverless的Web服务代理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210521948.6A CN114860480A (zh) | 2022-05-13 | 2022-05-13 | 基于Serverless的Web服务代理方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210521948.6A CN114860480A (zh) | 2022-05-13 | 2022-05-13 | 基于Serverless的Web服务代理方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114860480A true CN114860480A (zh) | 2022-08-05 |
Family
ID=82637168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210521948.6A Pending CN114860480A (zh) | 2022-05-13 | 2022-05-13 | 基于Serverless的Web服务代理方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114860480A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117472784A (zh) * | 2023-12-25 | 2024-01-30 | 图灵人工智能研究院(南京)有限公司 | 基于浏览器的Serverless代码在线调试方法 |
-
2022
- 2022-05-13 CN CN202210521948.6A patent/CN114860480A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117472784A (zh) * | 2023-12-25 | 2024-01-30 | 图灵人工智能研究院(南京)有限公司 | 基于浏览器的Serverless代码在线调试方法 |
CN117472784B (zh) * | 2023-12-25 | 2024-03-19 | 图灵人工智能研究院(南京)有限公司 | 基于浏览器的Serverless代码在线调试方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11159411B2 (en) | Distributed testing service | |
JP4083233B2 (ja) | 多数のプロセスを制御するウェブ要求ブローカ | |
US7657591B2 (en) | Dispatching client requests to appropriate server-side methods | |
CN112130871B (zh) | 远程部署中间件的方法、装置、计算机设备及存储介质 | |
US20080288622A1 (en) | Managing Server Farms | |
CN110365724B (zh) | 任务处理方法、装置及电子设备 | |
CN110532182B (zh) | 一种虚拟化平台的自动化测试方法及装置 | |
CN110011875A (zh) | 拨测方法、装置、设备及计算机可读存储介质 | |
CN111782730B (zh) | 一种文件上传方法、装置及存储介质 | |
CN114860480A (zh) | 基于Serverless的Web服务代理方法、装置及存储介质 | |
CN112688915A (zh) | 跨协议通信方法、装置及服务器 | |
CN114880159A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN115329170A (zh) | 网页抓取方法、装置、设备以及存储介质 | |
CN116204239A (zh) | 业务处理方法、装置和计算机可读存储介质 | |
CN112860507B (zh) | 分布式链路跟踪系统采样率的控制方法和装置 | |
CN110661780A (zh) | 一种基于saas应用的无线城市数据共享方法与系统 | |
CN114398179A (zh) | 一种跟踪标识的获取方法、装置、服务器及存储介质 | |
CN108496157B (zh) | 使用扩展接口提供运行时跟踪的系统和方法 | |
CN111447273A (zh) | 云处理系统及基于云处理系统的数据处理方法 | |
CN115269216A (zh) | 用于分布式系统的性能分析系统和方法 | |
CN115484303A (zh) | 工厂微服务系统、方法、设备和存储介质 | |
CN114301970A (zh) | 服务调用方法、装置、电子设备及存储介质 | |
CN114785859B (zh) | 服务注册方法、装置、设备及存储介质 | |
CN113505036B (zh) | 一种应用监控方法、客户端和服务器 | |
CN117632445B (zh) | 请求处理方法以及装置、任务执行方法以及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |