Hi guys,
I’m looking for help with setting up a lambda where different versions can be deployed at the same time to different environments within the same aws account…
The way I’m imagining this is I write function for a lambda called ‘MyFunction’, I want to deploy it to three environments: DEV, UAT, PROD
so I setup my serverless.yml with:
functions:
${env:ENVIRONMENT}MyFunction:
...function config...
but I tried this and it tried to create a function called literally ${env:ENVIRONMENT}MyFunction
… so that didn’t work…
next I tried using:
functions:
MyFunction:
name: ${env:ENVIRONMENT}MyFunction
...function config...
and that DID work! But only on the first deploy… Thereafter complaining that the function already existed!
I thought that maybe the issue was that I had specified:
provider:
versionFunctions: false
which I hoped meant that it would just overwrite the existing funciton, so I got rid of that, and yet the same error came about… So I get the impression that modifying the function’s name breaks that versionFunctions thing (because it can’t suffix the name any more?) does that make sense… Do you know what I am doing wrong / how I should achieve this?
I’m thinking that I could handle the versioning myself, but then I’d have to work out how to automatically cleanup the previous version of the lambda that was deployed (like i could add a version to the end of the name easily enough, but then it would just deploy that and I don’t think it would clean up the old lambda).
Is there something I’m missing?
Best wishes,
Joseph Roffey