@ Комментарий Вахдета - правильный ответ на ваш вопрос. Вы должны разделить свои функции на разные среды, чтобы можно было добавить имя среды к своим функциям.
Итак, допустим, у вас есть функция с именем image-thumbnail
, но вы хотите развернуть ее как в staging, так и в prod, поэтому имя вашей функции должно быть staging-image-thumbnail
и prod-image-thumbnail
соответственно.
Вы не упомянули и не пометили какие-либо фреймворки, которые вы можете использовать, но если вы используете AWS SAM или Serverless Framework , эта функция уже встроена. Если вы не используете фреймворк, я настоятельно рекомендую вам начать делать это, так как это облегчит вашу жизнь, особенно когда речь идет о конвейерах CI / CD.
В SAM вы можете просто запустить:
sam deploy --template-file mytemplate.yml --stack-name YOUR_ENVIRONMENT
В Serverless Framework вы можете запустить:
serverless deploy --stage YOUR_ENVIRONMENT
Обе эти платформы используют CloudFormation
под капотом, поэтому, по сути, они будут создавать разные стеки для разных сред (с именем среды, являющейся частью в качестве имени стека), что гарантирует уникальность как стека, так и имена функций.