AWS Java Lambda JVM实例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AWS Java Lambda JVM实例相关的知识,希望对你有一定的参考价值。

假设我有一个AWS lambda函数

**String lambdaFunction1() {
//some processing 
}**

假设lambdaFunction1在SNS主题中的任何新消息上被触发。将为10个SNS消息触发多少个JVM实例?

AWS lambda是否在其自己的JVM中执行每个lambda,或者它重新利用相同的JVM实例。

答案

引用https://aws.amazon.com/de/blogs/compute/container-reuse-in-lambda/

假设您的函数完成,并且有一段时间过去了,那么您再次调用它。 Lambda可以重新创建一个新容器,在这种情况下,体验就像上面所描述的那样。如果您更改代码,情况肯定会如此。

但是,如果您没有更改代码并且没有太多时间,Lambda可能会重用以前的容器。这为双方提供了一些性能优势:Lambda可以跳过nodejs语言初始化,并且可以跳过代码中的初始化。如果沙箱被重用,您上次写入/ tmp的文件仍然存在。

请记住,你不能依赖于一个容器被重用,因为它是Lambda创建一个新容器的特权。

如上所述:您不能依赖于重用容器,但AWS很有可能认为它是性能提升。

或者为了保持简单:AWS可能知道如何使你的Lambdas尽可能高效,所以你不应该真的过分思考这个。

此外,虽然本博客针对的是Node.js,AWS似乎也基于this发布了类似Java的内容。

以上是关于AWS Java Lambda JVM实例的主要内容,如果未能解决你的问题,请参考以下文章

在创建新的 AWS EC2 实例时运行 AWS Lambda 代码

AWS lambda 和 Java 并发

您如何写入 aws lambda 实例的文件系统?

AWS Lambda 无法连接到 RDS 实例,但我可以在本地连接?

如何从我的 EC2 实例调用 AWS Lambda 函数?

即使配置了过滤器,AWS Lambda 函数也会停止所有实例