在按需网络代码执行系统中执行辅助功能技术方案

技术编号:27695463 阅读:27 留言:0更新日期:2021-03-17 05:17
描述了用于通过实现对代码的高效执行的方式在按需代码执行系统中提供辅助功能的系统和方法。用户可通过提交代码而在所述系统上生成任务。所述系统可确定所述所提交的代码当在所述系统上执行时可能需要的所述辅助功能,并且可通过供应与执行所述所提交的代码的虚拟机实例结合工作的边车虚拟机实例来提供这些辅助功能。边车可基于每个任务、每个用户或每个请求来提供辅助功能,并且所述边车的生命周期可基于执行所提交的代码的所述虚拟机实例的生命周期来确定。因此可仅在需要时提供辅助功能,并且可通过防止用户访问其他用户的边车来安全地提供所述辅助功能。

【技术实现步骤摘要】
【国外来华专利技术】在按需网络代码执行系统中执行辅助功能
技术介绍
计算装置可以利用通信网络来交换数据。公司和组织操作将许多计算装置互连的计算机网络以支持操作或向第三方提供服务。计算系统可位于单个地理位置或位于多个不同的地理位置(例如,经由专用通信网络或公共通信网络进行互连)。具体地,数据中心或数据处理中心(本文一般称为“数据中心”)可包括许多互连的计算系统来向数据中心的用户提供计算资源。所述数据中心可以是代表组织进行运营的专用数据中心或者是代表公众或为了公众的利益而运营的公共数据中心。为了促进对数据中心资源的增加的利用率,虚拟化技术允许单个物理计算装置托管虚拟机的一个或多个实例,所述虚拟机的一个或多个实例相对于数据中心的用户显现且操作为独立的计算装置。通过虚拟化,单个物理计算装置可通过动态的方式创建、维持、删除或以其他方式管理虚拟机。用户继而可向数据中心请求计算机资源,包括单个计算装置或连网的计算装置配置,并且被提供不同数目的虚拟机资源。在一些情景下,可根据许多虚拟机实例类型来配置虚拟机实例以提供特定功能性。例如,可使各种计算装置与操作系统或操作系统配置、虚拟化的硬件资源和软件应用的不同组合相关联,以使计算装置能够提供不同的所要的功能性或者更高效地提供类似的功能性。这些虚拟机实例类型配置常常包含在装置映像内,所述装置映像包括静态数据,所述静态数据包含虚拟机在被启动时便运行的软件(例如,OS和应用以及它们的配置和数据文件等)。装置映像通常存储在用于创建或初始化所述实例的磁盘上。因此,计算装置可处理所述装置映像以便实施所要的软件配置。附图说明图1是描绘说明性环境的框图,在所述说明性环境中,按需代码执行系统可操作以执行与可由按需代码执行系统的用户提交的代码相对应的任务,并且供应并执行边车虚拟机实例以促进所提交的代码的执行;图2描绘提供边车配置系统的计算装置的通用架构,所述边车配置系统被配置为促进配置用于促进在图1的按需代码执行系统上执行任务的边车虚拟机实例;图3是描绘用于向图1的按需代码执行系统提交与任务相对应的代码并且用于使按需代码执行系统确定边车配置以促进在按需代码执行系统上执行任务的说明性交互的流程图;图4是描绘用于利用在图1的按需代码执行系统上提供的所确定的边车配置来执行任务的说明性交互的流程图;图5是描绘用于在图1的按需代码执行系统上管理边车虚拟机实例的生命周期的说明性交互的流程图;图6是描绘在边车虚拟机实例与在图1的按需代码执行系统上执行与任务相对应的代码的虚拟机实例之间的说明性交互的流程图;图7是描绘用于基于提交给图1的按需代码执行系统的代码来确定边车配置的说明性例程的流程图;以及图8是描绘用于在于图1的按需代码执行系统上执行任务期间管理边车的生命周期的说明性例程的流程图。具体实施方式一般来说,本公开的各方面涉及按需代码执行系统。按需代码执行系统使得能够快速执行可由按需代码执行系统的用户供应的代码。更具体地,本公开的实施方案涉及通过使用“边车”虚拟机实例来实施用于按需代码执行系统的辅助功能。如本文详细描述,按需代码执行系统可提供网络可访问服务,所述网络可访问服务使用户能够提交或指定将要由虚拟机实例在按需代码执行系统上执行的计算机可执行代码。按需代码执行系统上的每一组代码可限定“任务”并且当在按需代码执行系统的虚拟机实例上被执行时实施与那个任务相对应的特定功能性。在按需代码执行系统上单独地实施任务可称为“执行”任务(或“任务执行”)。按需代码执行系统可进一步使用户能够基于多种潜在事件来触发任务的执行,所述潜在事件诸如为在基于网络的存储系统处检测到新的数据、向按需代码执行系统传输应用编程接口(“API”)调用或向按需代码执行系统传输特殊格式化的超文本传输协议(“HTTP”)包。因此,用户可利用按需代码执行系统“按需”执行任何指定的可执行代码,而不需要配置或维护在其上执行代码的基础硬件或基础设施。此外,按需代码执行系统可被配置为通过快速的方式(例如,在100毫秒[ms]以下)执行任务,从而实现“实时”(例如,在终端用户几乎不可感知的延迟的情况下)执行任务。按需代码执行系统可按需将虚拟机实例实例化以执行指定任务。按需代码执行系统可进一步将“边车”虚拟机实例实例化,所述“边车”虚拟机实例使用户能够控制或监视任务的执行和所述任务在其上执行的虚拟机实例。说明性地,边车虚拟机实例(这在本文可以称为“边车”)可实施用于控制、保护、过滤、监视或管理执行任务代码的虚拟机实例的一个或多个功能。通过在一个或多个边车中实施这些功能,按需代码执行系统可有效地使这些功能与执行任务代码的虚拟机实例分开。边车实现方式因此提高了关于资源利用的效率,因为(如在下文更详细地描述)可仅在需要时使边车可用。边车实现方式进一步提高了单独的用户的安全性,因为损害一个边车的攻击者不能访问其他用户的边车或虚拟机实例。如本文使用,“辅助功能”可一般涉及促进执行用户提交的任务代码的功能。例如,辅助功能可包括封装、记录、追踪、调试、扫描、剖析、验证输入、验证输出或涉及任务代码执行的其他功能。然而,本领域技术人员将理解,这些示例不具限制性,并且执行其他功能的边车在本公开的范围内。在一些实施方案中,辅助功能可包括在管理员级别的权限下执行的控制平面功能。可将边车实例化以基于每个用户、每个任务或每个调用来执行这些功能,并且因此可向单独的用户提供对用于他们的虚拟机实例的个性化的控制平面的访问。例如,可使封装网络流量的边车可由单独的用户使用,并且所述边车可将在物理底层网络上运输的包转移到用户可从用户的虚拟机实例访问的虚拟网络。按需代码执行系统因此可经由边车提供网络封装,并且可在不允许运行用户代码的虚拟机实例访问底层网络并且潜在地将其他用户的流量解除封装的情况下如此做。本领域技术人员鉴于本公开将了解,本文公开的实施方案提高了诸如按需代码执行系统的计算系统通过有效的方式执行代码的能力。另外,目前公开的实施方案解决了计算系统内固有的技术问题;具体地,执行代码所使用的计算资源的有限性质、与提供“不间断”辅助功能性相关联的资源开销、由供应未利用的功能性引起的低效以及由向多个用户提供共同的控制平面引起的安全问题。通过本文描述的各种技术解决方案来解决这些技术问题,包括供应具有边车虚拟机实例的执行环境,所述边车虚拟机实例提供用户专有或任务专有的功能性。因此,本公开表示现有的数据处理系统和一般计算系统的改进。按需代码执行系统可包括虚拟机实例管理器,所述虚拟机实例管理器被配置为接收用户代码(通过多种编程语言中的任一者编撰的线程、程序等)并且通过高度可缩放、低等待时间的方式执行代码,而不需要用户配置虚拟机实例。具体地,虚拟机实例管理器可在接收用户代码之前以及在从用户接收关于任何特定虚拟机实例配置的任何信息之前根据预定组配置来创建和配置虚拟机实例,每个对应于多种运行时环境中的任何一者或多者。其后,虚拟机实例管理器接收用户发起的执行代码的请求,并且基于与所述请求相关联的配置信息来识别预配置的虚拟机实例以执行代码。虚拟机实例管理器可本文档来自技高网...

【技术保护点】
1.一种系统,其包括:/n物理数据存储区,所述物理数据存储区存储配置信息;以及/n计算装置,所述计算装置配置有可执行指令以:/n接收在按需代码执行系统上执行用户提交的代码的请求;/n至少部分地基于所述请求来确定多个虚拟机实例,所述多个虚拟机实例包括用以执行所述用户提交的代码的第一虚拟机实例和用以执行辅助功能的第二虚拟机实例;/n致使所述第一虚拟机实例根据配置来执行所述用户提交的代码;/n致使所述第二虚拟机实例根据配置来执行所述辅助功能;/n监视所述第一虚拟机实例上的所述用户提交的代码的执行以检测所述第一虚拟机实例的执行状态的未决改变;/n至少部分地`一虚拟机实例的执行状态的所述未决改变来确定所述第二虚拟机实例的执行状态的改变;/n确定所述第一虚拟机实例和所述第二虚拟机实例的执行状态改变的次序;以及/n致使所述第一虚拟机实例和所述第二虚拟机实例的所述执行状态按照所确定的次序改变。/n

【技术特征摘要】
【国外来华专利技术】20180625 US 16/017,954;20180625 US 16/017,9701.一种系统,其包括:
物理数据存储区,所述物理数据存储区存储配置信息;以及
计算装置,所述计算装置配置有可执行指令以:
接收在按需代码执行系统上执行用户提交的代码的请求;
至少部分地基于所述请求来确定多个虚拟机实例,所述多个虚拟机实例包括用以执行所述用户提交的代码的第一虚拟机实例和用以执行辅助功能的第二虚拟机实例;
致使所述第一虚拟机实例根据配置来执行所述用户提交的代码;
致使所述第二虚拟机实例根据配置来执行所述辅助功能;
监视所述第一虚拟机实例上的所述用户提交的代码的执行以检测所述第一虚拟机实例的执行状态的未决改变;
至少部分地`一虚拟机实例的执行状态的所述未决改变来确定所述第二虚拟机实例的执行状态的改变;
确定所述第一虚拟机实例和所述第二虚拟机实例的执行状态改变的次序;以及
致使所述第一虚拟机实例和所述第二虚拟机实例的所述执行状态按照所确定的次序改变。


2.如权利要求1所述的系统,其中所述第一虚拟机实例的执行状态的所述未决改变包括以下各项中的一者或多者:供应所述第一虚拟机实例;开始所述用户提交的代码的执行;暂停所述第一虚拟机实例;暂停所述用户提交的代码的执行;重新开始所述第一虚拟机实例;重新开始所述用户提交的代码的执行;终止所述用户提交的代码的执行;或取消供应所述第一虚拟机实例。


3.如权利要求1所述的系统,其中用于改变所述第一虚拟机实例和所述第二虚拟机实例的所述执行状态的所述次序是至少部分地基于由所述第二虚拟机实例执行的所述辅助功能来确定。


4.如权利要求1所述的系统,其中所述辅助功能包括以下各项中的一者或多者:封装、记录、追踪、调试、扫描、剖析、验证输入或验证输出。


5.一种计算机实施的方法,其包括:
接收在按需代码执行系统上执行用户提交的代码的请求;
获得与所述用户提交的代码相关联的配置信息,所述配置信息至少指定被配置为执行所述用户提交的代码的第一虚拟机实例和被配置为执行辅助功能的第二虚拟机实例;
致使所述第一虚拟机实例根据所述配置信息来执行所述用户提交的代码;
致使所述第二虚拟机实例根据所述配置信息来执行所述辅助功能;
至少部分地基于所述第一虚拟机实例上的所述用户提交的代码的执行来识别所述第一虚拟机实例的执行状态的未决改变;
至少部分地基于所述第一虚拟机实例的执行状态的所述未决改变来确定所述第二虚拟机实例的执行状态的改变;
确定至少所述第一虚拟机实例和所述第二虚拟机实例的执行状态改变的次序;以及

【专利技术属性】
技术研发人员:尼尔·马伦菲力普·丹尼尔·皮翁卡蒂莫西·艾伦·瓦格纳马克·约翰·布鲁克
申请(专利权)人:亚马逊技术有限公司
类型:发明
国别省市:美国;US

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

1