CN116701004A - 云函数开发方法、装置、电子装置和存储介质 - Google Patents

云函数开发方法、装置、电子装置和存储介质 Download PDF

Info

Publication number
CN116701004A
CN116701004A CN202210181500.4A CN202210181500A CN116701004A CN 116701004 A CN116701004 A CN 116701004A CN 202210181500 A CN202210181500 A CN 202210181500A CN 116701004 A CN116701004 A CN 116701004A
Authority
CN
China
Prior art keywords
function
cloud
development
cloud function
middle layer
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
Application number
CN202210181500.4A
Other languages
English (en)
Inventor
舒豪
王祺佳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Youzan Technology Co ltd
Original Assignee
Hangzhou Youzan Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Youzan Technology Co ltd filed Critical Hangzhou Youzan Technology Co ltd
Priority to CN202210181500.4A priority Critical patent/CN116701004A/zh
Publication of CN116701004A publication Critical patent/CN116701004A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请涉及一种云函数开发方法、装置、电子装置和存储介质,其中,该方法包括:接收开发终端的部署请求和目标云函数;根据部署请求,将目标云函数和第一中间层代码文件上传部署至云端;第一中间层代码文件包括第二入口函数、前置处理逻辑以及后置处理逻辑;第二入口函数,与开发终端中的第一入口函数关联,用于调用第一中间层代码文件;第一入口函数,与目标云函数关联,用于调用目标云函数。通过本申请,解决了相关技术中存在应对开发项目中的标准化研发规范,导致研发周期过长,且对用户的研发能力要求高的问题,利用中间层代码文件实现了缩短研发周期,并降低了对用户的研发要求。

Description

云函数开发方法、装置、电子装置和存储介质
技术领域
本申请涉及云计算技术领域,特别是涉及云函数开发方法、装置、电子装置和存储介质。
背景技术
云计算技术领域存在一种无服务器云架构,该架构能够使用户调用云中的函数,即云函数。云函数是运行在云端(即云服务器端)的代码,无需管理服务器。为了提高研发效率和缩短业务交付周期,越来越多的企业使用到公有云厂商提供的云函数能力进行业务敏捷交付。
传统的云函数开发一般是用户直接对接公有云,需要在开发者工具内编写,将编写的代码上传部署至云端之后,即可运行在云端运行的函数。但是这种方案的缺点在于,应对开发项目中的标准化规范,导致研发周期过长,且对用户的研发能力要求高的问题。
针对相关技术中存在应对开发项目中的标准化研发规范,导致研发周期过长,且对用户的研发能力要求高的问题,目前还没有提出有效的解决方案。
发明内容
在本实施例中提供了一种云函数开发方法、装置、电子装置和存储介质,以解决相关技术中应对开发项目中的标准化研发规范,导致研发周期过长,且对用户的研发能力要求高的问题。
第一个方面,在本实施例中提供了一种云函数开发方法,适用于云函数开发系统;所述云函数开发系统包括开发终端、中间层服务器以及云端;所述开发终端通过所述中间层服务器与所述云端连接;所述方法包括:
接收所述开发终端的部署请求和目标云函数;
根据所述部署请求,将所述目标云函数和第一中间层代码文件上传部署至所述云端;所述第一中间层代码文件包括第二入口函数、前置处理逻辑以及后置处理逻辑;所述第二入口函数,与所述开发终端中的第一入口函数关联,用于调用所述第一中间层代码文件;所述第一入口函数,与所述目标云函数关联,用于调用所述目标云函数。
在其中的一些实施例中,所述方法还包括:
在所述开发终端中的云控制台中,开发完成用户的所述目标云函数,并基于所述目标云函数确定所述第一入口函数;所述第一入口函数,被指定为所述目标云函数的执行入口;
基于所述第一入口函数配置对应的第二入口函数,并将所述第二入口函数路由至中间层服务器。
在其中的一些实施例中,所述方法还包括:
基于所述目标云函数包含的业务需求匹配对应的业务处理逻辑,生成所述第一中间层代码文件。
在其中的一些实施例中,所述基于所述目标云函数包含的业务需求匹配对应的业务处理逻辑,生成所述第一中间层代码文件,包括:
基于所述目标云函数包含的业务需求匹配对应的业务处理逻辑;
对完成匹配的所述处理逻辑和与所述第一入口函数关联的第二入口函数进行封装,生成第一中间层代码文件;所述业务处理逻辑包括前置处理逻辑和后置处理逻辑。
在其中的一些实施例中,所述方法还包括:
在部署成功后,传输与所述目标云函数对应的域名至所述开发终端。
在其中的一些实施例中,所述方法还包括:
接收所述开发终端基于所述域名发起的调用请求后,根据所述调用请求确定完成部署的所述目标云函数;
基于与所述目标云函数对应的所述第二入口函数,执行所述第一中间层代码文件以完成基于所述目标云函数的前置处理逻辑的处理,得到第一执行结果;
基于与所述第二入口函数关联的所述第一入口函数,执行用户的所述目标云函数,得到云函数执行结果;
在得到所述云函数执结果后,执行所述第一中间层代码文件,以完成基于所述云函数执行结果的后置处理逻辑的处理,得到第二执行结果;
基于所述第一执行结果返回所述第二执行结果至所述开发终端。
在其中的一些实施例中,所述方法还包括:
在所述云函数执行结果包含数据返回值时,返回所述数据返回值至所述开发终端。
在其中的一些实施例中,所述方法还包括:
接收所述开发终端基于所述域名发起的调用请求;
将所述调用请求通过所述中间层服务器接入层分发路由至所述中间层服务器的应用网关,并对所述调用请求中的所述域名进行解析判断,在解析判断通过后,将所述调用请求传输至所述云端。
在其中的一些实施例中,所述方法还包括:
接收所述中间层服务器发送的所述调用请求后,根据所述调用请求确定完成部署的所述目标云函数;
基于与所述目标云函数对应的所述第二入口函数,执行所述第一中间层代码文件以完成基于所述目标云函数的前置处理逻辑的处理,得到第一执行结果;
基于与所述第二入口函数关联的所述第一入口函数,执行用户的所述目标云函数,得到云函数执行结果;
在得到所述云函数执行结果后,执行所述第一中间层代码文件,以完成对所述云函数执行结果的后置处理逻辑的处理,得到第二执行结果;
基于所述第一执行结果,通过所述中间层服务器的接入层从所述云端返回所述第二执行结果至所述开发终端。
在其中的一些实施例中,所述方法还包括:
在所述云函数执行结果包含数据返回值时,通过所述中间层服务器的接入层从所述云端中返回所述数据返回值至所述开发终端。
第二个方面,在本实施例中提供了一种云函数开发装置,适用于云函数开发系统;所述云函数开发系统包括开发终端、中间层服务器以及云端;所述开发终端通过所述中间层服务器与所述云端连接;所述装置包括:接收模块和部署模块;
所述接收模块,用于接收所述开发终端的部署请求和目标云函数;
所述部署模块,用于根据所述部署请求,将所述目标云函数和第一中间层代码文件上传部署至所述云端;所述第一中间层代码文件包括第二入口函数、前置处理逻辑以及后置处理逻辑;所述第二入口函数,与所述开发终端中的第一入口函数关联,用于调用所述第一中间层代码文件;所述第一入口函数,与所述目标云函数关联,用于调用所述目标云函数。
第三个方面,在本实施例中提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一个方面所述的云函数开发方法的步骤。
第四个方面,在本实施例中提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一个方面所述的云函数开发方法的步骤。
与相关技术相比,在本实施例中提供的云函数开发方法、装置、电子装置和存储介质,通过在云端和开发终端之间设置中间层服务器,利用中间层服务器,接收所述开发终端的部署请求和目标云函数;根据所述部署请求,将所述目标云函数和第一中间层代码文件上传部署至所述云端;所述第一中间层代码文件包括第二入口函数、前置处理逻辑以及后置处理逻辑;所述第二入口函数,与所述开发终端中的第一入口函数关联,用于调用所述第一中间层代码文件;所述第一入口函数,与所述目标云函数关联,用于调用所述目标云函数;解决了相关技术中存在应对开发项目中的标准化研发规范,导致研发周期过长,且对用户的研发能力要求高的问题,利用中间层代码文件实现了缩短研发周期,并降低对用户的研发要求。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本申请一实施例提供的云函数开发系统的结构框图;
图2是本申请一实施例提供的云函数开发方法的流程图;
图3是本申请一实施例提供的执行调用请求的流程图;
图4是本申请另一实施例提供的执行调用请求的流程图;
图5是本申请一实施例提供的云函数开发装置的结构框图。
图中:10、开发终端;11、中间层服务器;12、云端;201、接收模块;202、部署模块。
具体实施方式
为更清楚地理解本申请的目的、技术方案和优点,下面结合附图和实施例,对本申请进行了描述和说明。
除另作定义外,本申请所涉及的技术术语或者科学术语应具有本申请所属技术领域具备一般技能的人所理解的一般含义。在本申请中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本申请中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本申请中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本申请中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本申请中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
云技术(cloud technology):基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
云计算(cloud computing):一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
按照逻辑功能划分,在IaaS(Infrastructure as a Service,基础设施即服务)层上可以部署PaaS(Platform as a Service,平台即服务)层,PaaS层之上再部署SaaS(Software as a Service,软件即服务)层,也可以直接将SaaS部署在IaaS上。PaaS为软件运行的平台,如数据库、web容器等。SaaS为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,SaaS和PaaS相对于IaaS是上层。
云函数:是运行在云端(即云服务器端)的代码,无需管理服务器,在开发者工具内编写,上传部署至云端之后即可运行在云端运行的函数。在物理设计上,一个云函数可由多个文件组成,占用一定量的CPU内存等计算资源。各个云函数之间完全独立,可分别部署在不同的地区。云函数可以被开发终端侧调用,同时,云函数之间也可互相调用。目标云函数是用户在开发终端中开发的云函数。
在本实施例中提供的方法实施例可以适用于云函数开发系统。具体的如图1所示:云函数开发系统包括开发终端10、中间层服务器11以及云端12;开发终端10通过中间层服务器11与云端12连接。
其中,开发终端10可以是具有云控制台的客户端。该云控制台与中间层服务器11通信连接,在云控制台中处理的数据均会路由至中间层服务器11。客户端可以是移动终端、固定终端或便携式终端,例如移动手机、站点、单元、设备、多媒体计算机、多媒体平板、互联网节点、通信器、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板计算机、个人通信系统(PCS)设备、个人导航设备、个人数字助理(PDA)、音频/视频播放器、数码相机/摄像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备或者其任意组合,包括这些设备的配件和外设或者其任意组合。开发终端10,响应于用户在云控制台的编写,而生成对应的数据。比如:发起部署请求、调用请求,开发目标云函数等。用户在云控制台中编写目标云函数,可以将目标云函数作为第一入口函数;如果有多个目标云函数,可以将其中一个目标云函数作为第一入口函数;而且在编写目标云函数的同时,云控制台会自动配置与第一入口函数关联的第二入口函数,形成相关的配置文件。在本实施例中,编写的目标云函数要部署到云端12,也就是说在部署完成后,云端12中存在目标云函数。
其中,中间层服务器11是设置在云端12和开发终端10之间的一个中间层的服务,其具有服务器的功能,且对用户透明。
本实施例中提供的方法可以在中间层服务器11的终端、计算机或者类似的运算装置中执行。比如在终端上运行,终端可以包括一个或多个处理器和用于存储数据的存储器,其中,处理器可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置。上述终端还可以包括用于通信功能的传输设备以及输入输出设备。终端还可以有不同配置,比如具有多个处理器等。
存储器可用于存储计算机程序,例如,应用软件的软件程序以及模块,如在本实施例中的云函数开发方法对应的计算机程序,处理器通过运行存储在存储器内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备用于经由一个网络接收或者发送数据。上述的网络包括终端的通信供应商提供的无线网络。在一个实例中,传输设备包括一个网络适配器(Network InterfaceController,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
其中,云端12指的是一些第三方公有云平台提供的无服务器执行环境,帮助客户在无需购买和管理服务器的情况下运行代码,如腾讯云的SCF。云端12用于部署用户开发完成的目标云函数;在调用完成部署的云函数时,返回相应的数据以及执行内部逻辑等。可以执行的步骤如:接收所述开发终端10基于所述域名发起的调用请求后,根据所述调用请求确定完成部署的所述目标云函数;基于与所述目标云函数对应的所述第二入口函数,执行所述第一中间层代码文件以完成基于所述目标云函数的前置处理逻辑的处理,得到第一执行结果;基于与所述第二入口函数关联的所述第一入口函数,执行用户的所述目标云函数,得到云函数执行结果;在得到所述云函数执结果后,执行所述第一中间层代码文件,以完成基于所述云函数执行结果的后置处理逻辑的处理,得到第二执行结果;基于所述第一执行结果返回所述第二执行结果至所述开发终端10。在此不展开一一阐述。
在本实施例中提供了一种云函数开发方法,图2是本实施例的云函数开发方法的流程图,如图2所示,该方法可以在中间层服务器中执行,该流程包括如下步骤:
步骤S201,接收开发终端的部署请求和目标云函数;
具体的,部署请求指的是将在开发终端的云控制台中编写的目标云函数部署到云端的请求。其中,部署请求可以包括但不限于部署目标、部署位置以及传输协议等。不同第三方提供商的云端12的部署请求在传输协议、数据格式等会存在差异。目标云函数指的是用户在开发终端的云控制台上实际开发的云函数。
在云端中,接收部署请求和目标云函数有这么几种情况:第一种情况,可以同时接收部署请求和目标云函数。第二种情况,可以先接收需要部署的目标云函数,再接收开发终端发起的部署请求,在接收到部署请求后,执行步骤S202。第三种情况,可以先接收开发终端发起的部署请求,接收到部署请求后,持续获取目标云函数,在接收到目标云函数后,执行步骤S202。
步骤S202,根据部署请求,将目标云函数和第一中间层代码文件上传部署至云端;第一中间层代码文件包括第二入口函数、前置处理逻辑以及后置处理逻辑;第二入口函数,与开发终端中的第一入口函数关联,用于调用第一中间层代码文件;第一入口函数,与目标云函数关联,用于调用目标云函数。
具体的,根据部署请求,将对应的目标函数和与目标函数匹配的第一中间层代码文件打包上传至云端,完成目标云函数的部署。其中,第一中间层代码文件可以是预先在中间层服务器中配置。第一中间层代码文件包括第二入口函数、前置处理逻辑以及后置处理逻辑。其中,前置处理逻辑为目标云函数执行前,是否需要进行转换处理、数据清洗或环境变量设置等的处理逻辑。其中,后置处理逻辑为执行目标云函数,以进行转换处理、数据清洗或环境变量设置的处理逻辑。比如:通过转换处理是以对目标云函数的初始化逻辑进行规范;通过数据清洗以对目标云函数的传递参数删除敏感信息;通过环境变量设置以对目标云函数在执行时环境变量中添加或删除业务特征属性字段等。其中,第二入口函数,与开发终端中的第一入口函数关联,用于调用第一中间层代码文件;第二入口函数可以是在编写目标云函数的同时,由云控制台自动配置形成。第一入口函数,与目标云函数关联,如果目标云函数只有一个,可以直接将该目标云函数作为第一入口函数;如果目标云函数有多个,可以将其中一个目标云函数作为第一入口函数。在其他实施例中,第一中间层代码文件可以是预先在不被开发者感知的客户端中配置后上传到中间层服务器中配置。
需要知道,传统的云函数开发是用户直接对接公有云,而公有云并不能应对开发项目中的标准化规范,需要开发者对每个开发的项目涉及的要求单独做开发。比如:两个或多个项目中均存在需要数据清洗。那么每个项目均需要单独开发该数据清洗的代码。这就导致研发周期过长,且对用户的研发能力要求高的问题。而本申请利用中间层服务器,作为云端和开发终端之间的传输中间层,在中间层服务器中接收所述开发终端的部署请求和目标云函数;根据所述部署请求,将所述目标云函数和第一中间层代码文件上传部署至所述云端;由于第一中间层代码文件包括第二入口函数、前置处理逻辑以及后置处理逻辑,可以应对开发项目中的标准化规范,从而实现了缩短研发周期,并降低了对用户的研发要求;能够解决了相关技术中存在应对开发项目中的标准化研发规范,导致研发周期过长,且对用户的研发能力要求高的问题。
在其中的一些实施例中,上述云函数开发方法还包括:
基于目标云函数包含的业务需求匹配对应的业务处理逻辑,生成第一中间层代码文件。
具体的包括:基于目标云函数包含的业务需求匹配对应的业务处理逻辑;
对完成匹配的业务处理逻辑和与第一入口函数关联的第二入口函数进行封装,生成第一中间层代码文件;业务处理逻辑包括前置处理逻辑和后置处理逻辑。
其中,业务处理逻辑包含了各类目标云函数的业务需求涉及的前置处理逻辑和后置处理逻辑。业务处理逻辑可以存储在中间层服务器的数据库中,那么可以将当前目标云函数的业务需求与数据库中的业务处理逻辑进行匹配,从而生成第一中间层代码文件。由于第一中间层代码文件也需要和目标云函数一起部署到云端。因此,可以将对完成匹配的处理逻辑和与第一入口函数关联的第二入口函数一起进行封装,从而使生成的第一中间层代码文件也带有第二入口函数。本实施例可以通过第一中间层代码文件,解决目标云函数开发中涉及的一些内部标准化研发规范和通用的业务流程处理,比如:转换处理、数据清洗或环境变量设置的等处理逻辑。
上述的业务处理逻辑也可以根据客户的订制业务需求来开发,以满足各类客户对于不同使用场景的需求。比如:按场景分类业务需求,按分类的业务需求生成对应每类的第一中间层代码文件,以使不同业务场景具有对应的第一中间层代码文件。
在其中的一些实施例中,云函数开发方法,还包括:
步骤S301,在开发终端中的云控制台中,开发完成用户的目标云函数,并基于目标云函数确定第一入口函数;第一入口函数,被指定为目标云函数的执行入口;
步骤S302,基于第一入口函数配置对应的第二入口函数,并将第二入口函数路由至中间层服务器。
具体的,开发终端中的云控制台作为用户开发目标云函数的工具,云控制台与中间层服务器连接,能够实现与中间层服务器的数据交互。比如,可以通过控制台,直接将目标云函数和第二入口函数路由至中间层服务器存储。
为了避免开发终端中的文件名称与中间层服务器中的文件名称冲突,导致路由至中间层服务器的目标云函数存储出现错误,可以在中间层服务器中对文件名称进行校验;
具体的步骤为:在接收开发终端的目标云函数后,将所述目标云函数的文件名称和中间层服务器中的文件名称进行同名校验;
若存在同名,则校验失败,生成错误信息;
若不存在同名,则校验成功,将目标云函数进行存储。目标云函数可以存储在中间层服务器的对象存储(Cloud Object Storage,COS)中,也可以存储在其他存储介质中,对此并不进行限制。
在其中的一些实施例中,云函数开发方法还包括:
步骤S401,在部署成功后,传输与目标云函数对应的域名至开发终端。
具体的,域名与目标云函数一一对应。在开发终端中,可以基于该返回的域名来发起调用请求,从而调用对应的目标云函数。比如:目标云函数A的作用是获取用户信息;与目标云函数A对应的域名为getUserInfo.isv.youzan.com;那么可以通过在开发终端的浏览器中输入getUserInfo.isv.youzan.com这个域名发起调用请求,就会执行到部署在云端的目标云函数A,返回用户信息。
下面对于开发终端调用部署完成的目标云函数的方式进行详细说明:
第一种方式为:开发终端可以直接通过调用请求,从云端返回结果。
如图3所示,具体的步骤为:
步骤S501,接收开发终端基于域名发起的调用请求后,根据调用请求确定完成部署的目标云函数;
步骤S502,基于与目标云函数对应的第二入口函数,执行第一中间层代码文件以完成基于目标云函数的前置处理逻辑的处理,得到第一执行结果;
步骤S503,基于与第二入口函数关联的第一入口函数,执行用户的目标云函数,得到云函数执行结果;
步骤S504,在得到云函数执结果后,执行第一中间层代码文件,以完成基于云函数执行结果的后置处理逻辑的处理,得到第二执行结果;
步骤S505,基于第一执行结果返回第二执行结果至开发终端。
其中,上述步骤可以在云端中执行;首先,接收开发终端基于域名发起的调用请求后,解析调用请求中的域名,从而通过域名与目标云函数存在的对应关系,来确定这次调用请求对应的目标云函数。其次,基于与目标云函数对应的第二入口函数,来执行第一中间层代码文件以完成基于目标云函数的前置处理逻辑的处理,以确定传递参数(context参数和Event参数)是否需要进行转换处理、数据清洗或环境变量设置的等前置处理逻辑。此时,如果需要前置处理逻辑的处理,则第一执行结果为经过前置处理逻辑的处理的传递参数(如需数据清洗)。如果不需要前置处理逻辑的处理,则第一执行结果为原来的传递参数。其中,context参数包含了此处调用的调用信息和运行状态,可以用它来了解服务运行的情况,涉及数据传输的密钥;Event参数是触发云函数的事件。再次,基于与第二入口函数关联的第一入口函数,执行用户的目标云函数(如删除某条数据),得到云函数执行结果(如针对某条数据执行删除处理);然后,再执行第一中间层代码文件,以完成基于云函数执行结果的后置处理逻辑的处理,如对云函数执行结果进行实际的后置逻辑处理(如脱敏),以得到第二执行结果;最后基于第一执行结果返回第二执行结果至开发终端。
在其中的一些实施例中,云函数开发方法还包括以下步骤:
在所述云函数执行结果包含数据返回值时,返回所述数据返回值至所述开发终端。
具体的,在调用目标云函数的过程中,云函数执行结果可能包含有数据返回值,如果有返回值,则将数据返回值直接在云端中返回至开发终端。比如:调用的目标云函数是用于获取数据、查询数据的,则存在数据返回值。调用的目标云函数是用于数据修改的,比如,将某个数据从2修改为5。则不存在数据返回值。
第二种方式为:开发终端可以先将调用请求发送至中间层服务器,再根据中间层服务器发送的调用请求从云端返回结果。由中间层服务器介入目标云函数的调用过程。
具体的,中间层服务器介入的具体的步骤为:
步骤S601,接收开发终端基于域名发起的调用请求;
步骤S602,将调用请求通过中间层服务器接入层分发路由至中间层服务器的应用网关,并对调用请求中的域名进行解析判断,在解析判断通过后,将调用请求传输至云端。
其中,接收开发终端基于域名发起的调用请求,将调用请求通过中间层服务器接入层分发路由至中间层服务器的应用网关。在应用网关中解析调用请求中的域名,并判断是否是目标云函数的调用请求;如果是该调用请求是目标云函数的调用请求,则解析判断通过,将调用请求传输至云端。如果该调用请求不是目标云函数的调用请求,则返回停止调用信息至开发终端。
具体的,如图4所示,云端返回结果的具体的步骤为:
步骤S701,接收中间层服务器发送的调用请求后,根据调用请求确定完成部署的目标云函数;
步骤S702,基于与目标云函数对应的第二入口函数,执行第一中间层代码文件以完成基于目标云函数的前置处理逻辑的处理,得到第一执行结果;
步骤S703,基于与第二入口函数关联的第一入口函数,执行用户的目标云函数,得到云函数执行结果;
步骤S704,在得到云函数执行结果后,执行第一中间层代码文件,以完成对云函数执行结果的后置处理逻辑的处理,得到第二执行结果;
步骤S705,基于第一执行结果,通过中间层服务器的接入层从云端返回第二执行结果至开发终端。
首先,在云端接收中间层服务器发送的调用请求后,解析调用请求中的域名,从而通过域名与目标云函数存在的对应关系,来确定这次调用请求对应的目标云函数。其次,基于与目标云函数对应的第二入口函数,来执行第一中间层代码文件以完成基于目标云函数的前置处理逻辑的处理,以确定传递参数(context参数和Event参数)是否需要进行转换处理、数据清洗或环境变量设置的等前置处理逻辑。此时,如果需要前置处理逻辑的处理,则第一执行结果为经过前置处理逻辑的处理的传递参数(如需数据清洗)。如果不需要前置处理逻辑的处理,则第一执行结果为原来的传递参数。其中,context参数包含了此处调用的调用信息和运行状态,可以用它来了解服务运行的情况,涉及数据传输的密钥;Event参数是触发云函数的事件。再次,基于与第二入口函数关联的第一入口函数,执行用户的目标云函数(如删除某条数据),得到云函数执行结果(如针对某条数据执行删除处理);然后,再执行第一中间层代码文件,以完成基于云函数执行结果的后置处理逻辑的处理,如对云函数执行结果进行实际的后置逻辑处理(如脱敏),以得到第二执行结果;最后基于第一执行结果,先将第二执行结果从云端中返回到中间层服务器的接入层,再将第二执行结果从中间层服务器的接入层返回第二执行结果至开发终端。
在其中的一些实施例中,云函数开发方法还包括以下步骤:
在云函数执行结果包含数据返回值时,通过中间层服务器的接入层从云端中返回数据返回值至开发终端。
具体的,在调用目标云函数的过程中,云函数执行结果可能包含有数据返回值,如果有返回值,则将数据返回值通过中间层服务器的接入层从云端中返回至开发终端。比如:调用的目标云函数是用于获取数据、查询数据的,则存在数据返回值。调用的目标云函数是用于数据修改的,比如,将某个数据从2修改为5。则不存在数据返回值。
在其中的一些实施例中,还可以在开发终端中基于域名发起测试请求,直接发送至云端,以测试部署在云端的目标云函数。该测试请求也可以通过中间层服务器的接入层发送至云端,以测试部署在云端的目标云函数。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中还提供了一种云函数开发装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。以下所使用的术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是本实施例的云函数开发装置的结构框图,如图5所示,该装置包括:接收模块201和部署模块202;
接收模块201,用于接收开发终端的部署请求和目标云函数;
部署模块202,用于根据部署请求,将目标云函数和第一中间层代码文件上传部署至云端;第一中间层代码文件包括第二入口函数、前置处理逻辑以及后置处理逻辑;第二入口函数,与开发终端中的第一入口函数关联,用于调用第一中间层代码文件;第一入口函数,与目标云函数关联,用于调用目标云函数。
通过上述云函数开发装置,实现了缩短研发周期,并降低对用户的研发要求;能够解决了相关技术中存在应对开发项目中的标准化研发规范,导致研发周期过长,且对用户的研发能力要求高的问题。
在其中的一些实施例中,在图5的基础上,还包括开发模块;
开发模块,用于在开发终端中的云控制台中,开发完成用户的目标云函数,并基于目标云函数确定第一入口函数;第一入口函数,被指定为目标云函数的执行入口;
基于第一入口函数配置对应的第二入口函数,并将第二入口函数路由至中间层服务器。
在其中的一些实施例中,在图5的基础上,还包括匹配模块;
匹配模块,用于基于目标云函数包含的业务需求匹配对应的业务处理逻辑,生成第一中间层代码文件。
在其中的一些实施例中,匹配模块,还用于基于目标云函数包含的业务需求匹配对应的业务处理逻辑;
对完成匹配的处理逻辑和与第一入口函数关联的第二入口函数进行封装,生成第一中间层代码文件;业务处理逻辑包括前置处理逻辑和后置处理逻辑。
在其中的一些实施例中,在图5的基础上,还包括传输模块;
传输模块,用于在部署成功后,传输与目标云函数对应的域名至开发终端。
在其中的一些实施例中,在图5的基础上,还包括第一处理模块;
第一处理模块,用于接收开发终端基于域名发起的调用请求后,根据调用请求确定完成部署的目标云函数;
基于与目标云函数对应的第二入口函数,执行第一中间层代码文件以完成基于目标云函数的前置处理逻辑的处理,得到第一执行结果;
基于与第二入口函数关联的第一入口函数,执行用户的目标云函数,得到云函数执行结果;
在得到云函数执结果后,执行第一中间层代码文件,以完成基于云函数执行结果的后置处理逻辑的处理,得到第二执行结果;
基于第一执行结果返回第二执行结果至开发终端。
在其中的一些实施例中,在图5的基础上,还包括第一返回模块;
第一返回模块,用于在云函数执行结果包含数据返回值时,返回数据返回值至开发终端。
在其中的一些实施例中,在图5的基础上,还包括解析判断模块;
解析判断模块,用于接收开发终端基于域名发起的调用请求;
将调用请求通过中间层服务器接入层分发路由至中间层服务器的应用网关,并对调用请求中的域名进行解析判断,在解析判断通过后,将调用请求传输至云端。
在其中的一些实施例中,在图5的基础上,还包括第一处理模块;
第一处理模块,用于接收中间层服务器发送的调用请求后,根据调用请求确定完成部署的目标云函数;
基于与目标云函数对应的第二入口函数,执行第一中间层代码文件以完成基于目标云函数的前置处理逻辑的处理,得到第一执行结果;
基于与第二入口函数关联的第一入口函数,执行用户的目标云函数,得到云函数执行结果;
在得到云函数执行结果后,执行第一中间层代码文件,以完成对云函数执行结果的后置处理逻辑的处理,得到第二执行结果;
基于第一执行结果,通过中间层服务器的接入层从云端返回第二执行结果至开发终端。
在其中的一些实施例中,在图5的基础上,还包括第二返回模块;
在云函数执行结果包含数据返回值时,通过中间层服务器的接入层从云端中返回数据返回值至开发终端。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
在本实施例中还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,接收开发终端的部署请求和目标云函数;
S2,根据部署请求,将目标云函数和第一中间层代码文件上传部署至云端;第一中间层代码文件包括第二入口函数、前置处理逻辑以及后置处理逻辑;第二入口函数,与开发终端中的第一入口函数关联,用于调用第一中间层代码文件;第一入口函数,与目标云函数关联,用于调用目标云函数。
需要说明的是,在本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,在本实施例中不再赘述。
此外,结合上述实施例中提供的云函数开发方法,在本实施例中还可以提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种云函数开发方法。
应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本申请提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本申请保护范围。
显然,附图只是本申请的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本申请适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本申请披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本申请公开的内容不足。
“实施例”一词在本申请中指的是结合实施例描述的具体特征、结构或特性可以包括在本申请的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本申请中描述的实施例在没有冲突的情况下,可以与其它实施例结合。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (13)

1.一种云函数开发方法,其特征在于,适用于云函数开发系统;所述云函数开发系统包括开发终端、中间层服务器以及云端;所述开发终端通过所述中间层服务器与所述云端连接;所述方法包括:
接收所述开发终端的部署请求和目标云函数;
根据所述部署请求,将所述目标云函数和第一中间层代码文件上传部署至所述云端;所述第一中间层代码文件包括第二入口函数、前置处理逻辑以及后置处理逻辑;所述第二入口函数,与所述开发终端中的第一入口函数关联,用于调用所述第一中间层代码文件;所述第一入口函数,与所述目标云函数关联,用于调用所述目标云函数。
2.根据权利要求1所述的云函数开发方法,其特征在于,所述方法还包括:
在所述开发终端中的云控制台中,开发完成用户的所述目标云函数,并基于所述目标云函数确定所述第一入口函数;所述第一入口函数,被指定为所述目标云函数的执行入口;
基于所述第一入口函数配置对应的第二入口函数,并将所述第二入口函数路由至中间层服务器。
3.根据权利要求1所述的云函数开发方法,其特征在于,所述方法还包括:
基于所述目标云函数包含的业务需求匹配对应的业务处理逻辑,生成所述第一中间层代码文件。
4.根据权利要求3所述的云函数开发方法,其特征在于,所述基于所述目标云函数包含的业务需求匹配对应的业务处理逻辑,生成所述第一中间层代码文件,包括:
基于所述目标云函数包含的业务需求匹配对应的业务处理逻辑;
对完成匹配的所述处理逻辑和与所述第一入口函数关联的第二入口函数进行封装,生成第一中间层代码文件;所述业务处理逻辑包括前置处理逻辑和后置处理逻辑。
5.根据权利要求1所述的云函数开发方法,其特征在于,所述方法还包括:
在部署成功后,传输与所述目标云函数对应的域名至所述开发终端。
6.根据权利要求5所述的云函数开发方法,其特征在于,所述方法还包括:
接收所述开发终端基于所述域名发起的调用请求后,根据所述调用请求确定完成部署的所述目标云函数;
基于与所述目标云函数对应的所述第二入口函数,执行所述第一中间层代码文件以完成基于所述目标云函数的前置处理逻辑的处理,得到第一执行结果;
基于与所述第二入口函数关联的所述第一入口函数,执行用户的所述目标云函数,得到云函数执行结果;
在得到所述云函数执结果后,执行所述第一中间层代码文件,以完成基于所述云函数执行结果的后置处理逻辑的处理,得到第二执行结果;
基于所述第一执行结果返回所述第二执行结果至所述开发终端。
7.根据权利要求6所述的云函数开发方法,其特征在于,所述方法还包括:
在所述云函数执行结果包含数据返回值时,返回所述数据返回值至所述开发终端。
8.根据权利要求5所述的云函数开发方法,其特征在于,所述方法还包括:
接收所述开发终端基于所述域名发起的调用请求;
将所述调用请求通过所述中间层服务器接入层分发路由至所述中间层服务器的应用网关,并对所述调用请求中的所述域名进行解析判断,在解析判断通过后,将所述调用请求传输至所述云端。
9.根据权利要求8所述的云函数开发方法,其特征在于,所述方法还包括:
接收所述中间层服务器发送的所述调用请求后,根据所述调用请求确定完成部署的所述目标云函数;
基于与所述目标云函数对应的所述第二入口函数,执行所述第一中间层代码文件以完成基于所述目标云函数的前置处理逻辑的处理,得到第一执行结果;
基于与所述第二入口函数关联的所述第一入口函数,执行用户的所述目标云函数,得到云函数执行结果;
在得到所述云函数执行结果后,执行所述第一中间层代码文件,以完成对所述云函数执行结果的后置处理逻辑的处理,得到第二执行结果;
基于所述第一执行结果,通过所述中间层服务器的接入层从所述云端返回所述第二执行结果至所述开发终端。
10.根据权利要求9所述的云函数开发方法,其特征在于,所述方法还包括:
在所述云函数执行结果包含数据返回值时,通过所述中间层服务器的接入层从所述云端中返回所述数据返回值至所述开发终端。
11.一种云函数开发装置,其特征在于,适用于云函数开发系统;所述云函数开发系统包括开发终端、中间层服务器以及云端;所述开发终端通过所述中间层服务器与所述云端连接;所述装置包括:接收模块和部署模块;
所述接收模块,用于接收所述开发终端的部署请求和目标云函数;
所述部署模块,用于根据所述部署请求,将所述目标云函数和第一中间层代码文件上传部署至所述云端;所述第一中间层代码文件包括第二入口函数、前置处理逻辑以及后置处理逻辑;所述第二入口函数,与所述开发终端中的第一入口函数关联,用于调用所述第一中间层代码文件;所述第一入口函数,与所述目标云函数关联,用于调用所述目标云函数。
12.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至10中任一项所述的云函数开发方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至10中任一项所述的云函数开发方法的步骤。
CN202210181500.4A 2022-02-25 2022-02-25 云函数开发方法、装置、电子装置和存储介质 Pending CN116701004A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210181500.4A CN116701004A (zh) 2022-02-25 2022-02-25 云函数开发方法、装置、电子装置和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210181500.4A CN116701004A (zh) 2022-02-25 2022-02-25 云函数开发方法、装置、电子装置和存储介质

Publications (1)

Publication Number Publication Date
CN116701004A true CN116701004A (zh) 2023-09-05

Family

ID=87842036

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210181500.4A Pending CN116701004A (zh) 2022-02-25 2022-02-25 云函数开发方法、装置、电子装置和存储介质

Country Status (1)

Country Link
CN (1) CN116701004A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117270888A (zh) * 2023-11-24 2023-12-22 之江实验室 一种云端应用部署方法、系统、装置及计算机设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117270888A (zh) * 2023-11-24 2023-12-22 之江实验室 一种云端应用部署方法、系统、装置及计算机设备
CN117270888B (zh) * 2023-11-24 2024-04-16 之江实验室 一种云端应用部署方法、系统、装置及计算机设备

Similar Documents

Publication Publication Date Title
KR102414096B1 (ko) 종단 장치에서의 기계 학습을 위한 패키지 생성 및 배포
CN112000348A (zh) 服务灰度发布的控制方法、装置、计算机设备
CN110187912B (zh) 一种节点选择方法和装置
CN111726399B (zh) Docker容器安全访问方法及装置
CN111901157B (zh) 一种基于k8s的服务部署方法、装置、设备、介质
CN113645071B (zh) 一种集群部署方法、系统、介质及电子终端
CN108881228A (zh) 云端注册激活方法、装置、设备和存储介质
CN113259359B (zh) 一种边缘节点能力补充方法、系统、介质及电子终端
CN105144109A (zh) 分布式数据中心技术
US20240111549A1 (en) Method and apparatus for constructing android running environment
CN104410660A (zh) 多媒体资源的下载方法、装置、路由器及服务器
CN114327399B (zh) 分布式训练方法、装置、计算机设备、存储介质和产品
CN114296933B (zh) 端边云架构下轻量化容器的实现方法、数据处理系统
CN116701004A (zh) 云函数开发方法、装置、电子装置和存储介质
CN111858041A (zh) 一种数据处理方法及服务器
CN111694639A (zh) 进程容器地址的更新方法、装置和电子设备
CN114296953A (zh) 一种多云异构系统及任务处理方法
CN114157658A (zh) 镜像仓库部署方法、装置、电子设备和计算机可读介质
WO2018068655A1 (zh) 一种许可管理方法和系统
CN116700705A (zh) 一种基于配置的业务系统对接方法及系统
CN103631621A (zh) 一种信息提示方法及装置
CN100386726C (zh) 远程操控更新计算机平台系统程序的方法及系统
CN115580614A (zh) 一种数据下载方法、装置、设备及计算机可读存储介质
CN116418791A (zh) 固件升级方法、固件升级系统、服务器及存储介质
CN115437647A (zh) 适配多框架的微服务部署方法、装置、终端及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication