在另一个应用程序正在使用它时更新AWS Lambda函数

时间:2018-04-26 18:37:05

标签: aws-lambda

这不是特定于代码的,而是流程/流程问题。

假设我有一个lambda函数被另一个aws进程使用。数据正在流经并正在处理中。

突然间我发现了一个错误,或者我想添加一些额外的代码,但我不想让现有进程丢失任何数据。更新lambda函数的正确过程是什么?我觉得我应该能够使用别名和版本控制,但我不确定正确的做法是什么。

基本上是这样的:

创建lambda函数并将其挂钩到另一个进程=>哦,不存在一些错误! =>更新代码=>现在我想将进程挂钩到新的lambda函数而不会破坏/停止旧的lambda函数(以确保处理所有数据并停止lambda函数)

有没有办法优雅呢?

1 个答案:

答案 0 :(得分:0)

您可以利用Lambda提供的别名和函数版本控制。

这是我在部署中使用的流程

  

Dev Alias指向$ LATEST

     

产品别名,它指向我已发布的版本。

当我准备将发布版本更新为正在开发的新版本时,我使用Traffic Shifting在运行旧版本的同时向新版本发送一定百分比的流量。

对于您而言,可以在准备发布后一口气将所有新流量重定向到新版本。

AWS在这里还提供了一个很好的指南,说明如何使用CodeDeploy-> https://aws.amazon.com/blogs/compute/implementing-safe-aws-lambda-deployments-with-aws-codedeploy/

为Lambda函数进行安全部署