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 代码