Aws lambda 重新部署期间,运行中的AWS lambda会发生什么情况?

Aws lambda 重新部署期间,运行中的AWS lambda会发生什么情况?,aws-lambda,Aws Lambda,如果在旧版本的lambda运行时部署新版本的lambda会发生什么 旧的被打断了吗?或者新的将被用来处理下一个事件,而旧的则像什么都没发生一样运行 我找不到关于它的文档以前的版本一直运行到它完成为止。部署完成后的新调用将获得新的Lambda版本。我在AWS论坛上发布了相同的问题,并从AWS开发人员那里得到了回复 这就是您所建议的:在飞行中调用完成,没有代码更改或中断,使用开始时已经存在的函数版本。您可能会对遇到错误或限制的异步调用进行函数更改,因为重试可能会允许在下次尝试时命中函数的新版本。虽然

如果在旧版本的lambda运行时部署新版本的lambda会发生什么

旧的被打断了吗?或者新的将被用来处理下一个事件,而旧的则像什么都没发生一样运行


我找不到关于它的文档

以前的版本一直运行到它完成为止。部署完成后的新调用将获得新的Lambda版本。

我在AWS论坛上发布了相同的问题,并从AWS开发人员那里得到了回复

这就是您所建议的:在飞行中调用完成,没有代码更改或中断,使用开始时已经存在的函数版本。您可能会对遇到错误或限制的异步调用进行函数更改,因为重试可能会允许在下次尝试时命中函数的新版本。虽然我们不会中止正在进行的调用,但我们会积极地消除旧代码的副本;这通常发生在函数更新后的一分钟内。这意味着,在大约5-6分钟内(功能的最大持续时间,再加上一点点),您可以体验其中一个/两个版本的使用;在这之后,您应该只看到新的(经部署的)版本正在执行


我刚刚检查过,在保存新版本的Lambda函数时执行了一个操作。它运行得很好,没有任何错误。你有说明这一点的文件吗?这也是我的假设,但是有一个文档给我的同事,而不是证明它会更好。不,我只有在我测试过它的地方的经验,这是经常发生的事情。根据我的经验,新调用可能仍然使用旧代码,似乎AWS Lambda可能会重用现有实例(以避免冷启动)它仍然保留着旧代码。我见过在部署之后,新调用会随机使用新旧代码执行(因为它可以有多个实例,一个使用新代码,另一个使用旧代码)。我认为避免这种情况的唯一方法是使用版本控制。