如何在本地运行aws lambda(java)进行测试

时间:2015-10-21 12:56:59

标签: amazon-web-services aws-lambda

如何在本地运行aws lambda(java)进行测试。

我能够找到节点的一些信息,但不能找到java。

7 个答案:

答案 0 :(得分:8)

AFAIK实际上无法在本地触发lambda函数。看看:http://docs.aws.amazon.com/lambda/latest/dg/java-programming-model-req-resp.html

http://docs.aws.amazon.com/lambda/latest/dg/java-gs.html

根据你的lambda代码构建输入和(可能是上下文)所需的内容,并将它们传递给编写自己的小测试包装器的函数。

除非你这样做进行单元测试,否则解决问题是没有意义的。如果您正在进行测试,则可能需要模拟lambda可能使用的其他外部AWS服务。

答案 1 :(得分:4)

对于那些使用Python进行本地测试的人,我们为此创建了一个工具:

https://github.com/sportarchive/aws-lambda-python-local

它允许您使用Makefile运行,测试和部署函数到Lambda。非常方便。

欢呼声 尼科

答案 2 :(得分:2)

如果要对Amazon Lambda函数执行本地测试,并在Amazon中构建无服务器应用程序,则可以将AWS Toolkit用于 Eclipse

但是自2017年8月11日起,亚马逊提供AWS SAM Local,这是一个CLI工具,允许我们在本地测试和调试我们的AWS Lambda功能。 SAM Local支持用Node.js,Java和Python编写的Lambda函数。

请投票,以便在此处实施 Intellij IDEA 对Amazon Lambda的支持:

答案 3 :(得分:2)

SAM本地 - http://docs.aws.amazon.com/lambda/latest/dg/test-sam-local.html 和 docker-lambda - https://github.com/lambci/docker-lambda适用于只需要javaee和项目源的API。 我仍在试图弄清楚如何设置类路径以包含gradle依赖项。

答案 4 :(得分:1)

有很多项目在本地运行整个AWS栈。

Java我认为主要选项是Localstack

如果您使用的是Javascript,则可以Serverless

答案 5 :(得分:0)

我一直在使用这些docker镜像https://github.com/lambci/docker-lambda

答案 6 :(得分:0)

如果您使用的是IntelliJ,则有aws-toolkit-https://plugins.jetbrains.com/plugin/11349-aws-toolkit/

它工作得很好,您可以设置环境变量等。这将要求您在本地计算机上运行docker。虽然不是很友好的内存。

如果您使用的是无服务器,则可以执行sls offline