【问题标题】:Lambda Function / Stage ScopingLambda 函数/阶段范围
【发布时间】:2016-12-14 00:03:56
【问题描述】:

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

我的问题是:当从 API 网关调用时,AWS Lambda 实例的范围是否仅限于特定的 API 网关阶段,这样我就可以依赖该阶段在调用之间不发生变化。实际上,每个 API“阶段”是否都有自己的实例池可供使用,这些实例池根据阶段变量进行回收?

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

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

  • 不同环境的 JWT 密钥。

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

那里有很多 AWS API Gateway / Lambda 的东西,但找不到这个问题的明确答案。

【问题讨论】:

    标签: amazon-web-services aws-lambda aws-api-gateway


    【解决方案1】:

    没错,单个 Lambda 函数版本将拥有一个完全独立的实例池。不同的 API Gateway 阶段甚至不同的 API 都可以调用同一个函数,这对 Lambda 中的实例池没有影响。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-21
      • 1970-01-01
      • 2018-05-22
      • 1970-01-01
      • 2020-06-10
      相关资源
      最近更新 更多