|
|
Apex——管理AWS Lambda的开源工具
|
|
作者:Serdar Yegulalp 来源:CSDN 发布于 2016-6-1 |
|
|
Express和Node.js canvas库的创建者TJ Holowaychuk有了一个新的开源项目,它允许开发人员通过命令行工具创建、部署和管理AWS Lambda的函数。
Apex,由Google的GO语言编写,它还可以让AWS Lambda不直接支持的语言所写的应用程序得以运行,例如Golang。
Apex部署AWS Lambda函数是通过项目,即用JSON描述的函数定义的集合。Apex捆绑所有需要的依赖关系,并将他们上传至AWS,它还可以自动清理旧的或是过时的版本。当然,为了构建版本的API,Apex允许用户用一个给定函数手动指定保留哪个版本。
Apex项目还支持钩子来允许任意代码在创建、部署或清除期间运行。例如,如果你正在一个Apex项目中部署包装一个Go语言程序,你可以在部署之前重构Go语言程序。此外,Apex可以为Lambda函数设置环境变量,Amazon则没有这个功能。
为了运行不直接支持AWS Lambda的App,Apes使用Node.js的shim机制,其是运行在子程序中的很小的应用程序。几乎所有的应用程序,通过shim使用stdin/stdout将正常运行,尽管他们需要日志错误stderr,而且在第一次调用这个函数的时候有轻微延迟。
另一个开源项目——Serverless(原Jaws),声称和Apex有许多相同的任务,但是Apex宣称Serverless不能“开箱即用”地使用shim。另一个类似的项目——Zappa,是专门针对提升Python应用程序到AWS Lambda,而Apex的目的则是更普遍地使用。
|
|
|