7种使AWS Lambda更好的开源工具
无服务器应用程序将软件精简到最低限度:一小段代码,可按需调用和扩展。 Serverless只是小型应用程序的门票,例如简单的API或单个网页,不需要整个服务器或虚拟机的管理开销。 无服务器系统简化了开发人员的生活,并提供了适合工作的规模弹性。
AWS Lambda是目前最著名的无服务器系统之一,但是像亚马逊的许多事物(以及云的许多事物)一样,如果您尝试用裸手抓住它,它可能会割伤您的手指。 这是工具,框架和项目的集合,旨在简化设置,部署和管理AWS Lambda函数的过程。
[ 也在InfoWorld上:PaaS,CaaS或FaaS? 如何选择 ]
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一起使用以支持对函数的修订。
AWS Lambda电源调整
调整AWS Lambda函数的成本/性能比可能很乏味。 为了获得最佳结果,您需要在功能运行时收集有关该功能的数据,然后根据提供给该功能的工作量做出决策。 AWS Lambda Power Tuning项目有助于消除一些麻烦。
AWS Lambda Power Tuning部署为AWS Step Functions状态机。 它接受一个AWS Lambda函数和一系列电源配置,使用每个电源配置运行该功能,并报告通常哪种配置最有效地完成工作。 通过AWS Lambda Power Tuning 2.0版,您可以针对成本或速度来优化功能。
河童
Kappa以希腊字母lambda之前的字母命名,是一种Python工具集,用于简化AWS Lambda函数的部署。 创建AWS Lambda函数涉及许多离散步骤:创建函数; 配置权限,配置策略和角色,上载功能,运行测试,添加事件源等。 Kappa使过程自动化。
您将创建一个描述函数和运行时环境的YAML文件,并提供一个JSON文件作为测试输入。 单元测试通过Python的nose
运行,但是任何测试运行器都可以互换。Kappa使删除函数和删除其关联的角色/策略/事件源信息变得很容易,因此您可以将其设置和拆除如果需要,可以使用更大的测试机制。
一个警告:Kappa两年内未进行任何修订。 同样用Python编写的AWS无服务器应用程序模型项目提供了更完整和最新的功能集。
[ InfoWorld的2020年度技术奖获奖者:年度最佳软件开发,云计算,数据分析和机器学习产品 ]
Lambda保温器
调用时,AWS Lambda函数将运行一段有限的时间(最多15分钟),然后关闭。 每当需要重新启动它们时,功能可能会延迟几秒钟。 Lambda Warmer项目为您提供了一种使AWS Lambda功能保持活动状态并独立避免“冷启动”的方法。
用JavaScript编写的Lambda Warmer是可以添加到现有AWS Lambda函数的模块。 它在将实际请求传递给主逻辑时,拦截发送给函数的预热“ ping”并采取适当的操作(例如,如果您使用并发,则处理初始化并发函数实例)。 请注意,Lambda Warmer不会触发预热动作。 为此,您需要一个CloudWatch规则或其他一些定期调用的机制。
Lambdoku
如果您是Heroku的忠实粉丝,并且想在AWS Lambda上体验类似于Heroku的体验, 那么Lambdoku非常适合您。 Lambdoku使用类似于Heroku的命令在命令行界面中包装AWS Lambda API,甚至模拟了许多Heroku行为,例如pipelines
, config
和releases
。 缺点:由于AWS Lambda处理配置更改的方式,Lambdoku无法像Heroku一样保证操作会原子发生。
适用于AWS Lambda的OpenFaaS
OpenFaaS项目的任务是“使将任何内容简化为无服务器功能的过程变得简单”。 “任何内容”是指以任何语言编写的任何代码以及在Docker容器中运行的任何运行时。 OpenFaaS将Docker容器转换为无服务器功能,并使用Kubernetes对生成的应用程序进行缩放,管理和路由控制。 因此,OpenFaaS允许将无服务器功能部署到可使用Kubernetes的任何系统(包括公共云)。
现在,OpenFaaS开发人员正在对服务提供商附加组件, 适用于AWS Lambda的 faF-lambda或beta进行beta测试。 借助适用于AWS Lambda的OpenFaaS,打包用于OpenFaaS的应用程序可以在AWS Lambda实例和Kubernetes上互换运行。 正如OpenFaaS开发人员所指出的那样,要求较低的功能可以保留在AWS Lambda上(甚至在免费层上),而要求较高的功能可以在Kubernetes上运行。 用于Lambda的OpenFaaS仍处于私测中,但该项目正在接受注册以进行早期预览。
[ 通过InfoWorld的Cloud Computing Report新闻通讯了解云计算的最新发展 ]
无服务器框架
本文中描述的大多数项目都专门针对AWS Lambda。 无服务器框架投放了更广阔的网络,使开发人员可以在AWS Lambda,Google Cloud,Microsoft Azure, Apache OpenWhisk和Kubeless (这是Kubernetes的无服务器框架)上创建和部署无服务器应用程序。
使用无服务器框架,可通过CLI创建无服务器功能,并将该功能的配置存储在生成的,可由开发人员编辑的YAML文件中 。 CLI还用于部署,测试和调用功能,检索日志,执行监视以及从部署中删除功能。 您可以一无所获地创建新功能,也可以基于许多可用示例之一。 也可以将功能打包到工件中以供以后部署。
无服务器框架还尝试将其内部结构映射为尽可能接近目标平台的功能。 例如,其“图层”功能映射到AWS Lambda图层。
From: https://www.infoworld.com/article/3434007/7-open-source-tools-that-make-aws-lambda-better.html
7种使AWS Lambda更好的开源工具相关推荐
- aws lambda_7种使AWS Lambda更好的开源工具
aws lambda 无服务器应用程序将软件精简到最低限度:一小段代码,可按需调用和扩展. 无服务器只是小型应用程序的票证,例如简单的API或单个网页,不需要整个服务器或虚拟机的管理开销. 无服务器系 ...
- android集群管理工具,使Kubernetes管理更轻松的十个工具
原标题:使Kubernetes管理更轻松的十个工具 随着Kubernetes的发展和演变,人们可以从内部来驯服它的无节制行为.但有些人并不情愿干等Kubernetes变得易于使用,并且为已投入生产的K ...
- 在AWS Lambda上部署标准FFmpeg工具——Docker方案
大纲 1 确定Lambda运行时环境 1.1 Lambda系统.镜像.内核版本 1.2 运行时 1.2.1 Python 1.2.2 Java 2 启动EC2 3 编写调用FFmpeg的代码 4 生成 ...
- 在AWS Lambda上部署标准FFmpeg工具——自定义层的方案
大纲 1 确定Lambda运行时环境 1.1 Lambda系统.镜像.内核版本 1.2 运行时 1.2.1 Python 1.2.2 Java 2 打包FFmpeg 3 创建Lambda的Layer ...
- 如何使用Java创建AWS Lambda函数
在本教程中,我们将看到如何在Java中创建AWS Lambda函数,我告诉你,这样做非常容易-- 基本上,我们可以通过三种方式创建AWS Lambda函数: –通过实现RequestHandler接口 ...
- AWS Lambda事件源映射:使您的触发器混乱无序
最近,我们为Sigma Cloud IDE上的无服务器项目引入了两个新的AWS Lambda事件源(触发类型): SQS队列和DynamoDB流 . (是的,AWS在几个月前就向他们介绍了:但是我们仍 ...
- 编码中统一更该变量的快捷键_流媒体的7种方式使您成为更好的编码器
编码中统一更该变量的快捷键 by freeCodeCamp 通过freeCodeCamp 流媒体的7种方式使您成为更好的编码器 (7 Ways Streaming Makes you a Better ...
- elixir开发的项目_我对Elixir的介绍:学习另一种编程语言如何使您成为更好的开发人员...
elixir开发的项目 by Nikolas O'Donnell 由Nikolas O'Donnell 我对Elixir的介绍:学习另一种编程语言如何使您成为更好的开发人员 (My intro to ...
- aws lambda使用_如何使用AWS Lambda和S3构建无服务器URL缩短器
aws lambda使用 by Daniel Ireson 丹尼尔·埃里森(Daniel Ireson) 如何使用AWS Lambda和S3构建无服务器URL缩短器 (How to build a S ...
最新文章
- 深入Java核心 Java中多态的实现机制(1)
- HR 问“你目前有几个 Offer”,聪明人会怎么说?你呢!
- 蓝桥杯-矩阵乘法(java)
- 豆瓣评分 9.1,揭秘乔布斯如何成为最伟大的产品经理?
- 构建iOS持续集成平台(三)——CI服务器与自动化部署
- 置顶java[常用]-[语法]-[基础操作]
- C# 读取指定目录中的所有文件,并按规则生成SQL语句!
- Spark官方调优文档翻译(转载)
- 构建meteor应用程序_我构建了一个渐进式Web应用程序并将其发布在3个应用程序商店中。 这是我学到的。...
- [置顶] Python编程-混合编程(C++,python,opencv)实现
- PNP8550(3.3V DC蜂鸣器) - 原理图系列
- 即时通讯安全问题大曝光
- 指针c语言教学,C语言指针的指针
- 冒泡排序(数组排序不用Array.Sort)
- 原生ajax请求流程
- Burp Suite CA证书下载及导入教程
- xp系统无法访问计算机,xp系统Workgroup无法访问怎么解决
- java大转盘抽奖概率算法_幸运大转盘抽奖 抽奖算法 程序实现逻辑
- 数据安全--11--数据安全政策文件体系
- 如何搭建免费图床给Typora使用(PicGo + Gitee(码云)实现markdown图床)
热门文章
- springboot使用拦截器拦截验证签名sign
- 2022初级前端必会面试题持续更新
- 游戏的基础—三消-1
- android 揭示动画,Android进阶设计 | 使用揭露动画(Reveal Effect)做一个丝滑的Activity转场动画...
- 计算机怎样辅助英语听力教学方法有哪些,谈谈计算机网络技术辅助英语听力教学研究...
- java完整的利用itext5制作pdf、二维码图片插入pdf,并解析pdf中的二维码信息
- Flutter圆角头像添加边框
- python两人一碰_用Python实现经典90坦克大战(支持单双人模式)
- c语言倒计时程序退出,C语言倒计时关机程序(显示秒数)
- Python-Pandas学习之HDFStore存储数据警告(your performance may suffer as PyTables will pickle....)