Amazon web services 保持两个版本的AWS Lambdas运行

Amazon web services 保持两个版本的AWS Lambdas运行,amazon-web-services,aws-lambda,version,serverless-framework,Amazon Web Services,Aws Lambda,Version,Serverless Framework,对我当前基础设施的简单解释:我正在使用AWS Lambdas运行python代码,这些代码是通过Gitlab CI使用无服务器框架部署的 情况说明:我目前有一个AWS Lambda,它现在使用一个特定的库版本,比如1.x.x版本。在某个时候,这个Lambda将开始使用这个库的一个新版本,比如2.x.x,但我希望这两个Lambda仍然可以被部署并用于处理请求 如果库的3.x.x版本在其他时间出现,我希望使用3.x.x和2.x.x版本的lambda基本上运行当前版本和当前版本-1 lambda。让我

对我当前基础设施的简单解释:我正在使用AWS Lambdas运行python代码,这些代码是通过Gitlab CI使用无服务器框架部署的

情况说明:我目前有一个AWS Lambda,它现在使用一个特定的库版本,比如1.x.x版本。在某个时候,这个Lambda将开始使用这个库的一个新版本,比如2.x.x,但我希望这两个Lambda仍然可以被部署并用于处理请求

如果库的3.x.x版本在其他时间出现,我希望使用3.x.x和2.x.x版本的lambda基本上运行当前版本和当前版本-1 lambda。让我们把它们叫做新的和旧的

AWS lambda具有可以使用的版本和别名的概念,但不幸的是,serverless不直接支持这些概念。 注意:serverless支持多个无法命名的版本,并且有一个名为serverless aws Alias的插件可以为您设置别名,但该插件指的是实际的aws Lambda版本,请参阅

你知道怎么解决吗

到目前为止,我唯一有效的想法是保留两个新分支和旧分支,它们将使用库的两个不同版本,并且每个分支将有其不同的部署CI。这是非常违反直觉的,因为我不知道如何维护开发和主分支。此外,何时部署到哪个阶段等


另外,我希望Lambda_NEW和Lambda_OLD同时部署,例如,当切换到library 5.x.x时,我希望版本5.x.x在新版本中,版本4.x.x在旧版本中

我从您的帖子中不太确定,但我想知道您想要一种处理canary部署的方法,以便轻松回滚更改?如果不是这样的话,你能编辑你的问题,让它更清晰一点吗


如果是这样的话,我建议遵循并使用该插件,该插件将自动为新版本创建别名,并允许您定义流量在已部署版本之间的转移方式。

问题很广泛,是的。使用无服务器aws别名插件解决了这个问题。请参阅:。我基本上没有服务器file@ilirosmanaj你能不能也把答案贴出来,我也处于类似的情况,也许你的解决方案会提供帮助insight@mbaxi我不知道如何发布它,而是我会解释它是如何为我工作的。lambda允许有多个版本,对于这些版本,您可以创建别名,以便可以通过lambda name中的不同后缀调用它们。每次要创建新版本时,我都会使用aws cli工具更新别名。