【发布时间】:2020-03-31 09:10:42
【问题描述】:
您好,我正在尝试深入了解 lambda 架构。以下是我对 lambda 的理解。
每当我们创建 lambda 函数时,容器都会启动。如果我们选择 python 作为运行时,python 容器将启动。现在有冷启动。例如,如果我们长时间调用 lambda,容器将变为非活动状态。它将调用新容器,并且需要一些时间来启动新容器。这是冷启动。现在我在这里有点困惑。如果我想避免这种延迟,那么正确的方法是什么?我们可以使用 Cloud Watch 每 5 分钟触发一次 lambda。还有其他好的方法来处理这个吗? 还有 /tmp 文件夹,我们可以在其中存储静态文件。所以 /tmp 不是容器的一部分?每当新容器启动时,/tmp 数据会丢失还是保留?有人可以帮助我理解这些概念并告诉我使用最佳方法来处理这个问题吗?任何帮助,将不胜感激。谢谢你。
【问题讨论】:
-
我认为在冷启动期间不会出现任何类型的容器旋转。只是将您的 python 应用程序加载到环境中,在冷启动期间可能需要一些时间,最多几秒钟。从最近开始,您可以configure Provisioned Concurrency to avoid cold starts alltogether。
-
但这意味着如果最大。您的解决方案可以接受冷启动期间的两到三秒延迟,无论如何冷启动都不应该让您担心。
-
好的,谢谢您的回答。所以我们现在不必遵循任何最佳实践,AWS 会为我们处理吗?你能告诉我 lambda 中的 /tmp 是什么吗?
-
我无法确定,但不希望 /tmp 中的数据在调用中可用。它可能仅在一次调用期间可用。
-
您遇到什么问题了吗? Lambda 的强大之处在于可扩展性。默认情况下,您可以同时运行 1000 个实例。如果您担心持久性本地存储,那么您就想错了 - 您是否想要所有 1000 个实例的本地存储?
标签: amazon-web-services aws-lambda serverless