CN110275699A - 一种代码构建方法及Serverless平台、对象存储平台 - Google Patents
一种代码构建方法及Serverless平台、对象存储平台 Download PDFInfo
- Publication number
- CN110275699A CN110275699A CN201810214044.2A CN201810214044A CN110275699A CN 110275699 A CN110275699 A CN 110275699A CN 201810214044 A CN201810214044 A CN 201810214044A CN 110275699 A CN110275699 A CN 110275699A
- Authority
- CN
- China
- Prior art keywords
- code
- platform
- request message
- serverless
- mark
- 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
- 238000010276 construction Methods 0.000 title claims abstract description 124
- 230000006870 function Effects 0.000 claims abstract description 141
- 238000000034 method Methods 0.000 claims abstract description 48
- 238000012545 processing Methods 0.000 claims description 22
- 230000005540 biological transmission Effects 0.000 claims description 9
- 230000001360 synchronised effect Effects 0.000 claims description 4
- 239000004744 fabric Substances 0.000 claims 1
- 238000009434 installation Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 16
- 238000004590 computer program Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/22—Procedural
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种代码构建方法及Serverless平台、对象存储平台。该方法包括:Serverless平台在接收到对象存储平台发送的代码构建请求消息后,能够从多个预设环境函数中确定出该代码构建请求消息对应的目标环境函数,并根据该代码构建请求消息在目标环境函数中进行代码构建。本发明实施例中,Serverless平台在确定目标环境函数之后,可以直接在目标环境函数中进行代码构建,无需安装构建环境,从而能够有效避免现有技术由于受到网络的影响而导致安装构建环境出现故障的情况,进而能够提高代码构建的效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种代码构建方法及Serverless平台、对象存储平台。
背景技术
随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题,如何能在不断变化的需求中快速适应和保证软件的质量也显得尤其的重要。持续集成正是针对这一类问题的一种软件开发实践,它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成,而每次的集成都是通过自动化的构建来验证,包括自动编译、发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件。
目前,现有技术通常采用亚马逊云服务提供的AWS Lambda来实现持续集成开发,这一技术在代码构建时,容易受到网络的影响,且,构建效率较低。基于此,目前亟需一种代码构建方法,用于解决现有技术中代码构建时容易受到网络的影响而导致安装构建环境出现故障的问题。
发明内容
本发明实施例提供一种代码构建方法及Serverless平台、对象存储平台,以解决现有技术中代码构建时容易受到网络的影响而导致安装构建环境出现故障的技术问题。
本发明实施例提供一种代码构建方法,所述方法包括:
Serverless平台接收对象存储平台发送的代码构建请求消息;
所述Serverless平台从多个预设环境函数中确定出所述代码构建请求消息对应的目标环境函数,并根据所述代码构建请求消息在所述目标环境函数中进行代码构建;所述多个预设环境函数为所述Serverless平台根据多个编程语言对应的配置信息预先安装并存储的。
可选地,所述代码构建请求消息包括所述目标代码的项目名称;
所述Serverless平台从所述Serverless平台存储的多个预设环境函数中确定出与所述代码构建请求消息对应的目标环境函数,包括:
所述Serverless平台从预设数据库中获取项目名称与环境函数标识的对应关系;
所述Serverless平台根据所述项目名称与环境函数标识的对应关系,确定目标代码的项目名称对应的目标环境函数的标识;
所述Serverless平台根据所述目标环境函数的标识,从多个预设环境函数中确定出所述目标环境函数的标识对应的目标环境函数。
可选地,所述代码构建请求消息还包括所述目标代码的配置信息;
所述Serverless平台根据所述代码构建请求消息在所述目标环境函数中进行代码构建,包括:
所述Serverless平台根据所述目标代码的项目名称,从所述预设数据库中确定所述目标代码的项目名称对应的配置信息;
所述Serverless平台根据所述目标代码的配置信息和与所述目标代码的项目名称对应的配置信息,在所述目标环境函数中对所述目标代码进行代码构建。
可选地,所述代码构建请求消息包括所述目标代码的同步方式和/或所述目标代码的发布方式;
在所述Serverless平台完成代码构建之后,所述方法还包括:
所述Serverless平台将代码构建的进度信息通过所述同步方式进行同步;所述同步方式包括电子邮件方式、http接口方式中的至少一项;
和/或,
所述Serverless平台生成构建完成后的代码文件,并根据所述目标代码的发布方式发布所述代码文件。
本发明实施例提供一种代码构建方法,所述方法包括:
对象存储平台接收用户发送的代码更新请求消息;所述代码更新请求消息包括目标代码对应的代码托管平台的标识;
所述对象存储平台从所述代码托管平台的标识对应的代码托管平台中获取目标代码,根据所述目标代码生成代码构建请求消息,并将所述代码构建请求消息发送给Serverless平台。
本发明实施例提供一种Serverless平台,所述Serverless平台包括:
接收单元,用于收对象存储平台发送的代码构建请求消息;
处理单元,用于从多个预设环境函数中确定出所述代码构建请求消息对应的目标环境函数,并根据所述代码构建请求消息在所述目标环境函数中进行代码构建;所述多个预设环境函数为所述Serverless平台根据多个编程语言对应的配置信息预先安装并存储的。
可选地,所述代码构建请求消息包括所述目标代码的项目名称;
所述处理单元具体用于:
从预设数据库中获取项目名称与环境函数标识的对应关系;根据所述项目名称与环境函数标识的对应关系,确定目标代码的项目名称对应的目标环境函数的标识;以及根据所述目标环境函数的标识,从多个预设环境函数中确定出所述目标环境函数的标识对应的目标环境函数。
可选地,所述代码构建请求消息还包括所述目标代码的配置信息;
所述处理单元具体用于:
根据所述目标代码的项目名称,从所述预设数据库中确定所述目标代码的项目名称对应的配置信息;以及根据所述目标代码的配置信息和与所述目标代码的项目名称对应的配置信息,在所述目标环境函数中对所述目标代码进行代码构建。
可选地,所述代码构建请求消息包括所述目标代码的同步方式和/或所述目标代码的发布方式;
所述处理单元在完成代码构建之后,还用于:
将代码构建的进度信息通过所述同步方式进行同步;所述同步方式包括电子邮件方式、http接口方式中的至少一项;和/或,生成构建完成后的代码文件,并根据所述目标代码的发布方式发布所述代码文件。
本发明实施例提供一种对象存储平台,所述对象存储平台包括:
接收单元,用于对象存储平台接收用户发送的代码更新请求消息;所述代码更新请求消息包括目标代码对应的代码托管平台的标识;
处理单元,用于从所述代码托管平台的标识对应的代码托管平台中获取目标代码,根据所述目标代码生成代码构建请求消息;
发送单元,用于将所述代码构建请求消息发送给Serverless平台。
本发明实施例中,Serverless平台在接收到对象存储平台发送的代码构建请求之后,能够从多个预设环境函数中确定出该代码构建请求消息对应的目标环境函数,并根据该代码构建请求消息在目标环境函数中进行代码构建。本发明实施例中,由于多个预设环境函数为Serverless平台根据多个编程语言对应的配置信息预先安装并存储的,因此,Serverless平台在确定目标环境函数之后,可以直接在目标环境函数中进行代码构建,无需安装构建环境,从而能够有效避免由于受到网络的影响而导致安装构建环境出现故障的情况,进而能够提高代码构建的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例适用的一种系统架构示意图;
图2为本发明实施例提供的一种代码构建方法所对应的流程示意图;
图3为本发明实施例提供的一种安装预设环境函数所对应的流程示意图;
图4为本发明实施例提供的一种Serverless平台的结构示意图;
图5为本发明实施例提供的一种对象存储平台的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例中的代码构建方法可适用于多种系统架构。图1示例性示出了本发明实施例适用的一种系统架构示意图,如图1所示,本发明实施例适用的系统架构包括Serverless平台101、对象存储平台102、非关系型(Not OnlySQL,NoSQL)数据库103。
具体来说,用户(开发者)负责编写代码,并将代码上传至对象存储平台102,对象存储平台102在获取代码之后,可以产生触发事件使得Serverless平台101进行函数计算,从图1所示的系统架构中可以看出,Serverless平台101接收到触发事件后,可以通过与NoSQL数据库103获取代码的相关配置信息,从而完成代码构建。进一步地,Serverless平台101在代码构建完成之后,可以将代码构建结果、日志等发送到对象存储平台102中或者NoSQL数据库103中,也可以根据该代码同步方式进行代码构建进度的同步,还可以将代码构建结果等数据发送给改代码配置的回调地址所对应的接收者。
本发明实施例中,Serverless平台101是一种服务平台,开发者无须管理服务器,将应用构建在函数之上,而不是运行在需要人工配置和维护的服务器之上,如图1中所示出的,Serverless平台101包括函数1011、函数1012、函数1013和函数1014。Serverless平台可以有多种类型,例如AWS Lambda平台、谷歌云平台(Google Cloud Platform,GCP)、国际商业机器公司(International Business Machines Corporation,IBM)的Bluemix/ApacheOpen Whisk平台等。
对象存储平台102是一种网络存储架构,能够支持海量用户远程访问且具备无限容量。对象存储平台可以为多种类型的存储平台,例如阿里云对象存储服务(ObjectStorage Service,OSS)、腾讯云对象存储(Cloud Object Storage,COS)、亚马逊简单存储服务(Simple Storage Service,S3)等。
NoSQL数据库103作为一种非关系型数据库,可以有以下几种类型:键值(Key-Value)存储数据库,例如DynamoDB;列存储数据库,例如Cassandra;文档型数据库,例如SequoiaDB;图形数据库,例如Neo4J。考虑到本发明实施例中NoSQL数据库主要用于存储代码及代码的配置信息等,可以采用键值存储数据库。
基于图1所示的系统架构,图2示例性示出了本发明实施例提供的一种代码构建方法所对应的流程示意图,如图2所示,具体包括以下步骤:
步骤201,对象存储平台接收用户发送的代码更新请求消息。
步骤202,对象存储平台从所述代码托管平台的标识对应的代码托管平台中获取目标代码。
步骤203,对象存储平台根据所述目标代码生成代码构建请求消息,并将所述代码构建请求消息发送给Serverless平台。
步骤204,Serverless平台接收对象存储平台发送的代码构建请求消息。
步骤205,Serverless平台从多个预设环境函数中确定出所述代码构建请求消息对应的目标环境函数,并根据所述代码构建请求消息在所述目标环境函数中进行代码构建。
本发明实施例中,Serverless平台在确定目标环境函数之后,可以直接在目标环境函数中进行代码构建,无需安装构建环境,从而能够有效避免由于受到网络的影响而导致安装构建环境出现故障的情况,进而能够提高代码构建的效率。
具体来说,步骤201和步骤202中,代码更新请求消息可以包括多种内容,例如,可以包括目标代码,如此,对象存储平台可以从代码更新请求消息中获取目标代码。其中,目标代码为进行代码构建所需要的代码,举个例子,若用户需要开发新项目,则目标代码构建为该新项目所需要的代码;再举个例子,若用户需要更新已有的项目,则目标代码包括该项目原本已有的代码和用户更新的代码。
考虑到实际应用时,为了便于管理软件开发以及发现已有代码,用户大多会将代码存储在代码托管平台上,因此,本发明实施例中,代码更新请求消息还可以包括目标代码对应的代码托管平台的标识,如此,对象存储平台可以从代码托管平台的标识对应的代码托管平台中获取目标代码,从而能够扩展目标代码的来源,适用于多样的业务接入场景。其中,代码托管平台可以为多种类型的平台,比如Github、Gitlab、Bitbucket等。
进一步地,对象存储平台从代码托管平台中获取目标代码的方式有多种。一种可能的实现方式为,对象存储平台在接收到代码更新请求消息后,可以触发代码获取函数,根据代码更新请求消息中包括的代码托管平台的标识,从对应的代码托管平台上获取目标代码,从而能够保证代码托管平台中的代码无损地转移到对象存储平台中;进一步地,由于对象存储平台在代码构建之前就已获取到目标代码,因此,相比于现有技术在执行代码构建的过程中获取目标代码,能够有效避免因网络故障或者网速缓慢等原因导致的代码构建过程耗时长,甚至代码构建出现错误的问题。
在其它可能的实施例中,对象存储平台也可以代替现有的代码托管平台,执行代码托管平台的功能。
步骤203和步骤204中,对象存储平台将代码构建请求消息发送给Serverless平台的方式有多种,例如,可以采用触发事件的方式,在对象存储平台和第一设置之间预先设置触发程序,即当指定的资料被修改时,触发程序即自动执行。本发明实施例中,该预先设置的触发程序可以为当对象存储平台获取到目标代码后,向Serverless平台触发第一事件。其中,第一事件用于指示Serverless平台进行代码构建。
步骤205中,对象存储平台触发Serverless平台进行配置信息的查找和整合,以及后续进行代码构建,都可以依托Serverless服务进行部署。以阿里函数计算(FunctionComputer,FC)为例,图1中示出的Serverless平台101中所包含的每个服务都可以称为函数,函数可以由用户编写后上传至FC,当接收到触发事件后,执行对应的函数。
具体地,预设环境函数可以为多种类型的环境函数,例如,node.js环境函数、python环境函数、java环境函数、golang环境函数等。其中,每个环境函数可以根据编程语言对应的配置信息进行安装,如图3所示,为安装预设环境函数所对应的流程示意图,具体包括如下步骤:
步骤301,分析各种语言环境。
在触发第一事件后,需要分析项目构建命令的执行逻辑,预先准备对应的环境函数的变量及相关的二进制文件,下面针对不同的环境函数的需求进行具体描述。
(1)安装node.js环境时,需要获取node.js的可执行文件,安装npm,并对node.js可执行文件进行配置,将npm的路径配置到系统环境变量PATH,以及为npm配置.npmrc的配置内容。
(2)安装Java环境时,需要获取openjdk的可执行文件及相应的系统lib、配置环境变量JAVA_HOME、配置环境变量PATH和_JAVA_OPTIONS,还需要安装maven。
(3)安装Python环境时,需要获取Python的可执行文件,配置环境变量PATH,以及安装easy_install和pip。
(4)安装Golang环境时,需要获取Golang的可执行文件,配置环境变量GOROOT、PATH、GOPATH,保证项目源码会保存到对应的GOPATH目录之下。
本领域技术人员可以根据经验和实际情况自行选择需要安装的环境,并根据该环境对应的配置信息进行安装,具体不做限定。
步骤302,在本地目录内安装需要的环境函数。
步骤303,打包目录,存储对应的环境函数。
具体来说,可以将安装完成后的各个环境函数所包含的可执行文件目录打包存储到Serverless平台中。
如此,由于多个预设环境函数为Serverless平台根据多个编程语言对应的配置信息预先安装并存储的,因此,相比于现有技术中还需要根据该代码安装构建环境而言,本发明实施例中,Serverless平台在确定目标环境函数之后,可以直接在目标环境函数中进行代码构建,无需安装构建环境,从而能够有效避免由于受到网络的影响而导致安装构建环境出现故障的情况,进而能够提高代码构建的效率。
进一步地,Serverless平台确定目标环境函数的方式有多种,一种可能的实现方式为,根据代码构建请求消息中包括的目标代码的项目名称来确定,具体地,Serverless平台从预设数据库中获取项目名称与环境函数标识的对应关系,从而根据所述项目名称与环境函数标识的对应关系,确定目标代码的项目名称对应的目标环境函数的标识;进而根据所述目标环境函数的标识,从多个预设环境函数中确定出所述目标环境函数的标识对应的目标环境函数。
其中,预设数据库可以为图1中所示出的NoSQL数据库103,以键值存储的方式对目标代码的相关信息进行存储,如表1所示,为预设数据库的一种示例,项目A对应的环境函数的标识为node.js;项目B对应的环境函数的标识为Python;项目C对应的环境函数的标识为Java。若代码构建请求消息中包括的目标代码的项目名称为项目A,则根据表1中示出的内容可知项目A对应的目标函数的标识为node.js,进而可以从多个预设环境函数中确定项目A对应的目标环境函数为node.js环境函数。
表1:预设数据库的一种示例
项目名称 | 环境函数的标识 |
项目A | node.js |
项目B | Python |
项目C | Java |
在其它可能的实现方式中,代码构建请求消息中也可以直接包括的目标代码的环境函数的标识,从而根据环境函数的标识确定出目标环境函数。本领域技术人员可以根据经验和实际情况自行选择目标环境函数的确定方式,具体不做限定。
进一步地,Serverless平台在确定目标环境函数之后,可以根据代码构建请求消息包括的目标代码的配置信息进行代码构建,具体来说,Serverless平台根据目标代码的项目名称,从预设数据库中确定所述目标代码的项目名称对应的配置信息,进而根据目标代码的配置信息和与目标代码的项目名称对应的配置信息,在目标环境函数中对目标代码进行代码构建。
更进一步地,Serverless平台完成代码构建之后,可以上传构建完成的打包的文件目录以及构建日志等数据到对象存储平台与预设数据库,并将构建结果等数据发送给项目配置的回调地址。也就是说,在代码构建完成之后,还可以对代码构建的进度进行同步以及对构建得到的代码文件进行发布。下面将对这两种情形进行具体说明。
(1)构建进度的同步
本发明实施例中,Serverless平台可以将代码构建的进度信息通过预设同步方式进行同步。其中,预设同步方式可以通过多种方式确定,例如,可以是根据代码构建请求消息包括的目标代码的同步方式来确定;或者,也可以是根据在构建完成之后接收到的同步命令来确定。
进一步地,同步方式可以为代码托管平台的方式、Slack的方式、电子邮件方式、超文本传输协议(HyperText Transfer Protocol,http)接口方式中的至少一项,具体不做限定。如此,通过多种方式,能够灵活地选择代码构建的同步方式,便于用户获取代码构建的进度,进一步地,通过
(2)代码文件的发布
本发明实施例中,Serverless平台可以生成构建完成后的代码文件,并根据目标代码的发布方式发布代码文件,其中,目标代码的发布方式由代码构建请求消息携带。也就是说,代码文件等构件结构的回调可以通过http接口等方式实现,以便于对接发布系统等。如此,根据目标代码的发布方式进行结果的反馈,并且提供构建完成后的代码文件,从而便于后续诸如发布部署的需求。
针对上述方法流程,本申请还提供一种Serverless平台和对象存储平台,该Serverless平台和对象存储平台的具体实现可参照上述方法流程。
基于同样的发明构思,图4示例性示出了本发明实施例提供的一种Serverless平台的结构示意图,如图4所示,该Serverless平台400包括接收单元401、处理单元402;其中,
接收单元401,用于收对象存储平台发送的代码构建请求消息;
处理单元402,用于从多个预设环境函数中确定出所述代码构建请求消息对应的目标环境函数,并根据所述代码构建请求消息在所述目标环境函数中进行代码构建;所述多个预设环境函数为所述Serverless平台根据多个编程语言对应的配置信息预先安装并存储的。
可选地,所述代码构建请求消息包括所述目标代码的项目名称;
所述处理单元402具体用于:
从预设数据库中获取项目名称与环境函数标识的对应关系;根据所述项目名称与环境函数标识的对应关系,确定目标代码的项目名称对应的目标环境函数的标识;以及根据所述目标环境函数的标识,从多个预设环境函数中确定出所述目标环境函数的标识对应的目标环境函数。
可选地,所述代码构建请求消息还包括所述目标代码的配置信息;
所述处理单元402具体用于:
根据所述目标代码的项目名称,从所述预设数据库中确定所述目标代码的项目名称对应的配置信息;以及根据所述目标代码的配置信息和与所述目标代码的项目名称对应的配置信息,在所述目标环境函数中对所述目标代码进行代码构建。
可选地,所述代码构建请求消息包括所述目标代码的同步方式和/或所述目标代码的发布方式;
所述处理单元402在完成代码构建之后,还用于:
将代码构建的进度信息通过所述同步方式进行同步;所述同步方式包括电子邮件方式、http接口方式中的至少一项;和/或,生成构建完成后的代码文件,并根据所述目标代码的发布方式发布所述代码文件。
基于同样的发明构思,图5示例性示出了本发明实施例提供的一种对象存储平台的结构示意图,如图5所示,该对象存储平台500包括接收单元501、处理单元502、发送单元503;其中,
接收单元501,用于对象存储平台接收用户发送的代码更新请求消息;所述代码更新请求消息包括目标代码对应的代码托管平台的标识;
处理单元502,用于从所述代码托管平台的标识对应的代码托管平台中获取目标代码,根据所述目标代码生成代码构建请求消息;
发送单元503,用于将所述代码构建请求消息发送给Serverless平台
本发明实施例中,Serverless平台在接收到对象存储平台发送的代码构建请求之后,能够从多个预设环境函数中确定出该代码构建请求消息对应的目标环境函数,并根据该代码构建请求消息在目标环境函数中进行代码构建。本发明实施例中,由于多个预设环境函数为Serverless平台根据多个编程语言对应的配置信息预先安装并存储的,因此,Serverless平台在确定目标环境函数之后,可以直接在目标环境函数中进行代码构建,无需安装构建环境,从而能够有效避免由于受到网络的影响而导致安装构建环境出现故障的情况,进而能够提高代码构建的效率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种代码构建方法,其特征在于,所述方法包括:
Serverless平台接收对象存储平台发送的代码构建请求消息;
所述Serverless平台从多个预设环境函数中确定出所述代码构建请求消息对应的目标环境函数,并根据所述代码构建请求消息在所述目标环境函数中进行代码构建;所述多个预设环境函数为所述Serverless平台根据多个编程语言对应的配置信息预先安装并存储的。
2.根据权利要求1所述的方法,其特征在于,所述代码构建请求消息包括所述目标代码的项目名称;
所述Serverless平台从所述Serverless平台存储的多个预设环境函数中确定出与所述代码构建请求消息对应的目标环境函数,包括:
所述Serverless平台从预设数据库中获取项目名称与环境函数标识的对应关系;
所述Serverless平台根据所述项目名称与环境函数标识的对应关系,确定目标代码的项目名称对应的目标环境函数的标识;
所述Serverless平台根据所述目标环境函数的标识,从多个预设环境函数中确定出所述目标环境函数的标识对应的目标环境函数。
3.根据权利要求2所述的方法,其特征在于,所述代码构建请求消息还包括所述目标代码的配置信息;
所述Serverless平台根据所述代码构建请求消息在所述目标环境函数中进行代码构建,包括:
所述Serverless平台根据所述目标代码的项目名称,从所述预设数据库中确定所述目标代码的项目名称对应的配置信息;
所述Serverless平台根据所述目标代码的配置信息和与所述目标代码的项目名称对应的配置信息,在所述目标环境函数中对所述目标代码进行代码构建。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述代码构建请求消息包括所述目标代码的同步方式和/或所述目标代码的发布方式;
在所述Serverless平台完成代码构建之后,所述方法还包括:
所述Serverless平台将代码构建的进度信息通过所述同步方式进行同步;所述同步方式包括电子邮件方式、http接口方式中的至少一项;
和/或,
所述Serverless平台生成构建完成后的代码文件,并根据所述目标代码的发布方式发布所述代码文件。
5.一种代码构建方法,其特征在于,所述方法包括:
对象存储平台接收用户发送的代码更新请求消息;所述代码更新请求消息包括目标代码对应的代码托管平台的标识;
所述对象存储平台从所述代码托管平台的标识对应的代码托管平台中获取目标代码,根据所述目标代码生成代码构建请求消息,并将所述代码构建请求消息发送给Serverless平台。
6.一种Serverless平台,其特征在于,所述Serverless平台包括:
接收单元,用于收对象存储平台发送的代码构建请求消息;
处理单元,用于从多个预设环境函数中确定出所述代码构建请求消息对应的目标环境函数,并根据所述代码构建请求消息在所述目标环境函数中进行代码构建;所述多个预设环境函数为所述Serverless平台根据多个编程语言对应的配置信息预先安装并存储的。
7.根据权利要求6所述的Serverless平台,其特征在于,所述代码构建请求消息包括所述目标代码的项目名称;
所述处理单元具体用于:
从预设数据库中获取项目名称与环境函数标识的对应关系;根据所述项目名称与环境函数标识的对应关系,确定目标代码的项目名称对应的目标环境函数的标识;以及根据所述目标环境函数的标识,从多个预设环境函数中确定出所述目标环境函数的标识对应的目标环境函数。
8.根据权利要求7所述的Serverless平台,其特征在于,所述代码构建请求消息还包括所述目标代码的配置信息;
所述处理单元具体用于:
根据所述目标代码的项目名称,从所述预设数据库中确定所述目标代码的项目名称对应的配置信息;以及根据所述目标代码的配置信息和与所述目标代码的项目名称对应的配置信息,在所述目标环境函数中对所述目标代码进行代码构建。
9.根据权利要求6至8中任一项所述的Serverless平台,其特征在于,所述代码构建请求消息包括所述目标代码的同步方式和/或所述目标代码的发布方式;
所述处理单元在完成代码构建之后,还用于:
将代码构建的进度信息通过所述同步方式进行同步;所述同步方式包括电子邮件方式、http接口方式中的至少一项;和/或,生成构建完成后的代码文件,并根据所述目标代码的发布方式发布所述代码文件。
10.一种对象存储平台,其特征在于,所述对象存储平台包括:
接收单元,用于对象存储平台接收用户发送的代码更新请求消息;所述代码更新请求消息包括目标代码对应的代码托管平台的标识;
处理单元,用于从所述代码托管平台的标识对应的代码托管平台中获取目标代码,根据所述目标代码生成代码构建请求消息;
发送单元,用于将所述代码构建请求消息发送给Serverless平台。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810214044.2A CN110275699A (zh) | 2018-03-15 | 2018-03-15 | 一种代码构建方法及Serverless平台、对象存储平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810214044.2A CN110275699A (zh) | 2018-03-15 | 2018-03-15 | 一种代码构建方法及Serverless平台、对象存储平台 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110275699A true CN110275699A (zh) | 2019-09-24 |
Family
ID=67958491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810214044.2A Pending CN110275699A (zh) | 2018-03-15 | 2018-03-15 | 一种代码构建方法及Serverless平台、对象存储平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110275699A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110650215A (zh) * | 2019-10-24 | 2020-01-03 | 百度在线网络技术(北京)有限公司 | 边缘网络的函数执行方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040111608A1 (en) * | 2002-12-05 | 2004-06-10 | Microsoft Corporation | Secure recovery in a serverless distributed file system |
CN104536744A (zh) * | 2014-12-19 | 2015-04-22 | 微梦创科网络科技(中国)有限公司 | 一种自动化构建与部署代码的方法及服务器 |
CN104572644A (zh) * | 2013-10-10 | 2015-04-29 | 北京大学 | 数据库更新装置和数据库更新方法 |
CN106559438A (zh) * | 2015-09-24 | 2017-04-05 | 阿里巴巴集团控股有限公司 | 一种基于目标网络平台的程序上传方法和装置 |
CN106775911A (zh) * | 2016-11-25 | 2017-05-31 | 努比亚技术有限公司 | 一种用于应用开发的测试方法及装置 |
CN107357558A (zh) * | 2016-05-10 | 2017-11-17 | 阿里巴巴集团控股有限公司 | 构建代码的方法及装置 |
-
2018
- 2018-03-15 CN CN201810214044.2A patent/CN110275699A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040111608A1 (en) * | 2002-12-05 | 2004-06-10 | Microsoft Corporation | Secure recovery in a serverless distributed file system |
CN104572644A (zh) * | 2013-10-10 | 2015-04-29 | 北京大学 | 数据库更新装置和数据库更新方法 |
CN104536744A (zh) * | 2014-12-19 | 2015-04-22 | 微梦创科网络科技(中国)有限公司 | 一种自动化构建与部署代码的方法及服务器 |
CN106559438A (zh) * | 2015-09-24 | 2017-04-05 | 阿里巴巴集团控股有限公司 | 一种基于目标网络平台的程序上传方法和装置 |
CN107357558A (zh) * | 2016-05-10 | 2017-11-17 | 阿里巴巴集团控股有限公司 | 构建代码的方法及装置 |
CN106775911A (zh) * | 2016-11-25 | 2017-05-31 | 努比亚技术有限公司 | 一种用于应用开发的测试方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110650215A (zh) * | 2019-10-24 | 2020-01-03 | 百度在线网络技术(北京)有限公司 | 边缘网络的函数执行方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10887404B2 (en) | Method and apparatus for virtualized network function chaining management | |
CN111506412B (zh) | 基于Airflow的分布式异步任务构建、调度系统及方法 | |
US20190026216A1 (en) | Debugging in-cloud distributed code in live load environment | |
CN109286653A (zh) | 智能云工程平台 | |
US8819658B2 (en) | Methods and systems for managing update requests for a deployed software application | |
US11294711B2 (en) | Wait a duration timer action and flow engine for building automated flows within a cloud based development platform | |
CN104679717A (zh) | 集群弹性部署的方法和管理系统 | |
EP3442201B1 (en) | Cloud platform construction method and cloud platform | |
WO2018158956A1 (ja) | データ処理装置、データ処理方法、設定管理装置およびデータ処理システム | |
CN110096424A (zh) | 测试的处理方法、装置、电子设备及存储介质 | |
CN108563455A (zh) | 一种k-ux操作系统上中间件部署方法、系统及设备 | |
CN111831567B (zh) | 应用的测试环境配置方法、装置、系统和介质 | |
CN110162334A (zh) | 一种代码管理方法、装置、存储介质及计算机程序产品 | |
US20190137958A1 (en) | Data collection for assistance in an industrial automation environment | |
CN110532021A (zh) | 分布式控制系统的组态文件的处理方法及装置 | |
CN114461269A (zh) | 软件开发发布管理方法、装置、设备及存储介质 | |
JPWO2014054230A1 (ja) | 情報システム構築装置、情報システム構築方法および情報システム構築プログラム | |
CN109828830B (zh) | 用于管理容器的方法和装置 | |
CN110275699A (zh) | 一种代码构建方法及Serverless平台、对象存储平台 | |
CN113076186A (zh) | 任务处理的方法、装置、电子设备和存储介质 | |
CN112084000A (zh) | 容器集群的测试方法和装置 | |
Padget et al. | Deontic Sensors. | |
US9256700B1 (en) | Public service for emulation of application load based on synthetic data generation derived from preexisting models | |
CN115857959A (zh) | 一种平台的服务模块部署方法、装置、设备及存储介质 | |
CN105677331A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190924 |