How to avoid overwriting existed stage in lambda deployment?

Im loving serverless, however, except one thing…
I have several AWS lambda functions managed by git, say:
LambdaFunctionXXX
I want to avoid the changing of LambdaFunctionXXX affect live API Gateway.
Then I create several API Stage, and refer API to different lambda
dev_API : dev_LambdaFunctionXXX
it_API : it_LambdaFunctionXXX

Then I use serverless to deploy lambda, and define stage in a variable yml file, and refer this value in serverless.yml stage configure, firstly I use dev stage and dev_LambdaFunctionXXX, however, while Im changing stage value to it, it_LambdaFunctionXXX has deployed but dev_LambdaFunctionXXX has been removed, Is there any way I can remain both lambda functions ?

BTW, I have also tried to use service name, while Im using string, it can have both lambda functions deployed, while Im using value referred from another file, it cannot. Anyone can help me? thanks

I wish there was an answer to this as well. I’m seeing my test stage get overwritten by prod or vice/versa when deploying with the --stage flag. I tried adding a unique service name per stage and that did not work either.

Not sure what the deal is.

Looks like I had to have a unique stackName per stage. I’m really not sure if this is how we are supposed to do this, since it creates 2 completely separate stacks, but it does seem to work.

Originally, I had one API gateway with 2 stages ‘test’ and ‘prod’, but had 1 Lambda function and it would overwrite it when you deployed each stage. Now it is independent and that issue is not there but in the API Gateway they are not stages under one, but 2 completely separate API’s.