Как заставить бессерверные переменные работать на вас

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.