serverless-heaven / serverless-aws-alias

Alias support for Serverless 1.x

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

When a new deploy is performed the previous lambda version is deleted

pedrobento988 opened this issue · comments

When a new deploy is made at vanilla Serverless version (no plugins), the default behavior is to skip delete previous lambda versions, i.e., on the generated CF template, the AWS::Lambda::Version resource's DeletionPolicy is set to "Retain".

However when using this plugin that policy changes to "Delete" and lambda versions that do not have an alias are deleted, as per this policy:
https://github.com/HyperBrain/serverless-aws-alias/blob/6b9d0ac66a71dd686627eefccf071e0ea7e266ee/lib/stackops/functions.js#L113

Is this intended? Is there anyway to keep the lambda versions?

@pedrobento988 This is intended, because if you let the service have retained versions, you cannot tell anymore, which alias it came from. I.e. if you deploy multiple aliases with different artifacts and configurations into the same stage, you could not just tag any retained version and expect that it was from the expected alias.

The only versions that are intentionally retained are the ones deployed by serverless deploy function because they are not controlled by CloudFormation and (by design) function deploy is intended for debugging only, so in that case you actually know where the version came from and when to delete it.

Thank you for your confirmation.