如何在本地测试cloudformation lambda函数?

时间:2019-03-06 16:24:11

标签: aws-lambda amazon-cloudformation aws-sam-cli

用例

我有cloudformation堆栈,其中包含大约25个lambda函数。在部署到生产环境之前,我需要在本地测试所有功能。

我知道aws拥有SAM Cli来测试无服务器功能,与cloudformation lambda相比,语法完全不同。

aws有没有可能解决我的用例的工具?

因为将cfn lambda转换为sam语法将花费大量时间,而且sam没有cloudformation那样多的选择。

感谢任何帮助 谢谢

1 个答案:

答案 0 :(得分:0)

我知道您已经选择SAM cli来构建模板,但是我建议您使用Serverless(npm i serverless -g),因为它们更高级。 Serverless是由工程师构建的框架,没有附加或依赖于它的Cloud Provider,因此您可以从模板轻松地从Azure切换到AWS。

由于受到大型开发者社区的支持,因此该框架具有各种插件,包括无服务器脱机插件,该插件可让您像在运行node index.js一样在本地运行API。还有一些用于单元测试的插件,例如“ serverless-jest”或“ serverless-mocha”,但我最终使用了正常的“ Jest”运行集成测试(我使用了cognito用户池,需要检查auth令牌)。

如果您真的想测试cloudformation体系结构的代码,则可以使用一个带有功能的JS文件并在本地使用node运行它,而不是将代码包含在cloudformation模板中,则需要zip ip,然后上传到S3,然后通知模板上的路径。

总而言之,我知道您问过如何测试SAM Serverless,但是由于您希望有适当的开发流程(本地执行,单元测试,管道等),因此切换到Serverless框架将是解决方案。您可以通过节点模拟功能,但这将增加您对框架已经完成的工作的手动管理。