Aws lambda 如何在本地测试cloudda函数?

Aws lambda 如何在本地测试cloudda函数?,aws-lambda,amazon-cloudformation,aws-sam-cli,Aws Lambda,Amazon Cloudformation,Aws Sam Cli,用例 我有一个cloudformation堆栈,它有大约25个lambda函数。在部署到生产环境之前,我需要在本地测试所有功能 我知道aws有SAM Cli来测试无服务器功能,这与CloudDas的语法完全不同 aws是否有任何可能的工具来解决我的用例 因为将cfn lambdas转换为sam语法需要很多时间,而且sam没有cloudformation那么多的选项 谢谢你的帮助 谢谢我知道您选择了SAM cli来构建模板,但我建议您使用无服务器npm I无服务器-g,因为它们更高级。Server

用例

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

我知道aws有SAM Cli来测试无服务器功能,这与CloudDas的语法完全不同

aws是否有任何可能的工具来解决我的用例

因为将cfn lambdas转换为sam语法需要很多时间,而且sam没有cloudformation那么多的选项

谢谢你的帮助
谢谢

我知道您选择了SAM cli来构建模板,但我建议您使用无服务器npm I无服务器-g,因为它们更高级。Serverless是一个由工程师构建的框架,没有连接/依赖于云提供商,因此您可以轻松地从Azure切换到AWS模板

因为它受到大型开发社区的支持,所以该框架有多种插件,包括无服务器离线插件,这将允许您在本地运行API,就像运行node index.js一样。还有一些插件,比如用于单元测试的serverless jest或serverless mocha,但是我最终使用了正常的jest运行集成测试,我使用cognito用户池,需要检查auth令牌

如果你真的想测试你的cloudformation架构的代码,你可以用一个JS文件和你的函数在本地运行它,而不是把代码放在你的cloudformation模板中,你需要压缩ip,上传到S3上,然后通知模板上的路径


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

我知道您已经选择SAM cli来构建模板,但我建议您转到无服务器npm I无服务器-g,因为它们更高级。Serverless是一个由工程师构建的框架,没有连接/依赖于云提供商,因此您可以轻松地从Azure切换到AWS模板

因为它受到大型开发社区的支持,所以该框架有多种插件,包括无服务器离线插件,这将允许您在本地运行API,就像运行node index.js一样。还有一些插件,比如用于单元测试的serverless jest或serverless mocha,但是我最终使用了正常的jest运行集成测试,我使用cognito用户池,需要检查auth令牌

如果你真的想测试你的cloudformation架构的代码,你可以用一个JS文件和你的函数在本地运行它,而不是把代码放在你的cloudformation模板中,你需要压缩ip,上传到S3上,然后通知模板上的路径


总之,我知道您询问了如何测试SAM Serverless,但由于您希望有一个适当的开发流程,因此本地执行、单元测试、管道等切换到Serverless框架将是解决方案。您可以通过node模拟函数,但这将增加您对框架已经执行的操作的手动管理。

所有函数的处理程序、rte和事件触发器是否相同?您可以始终使用aws控制台测试lambda函数@SushantSonker,是的,你是对的,我们可以一直使用aws控制台,但是为了在那里进行测试,我们需要部署lambda功能。在SAM中,我们不在aws中部署,但它是在docker容器中完成的,我要问的是,cloudformation lambdas是否有这种类型的工具。您在问题中已经提到了,请编写无服务器yaml 2。同@SushantSonker@ASR你是对的。现在我正在使用选项1。但希望我能找到一个更好的选择:@ASR用于将cloudformation lambdas转换为sam,我正在使用lambda控制台导出功能。SAM local目前还可以。所有函数的处理程序、rte和事件触发器是否都相同?您可以始终使用aws控制台测试lambda函数@SushantSonker,是的,你是对的,我们可以一直使用aws控制台,但是为了在那里进行测试,我们需要部署lambda功能。在SAM中,我们不在aws中部署,但它是在docker容器中完成的,我要问的是,cloudformation lambdas是否有这种类型的工具。您在问题中已经提到了,请编写无服务器yaml 2。同@SushantSonker@ASR你是对的。现在我正在使用选项1。但希望我能找到一个更好的选择:@ASR用于将cloudformation lambdas转换为sam,我正在使用lambda控制台导出功能。SAM local现在还不错。。