函数即服务具有简单性,但设置过程却很繁琐。人们可以采用一些开源工具简化AWS Lambda部署。

无服务器应用程序可以将软件精简到最低限度:通常是可按需调用和扩展的一小段代码。无服务器可以运行小型应用程序(例如简单的API或单个网页),并且没有采用服务器或虚拟机的管理开销。无服务器系统简化了开发人员的工作,并在适合工作的范围内提供了弹性。

AWS Lambda是目前最知名的无服务器系统之一,但是像亚马逊公司的许多事物(以及云计算的许多事物)一样需要采用工具。而AWS Lambda是工具、框架和项目的集合,旨在简化设置、部署和管理AWS Lambda函数的过程。  

1.AWS无服务器应用程序模型(AWS SAM)  

长期以来,亚马逊公司一直以提供基础设施和提供工具为主。亚马逊公司在2016年末(AWS Lambda推出大约两年后)推出了AWS无服务器应用程序模型,该模型被称为AWS Lambda的“构建无服务器应用程序的开源框架”。  

AWS SAM本质上是一种以较少的工作量为AWS Lambda函数生成AWS CloudFormation应用程序定义的方法。像Kappa一样,企业可以创建一个YAML模板来定义其应用程序,然后将YAML转换为AWS CloudFormation声明。无服务器应用程序模型(SAM)还提供一种在本地测试已定义应用程序的方法,提供用于逐步检查AWS Lambda函数(在Node.js、Python或Go中)的工具,并与Amazon的CodeDeploy一起使用以支持对函数的修订。

2. AWS Lambda Power Tuning

调整AWS Lambda函数的成本/性能比可能很乏味。为了获得最佳结果,用户需要在函数运行时收集有关该功能的数据,然后根据提供给该功能的工作量做出决策。AWS Lambda Power Tuning项目有助于消除一些繁琐的工作。

将AWS Lambda Power Tuning部署为AWS 步进功能状态机。它接受一个AWS Lambda函数和一系列电源配置,使用每个电源配置运行该函数,并报告通常哪种配置最有效地完成工作。通过采用AWS Lambda Power Tuning 2.0版,用户可以针对成本或速度来优化功能。

3.Kappa  

Kappa以希腊字母lambda之前的字母命名,是一种Python工具集,用于简化AWS Lambda函数的部署。创建AWS Lambda函数涉及许多离散步骤:创建函数、配置权限、配置策略和角色、上载功能、运行测试、,添加事件源等。采用Kappa使其过程自动化。  

用户将创建一个描述函数和运行时环境的YAML文件,并提供一个JSON文件作为测试输入。单元测试通过Python的nose来运行,但是任何测试运行器都可以互换。Kappa使得删除函数和删除其关联的角色、策略、事件源信息变得容易,因此用户可以将其设置和拆除。如果需要,可以使用更大的测试机制。

在此提出一个警告:Kappa两年内未进行任何修订。同样用Python编写的AWS无服务器应用程序模型项目提供了更完整和最新的功能集。

4.Lambda Warmer  

调用时,AWS Lambda函数将运行一段有限的时间(最多15分钟),然后关闭。每当需要重新启动它们时,函数可能会延迟几秒钟。Lambda Warmer项目为用户提供了一种使AWS Lambda函数保持活动状态,并独立避免“冷启动”的方法。  

用JavaScript编写的Lambda Warmer是可以添加到现有AWS Lambda函数的模块。它在将实际请求传递给主逻辑时,拦截发送给函数的预热“ping”,并采取适当的操作(例如如果用户使用并发,则处理初始化并发函数实例)。请注意,Lambda Warmer不会触发预热动作。为此,用户需要一个CloudWatch规则或其他一些定期调用的机制。

5.Lambdoku  

如果用户是Heroku的忠实粉丝,并且想在AWS Lambda上体验类似于Heroku的体验,那么Lambdoku是用户的不二之选。 Lambdoku使用类似于Heroku的命令将AWS Lambda API封装在命令行界面中,甚至模拟了许多Heroku行为,例如管道、配置和发布。其缺点是:由于AWS Lambda处理配置更改的方式,Lambdoku无法像Heroku一样保证操作。  

6.适用于AWS Lambda的OpenFaaS  

OpenFaaS项目的任务是“使将任何内容简化为无服务器功能的过程变得简单”。 “anything”是指以任何语言编写的任何代码以及在Docker容器中运行的任何运行时。

OpenFaaS将Docker容器转换为无服务器函数,并使用Kubernetes对生成的应用程序进行缩放、管理和路由控制。因此,OpenFaaS允许将无服务器功能部署到可使用Kubernetes的任何系统(包括公共云)。  

现在,OpenFaaS开发人员正在对服务提供商附加组件,适用于AWS Lambda的FaaS-lambda进行beta测试。借助适用于AWS Lambda的OpenFaaS,打包用于OpenFaaS的应用程序可以在AWS Lambda实例和Kubernetes上互换运行。正如OpenFaaS开发人员所指出的那样,要求较低的功能可以保留在AWS Lambda上(甚至在免费层上),而要求较高的功能可以在Kubernetes上运行。用于Lambda的OpenFaaS仍处于私有测试阶段,但该项目正在接受注册以进行早期预览。  

7.Serverless Framework  

本文中描述的大多数项目都专门针对AWS Lambda。无服务器框架扩展了更广阔的网络,允许开发人员在AWS Lambda、Google Cloud、Microsoft Azure、Apache OpenWhisk和Kubeless(用于Kubernetes的无服务器框架)上创建和部署无服务器应用程序。  

使用无服务器框架,可通过CLI创建无服务器函数,并将该函数的配置存储在生成的可开发人员编辑的YAML文件中。CLI还用于部署、测试和调用函数、检索日志、执行监视以及从部署中删除函数。用户可以从无到有地创建新函数,也可以基于许多可用示例之一。也可以将函数集成到工件中以供以后部署。  

无服务器框架还尝试将其内部结构映射为尽可能接近目标平台的函数。例如,其“图层”功能映射到AWS Lambda图层。

【凡本网注明来源非中国IDC圈的作品,均转载自其它媒体,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。】

关注中国IDC圈官方微信:idc-quan 我们将定期推送IDC产业最新资讯

查看心情排 行你看到此篇文章的感受是:


  • 支持

  • 高兴

  • 震惊

  • 愤怒

  • 无聊

  • 无奈

  • 谎言

  • 枪稿

  • 不解

  • 标题党
2022-10-20 11:31:46
国际资讯 投资50亿,AWS将在泰国曼谷推出云区域
目前,AWS在亚太地区共运营着10个区域,包括新加坡、澳大利亚、印度尼西亚、日本、印度和韩国。它还在泰国曼谷拥有10个CloudFront边缘站点。 <详情>
2021-11-09 16:32:13
国际资讯 亚马逊AWS计划在加拿大西部新建数据中心
11月9日消息,当地时间周一亚马逊宣布将在加拿大西部建设数据中心,提升公司在加拿大市场的云服务连接速度和信息存储能力。 <详情>
2021-11-01 11:04:58
云资讯 亚马逊第三季度财报:AWS增长提速,收入达161亿美元
AWS的收入增长是由包括机器学习在内的广泛服务基础推动的。 <详情>
2021-06-29 09:57:00
云资讯 AWS和Salesforce宣布深化合作 集成双方云产品简化应用项目
AWS和Salesforce正在展开合作进行集成,未来将把双方各自的大量云产品相互连接起来。 <详情>
2021-06-09 09:31:25
大数据技术 揭开AWS的Timestream数据库的面纱
AWS因不断推出新的云计算服务而闻名业界,不过AWS云计算服务太多了,客户往往难以了解所有的服务,AWS的数据库也不例外。 <详情>