在 aws lambda 更新过程中请求会发生什么?

What happens to request in the middle of an aws lambda update?

如果我:

  1. 触发 AWS Lambda deployment/update
  2. 在步骤 #1 完成之前触发对 AWS Lambda 的请求

请求会直接命中旧的 lambda 吗?会不会出错?

到目前为止,在我的测试中似乎没有 "downtime",它几乎立即将旧的换成新的——尽管对新 lambda 的第一个请求确实必须进行冷启动.

你是对的。 IIRC,每个函数调用都使用一个特定的函数 ARN,它会在您更新函数时发生变化。当您调用该函数时,您使用的是新 ARN,它仅调用新版本。

我相信可以继续使用旧函数,显式使用旧 ARN(尽管您可能无法从 Lambda 控制台执行此操作。)

有关详细信息,请参阅 http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html

现在可以使用最近在 AWS re:Invent 会议上宣布的新流量转移功能,更好地 fine-grained 控制如何在 lambda 函数版本之间处理请求:

https://aws.amazon.com/about-aws/whats-new/2017/11/aws-lambda-supports-traffic-shifting-and-phased-deployments-with-aws-codedeploy/