这不是特定于代码的,而是流程/流程问题。
假设我有一个lambda函数被另一个aws进程使用。数据正在流经并正在处理中。
突然间我发现了一个错误,或者我想添加一些额外的代码,但我不想让现有进程丢失任何数据。更新lambda函数的正确过程是什么?我觉得我应该能够使用别名和版本控制,但我不确定正确的做法是什么。
基本上是这样的:创建lambda函数并将其挂钩到另一个进程=>哦,不存在一些错误! =>更新代码=>现在我想将进程挂钩到新的lambda函数而不会破坏/停止旧的lambda函数(以确保处理所有数据并停止lambda函数)
有没有办法优雅呢?
答案 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函数进行安全部署