部署新的Lambda时,管道将替换先前部署的Lambda

时间:2018-09-18 16:16:54

标签: amazon-web-services aws-lambda amazon-cloudformation aws-codepipeline

我引用this aws tutorial来跨帐户部署我们的lambda。 我能够成功完成lambda的部署,但是我注意到,如果我要部署另一个lambda (lambda_b),重新使用SAME管道,但对于不同的lambda,此不同的lambda (lambda_b)将取代另一个较早部署的lambda (say lambda_a)使得在任何时候我在aws控制台中只有一个lambda。

由于我如何创建变更集,这种替换是否会发生? 我只是不知道如何进行操作或在哪里寻找,以了解为什么不替换lambda_b就不部署lambda_a的原因,即使我们对所有lambda使用相同的管道。

要部署lambda_a,我必须完成所有步骤,上面链接的教程1-6 但是,要部署lambda_b,我只需要重新运行上述步骤的第4和第5步,这可能是为什么吗?当我尝试从头开始重新运行时,看不到步骤1的更改集

enter image description here

在codepipiline的cloudformation yaml文件中,是否可以设置 retain:true 属性或某种方式,以便我可以显示所有的lambda到目前为止,我们已经部署了;目前,我只能显示最近部署的lambda,因为新的lambda部署(lambda_b)始终会替换旧的lambda部署(lambda_a)

I want the console to show both lambda_a, and lambda_b

1 个答案:

答案 0 :(得分:0)

看到您正在使用CloudFormation部署lambda函数时,从模板中删除资源(lambda_a)时,该资源将作为CloudFormation清理步骤的一部分被删除。

您需要将两个功能都保留在要部署的模板中,以同时部署lambda_a和lambda_b。