首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS Lambda容器重用是如何工作的?

AWS Lambda容器重用是如何工作的?
EN

Stack Overflow用户
提问于 2016-05-30 10:15:27
回答 1查看 6.9K关注 0票数 11

我已经浏览过链接(它发表在2014年12月),也提到了

AWS Lambda容器重用是如何在2016年5月-2016年5月工作的,请您分享任何详细说明的特定链接吗?下面,我对AWS容器的重用提出了几个问题。

考虑用例

Lambda函数名"processMessageLambda“在必须处理消息时接收请求,它从POST REST接收到的消息(来自API网关,因为此lambda函数与此连接)。

现在,这个'processMessageLambda‘处理消息并将其存储到数据库中。

因此,从逻辑上讲,它执行以下操作:连接到数据库、存储消息和关闭连接。(在正常情况下效果很好。)

如果请求达到每秒10次,并且每个lambda函数执行30秒,那么它实际上会打开许多数据库连接。

Q1:,我们可以在这种情况下使用“连接池”(例如boneCP)吗?对"processMessageLambda“的调用数是每秒100次还是每秒10次?

(参考:容器重用的简单示例 -它按它说的那样工作,但是会发生什么呢?很多请求都会到达--每秒钟10次请求)

Q-2:如果可能使用连接池,那么这个aws容器将如何是reUsed?

如果考虑案件:

让我们考虑一下,这个Lambda函数接收到的请求是每秒10次,在这种情况下,将创建这个lambda函数的10个不同的容器,或者创建一个lambda函数的容器,而这10个请求都会用到它吗?

Q-3:如果要创建10个不同的lambda函数容器,那么这意味着将使用10个数据库连接,那么这10个容器在进一步的请求中将是reUsed?

Q-4:您可以从开发人员的角度解释它是如何工作的,或者开发人员在重用aws容器时是如何看待它的?

Q-5:如果容器重用已经到位,那么开发人员需要如何维护变量的状态,以便开发人员知道哪个变量将被重用?

EN

回答 1

Stack Overflow用户

发布于 2016-05-30 11:12:07

我构建和维护多个无服务器应用程序。我要记住的一点是:两个Lambda函数生活在不同的宇宙中。这立即回答了几个问题:

他说:不,你只能在每个Lambda上做连接池。如果你发射100个Lambda函数,你就有100个连接。

2:-

3:未指定容器重复使用的确切算法。下一个请求可以使用现有容器或新容器。没办法说出来。阅读博客帖子获得更多信息。

他说:最好的方法是想一想,容器根本不被重复使用,附加的规则是,如果需要的话,总是在scratch空间中使用唯一(随机)文件名( /tmp文件夹)。当我试图使连接保持打开以便重用时,连接超时,然后重新使用。这导致了数据库连接问题。现在,我只是在每次调用中打开和关闭。

5:保持代码无状态(模块除外,永远不要使用全局变量),如果需要将文件存储在scratch空间中,则始终使用唯一(随机)名称。这两条经验法则把我从许多问题中救了出来。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37523128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档