Как сделать одно и то же имя лямбда-функции в другом стеке - PullRequest
1 голос
/ 20 мая 2019

Я пытаюсь использовать другой стек для управления различными средами staging и prod.Но я обнаружил, что не могу развернуть лямбда-функцию с одинаковым именем в другом стеке.Должен ли я дать другое имя для другого стека?Если это так, я должен создать два template.yaml файла для двух envs.Есть ли способ использовать один файл шаблона для управления несколькими envs?

Я использую AWS SAM для развертывания моей лямбды.И я знаю, что могу установить другой стек через cli: sam deploy --template-file mytemplate.yml --stack-name YOUR_ENVIRONMENT.но как я могу обновить имя лямбда-функции через командную строку?

1 Ответ

0 голосов
/ 20 мая 2019

@ Комментарий Вахдета - правильный ответ на ваш вопрос. Вы должны разделить свои функции на разные среды, чтобы можно было добавить имя среды к своим функциям.

Итак, допустим, у вас есть функция с именем 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 под капотом, поэтому, по сути, они будут создавать разные стеки для разных сред (с именем среды, являющейся частью в качестве имени стека), что гарантирует уникальность как стека, так и имена функций.

...