System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及云平台容器,更具体地说,本专利技术涉及一种基于serverless架构的golang运行时实现方法。
技术介绍
1、伴随云原生技术日渐成熟,越来越多的用户为了降本增效,也纷纷开始业务上云。传统云原生技术通过容器、服务网络、微服务、不可变基础设施以及声明式应用编程接口(api)等技术,解决了复杂应用/服务的构建、部署和管理问题,为开发者屏蔽了底层硬件的运维,带来了云平台特有的可扩展性、弹性和灵活性优势。但同时也为软件/服务开发增加了额外的复杂性,如容器编排、微服务架构等。
2、与此同时serverless computing(无服务器计算,下面简称为serverless)作为云计算的一种重要模型,开始被广泛使用,serverless以paas(平台即服务)为基础,提供一个轻量级架构,终端客户不需要部署、配置或管理服务器服务,所有代码运行所需要的资源和环境皆由云端平台来提供。
3、这能极大地降低应用/服务的开发复杂度,让用户重新聚焦于业务逻辑的开发,把管理机器资源、网络资源这些繁琐的事情交给更专业的平台去处理。
4、然而用户业务代码往往是多样的,要通过serverless架构运行用户代码需要提供多语言的运行时。
技术实现思路
1、为了克服现有技术的上述缺陷,本专利技术提供一种基于serverless架构的golang运行时实现方法,包括:获取源代码,基于源代码编译生成可执行的二进制文件,写入二进制文件到基础镜像;获取runtime的ap
2、优选地,基础镜像包含一个agent脚本,用于启动一个httpserver,并与外部通信,作为容器启动时的entrypoint。
3、优选地,实现一个httpserver,用于接收事件并执行用户的业务逻辑。
4、优选地,定义ctycontext结构体,用于封装运行时相关的信息,在回调函数执行时,将ctycontext结构体传递给用户的业务逻辑代码。
5、优选地,基础镜像的创建方法为,基于golang官方的release镜像创建一个基础镜像,用于直接运行编译后的go可执行文件,即用户已编译的二进制文件;
6、优选地,二进制文件写入基础镜像的方法为,在基础镜像构建阶段则将二进制文件打包进指定目录。
7、一种基于serverless架构的golang运行时实现系统,用于实现上述的一种基于serverless架构的golang运行时实现方法实现,其特征在于,包括:
8、golang runtime docker镜像,基于docker技术,用于创建和运行docker容器,提供基于golang的运行时环境;
9、sdk架构,基于runtime的api,以sdk的形式向用户提供函数注册的能力。
10、优选地,golang runtime docker镜像包括:
11、基础镜像,使用golang官方的release镜像,提供完整的golang运行环境;agent脚本,作为容器启动时的entrypoint,负责设置环境变量和启动一个httpserver,用于与外部通信。
12、优选地,sdk架构包括httpserver实现,用于接收事件并执行用户逻辑。
13、优选地,sdk架构包括定义ctycontext结构体,用于用户获取运行时信息。
14、本专利技术一种基于serverless架构的golang运行时实现方法的技术效果和优点:
15、1.没有使用反射技术,执行速度和性能上都比使用了反射的更优。
16、2.sdk减少了应用程序的依赖和部署的复杂性,进而减少了sdk的体积。
17、3.该方案可扩展到其他编程语言,包括解释行的编程语言也适用。
本文档来自技高网...【技术保护点】
1.一种基于serverless架构的Golang运行时实现方法,其特征在于,包括:
2.根据权利要求1所述的一种基于serverless架构的Golang运行时实现方法,其特征在于,基础镜像包含一个agent脚本,用于启动一个HttpServer,并与外部通信,作为容器启动时的entrypoint。
3.根据权利要求1所述的一种基于serverless架构的Golang运行时实现方法,其特征在于,实现一个HttpServer,用于接收事件并执行用户的业务逻辑。
4.根据权利要求1所述的一种基于serverless架构的Golang运行时实现方法,其特征在于,定义CtyContext结构体,用于封装运行时相关的信息,在回调函数执行时,将CtyContext结构体传递给用户的业务逻辑代码。
5.根据权利要求1所述的一种基于serverless架构的Golang运行时实现方法,其特征在于,基础镜像的创建方法为,基于Golang官方的release镜像创建一个基础镜像,用于直接运行编译后的go可执行文件,即用户已编译的二进制文件。
...【技术特征摘要】
1.一种基于serverless架构的golang运行时实现方法,其特征在于,包括:
2.根据权利要求1所述的一种基于serverless架构的golang运行时实现方法,其特征在于,基础镜像包含一个agent脚本,用于启动一个httpserver,并与外部通信,作为容器启动时的entrypoint。
3.根据权利要求1所述的一种基于serverless架构的golang运行时实现方法,其特征在于,实现一个httpserver,用于接收事件并执行用户的业务逻辑。
4.根据权利要求1所述的一种基于serverless架构的golang运行时实现方法,其特征在于,定义ctycontext结构体,用于封装运行时相关的信息,在回调函数执行时,将ctycontext结构体传递给用户的业务逻辑代码。
5.根据权利要求1所述的一种基于serverless架构的golang运行时实现方法,其特征在于,基础镜像的创建方法为,基于golang官方的release镜像创建一个基础镜像,用于直接运行编译后的go可执...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。