关于亚马逊网络服务:Lambda功能/阶段范围

Lambda Function / Stage Scoping

在AWS lambda中运行函数时,通常使用环境变量来控制设置。但是,当通过API网关调用lambda时,您需要处理"阶段变量"。

我的问题是:当从API网关调用时,一个AWS lambda实例的作用域是特定的API网关阶段,这样我就可以依赖该阶段而不在调用之间进行更改。实际上,每个API"阶段"是否都有自己的实例池可供使用,这些实例是根据阶段变量回收的?

我可能希望依赖这种行为的示例:

  • 创建到表的连接-每个阶段的表名都不同,因此如果我在第一次使用时创建连接,那么最终将使用第一个调用方阶段上下文。当我在不同的API网关阶段进行调用时会发生什么?

  • 不同的环境JWT键。

我对此的直觉是,如果API网关有两个版本/阶段的部署引用了完全相同的函数版本,lambda托管函数实例可以互换地接收来自两个阶段的调用,并且我不应该缓存上下文并在进程中请求去驱动的信息(阶段变量)变量。

有很多AWS API网关/lambda的东西,但找不到一个明确的答案这个问题。


你说得对,一个lambda函数版本将有一个完全独立的实例池。不同的API网关阶段甚至不同的API都可以调用相同的函数,这对lambda中的实例池没有影响。

因此,您正在进行的任何函数内缓存都不应使用这样的假设:只有特定的API和/或阶段才能访问缓存的数据。