假设我有一个AWS lambda函数
**String lambdaFunction1() {
//some processing
}**
让我们说在SNS主题中的任何新消息上都会触发lambdaFunction1。将为10条SNS消息触发多少个JVM实例?
AWS lambda是否在其自己的JVM中执行每个lambda,或者它重新利用相同的JVM实例。
答案 0 :(得分:1)
引用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的内容。