Как заставить бессерверные переменные работать на вас
Serverless, фреймворк для управления облачными приложениями, - очень мощный инструмент. По мере того, как ваше приложение становится все сложнее, может быть сложно управлять переменными развертывания на разных этапах (разработка, контроль качества, производство). В настоящее время непросто сослаться на пользовательские переменные или переменные среды, специфичные для развертывания. Я знал, что должен быть лучший способ обработки этих переменных, а также сделать их компонуемыми. После некоторого исследования бессерверной архитектуры я придумал плагин, который делает именно это: serverless-plugin-composed-vars
.
Что оно делает?
serverless-plugin-composed-vars
позволяет вам определять файлы переменных для конкретного этапа. Он переопределяет переменные, определенные в вашем serverless.yml
или в отдельных файлах variables.yml
и environment.yml
для пользовательских переменных и переменных среды соответственно. Чтобы определить файлы стадии, просто вставьте имя стадии в файл, например: variables.stage.yml
или environment.stage.yml
. Например, если вы хотите создать файлы переменных для сцены с именем prod, вы должны назвать файлы variables.prod.yml
и environment.prod.yml
.
Давайте посмотрим, как это работает:
Используя приведенные выше примеры файлов, настраиваемые переменные и переменные среды составляются и вычисляются следующим образом для этапа развертывания «prod»:
custom: googlesWebsite: www.google.com myEndpoint: api.endpoint.com environment: THE_ANSWER_IS: 42 USER_TABLE_NAME: Users MY_ENDPOINT: api.endpoint.com
Для более чистого serverless.yml
служебного файла вы можете разделить переменные по умолчанию на их собственные файлы variables.yml
и environment.yml
. serverless-plugin-composed-vars
автоматически прочитает эти файлы при составлении переменных развертывания. Обратите внимание, что переменные файла serverless.yml
имеют наименьший приоритет при использовании файлов переменных по умолчанию.
Как мне его использовать?
Установить
Установите плагин с помощью вашего любимого менеджера пакетов:
npm install -D serverless-plugin-composed-vars
or
yarn add -D serverless-plugin-composed-vars
Давать возможность
Добавьте плагин в свой служебный файл:
# serverless.yml plugins: - serverless-plugin-composed-vars - other-serverless-plugin
Примечание. Чтобы обеспечить совместимость с другими подключаемыми модулями, рекомендуется, чтобы serverless-plugin-composed-vars
был первым подключаемым модулем в списке подключаемых модулей.
Создавать
Создайте файлы переменных этапа развертывания. Имена файлов по умолчанию - variables.stage.yml
и environment.stage.yml
для пользовательских переменных и переменных среды. Вот пример структуры проекта для пользовательских переменных:
Расширенное использование
Дополнительные сведения об использовании и настройке см. В GitHub Readme.
Как это работает?
Под прикрытием serverless-plugin-composed-vars
используется тот факт, что без сервера не вычисляются переменные до тех пор, пока не будут выполнены перехватчики. Это позволяет плагину составлять переменные этапа развертывания и перезаписывать их до того, как ваша служба будет упакована для развертывания.
Проверьте это!
Теперь, когда вы убедились, насколько просто использовать переменные этапа развертывания, попробуйте плагин. Оставляйте здесь свои комментарии или предложения или отправляйте вопросы в репозиторий GitHub.