如何使用AWS Lambda确定(变量的)外部状态



我想利用AWS Lambda,但我需要创建的函数来响应一系列规则。

这些规则可能会随着时间的推移而改变。

我知道如何使用Lambda确定(变量(外部状态的唯一方法是查询外部数据库。

有别的办法吗?AWS Lambda是否提供了一个全局变量,每个函数调用都可以在执行之前读取该变量?

您可以使用环境变量,请参阅AWS文档:https://docs.aws.amazon.com/lambda/latest/dg/env_variables.html

然而,这些是针对您不想存储在代码中的静态变量(如外部服务的API键(。

如果规则随时间变化,而Lambda函数没有,则需要将规则存储在的某个位置,然后从该位置获取。您可以使用数据库或S3选择。

当您第一次调用Lambda函数时,将创建一个具有适当资源的新容器来执行它,并且函数的代码将加载到容器中。这被称为冷启动。

JavaScript、Python、Go和Ruby在大约400毫秒内准备就绪,几乎总是在700毫秒内准备好。Java有点慢。

现在,如果你的is代码被执行了,执行时间过去了,你再次调用函数,那么Lambda可能会再次创建一个新的容器。如果你想让函数保持"温暖",你需要使用CloudWatch事件每5-15分钟ping一次Lambda函数以保持温暖。

AWS Lambda是否提供全局变量

是的,您可以在AWS Lambda中使用全局变量,但请记住我提到的以上两点。Lambda函数从数据库中获取数据,遍历一个小数据集并附加到一个列表中,然后在函数中使用它,直到函数变热。

确保你的规则不应该经常更新,否则可能会一团糟。

  • 使用AWS Lambda函数的最佳实践-AWS Lambda

利用执行上下文重用来提高性能你的职能。确保任何外部化配置或代码检索的依赖项被存储和引用在初始执行之后在本地执行。限制的重新初始化每次调用的变量/对象。而是使用静态初始化/构造函数、全局/静态变量和singleton。保持活动并重用在上一次调用期间建立

  • Java中的AWS Lambda执行上下文已解密
  • 通过使用全局变量提高Lambda函数的性能-Ruan Bekker的博客
  • AWS Lambda缓存问题与全局变量-Tensult博客-Media

最新更新