Динамические конфигурации AppEngine с использованием Gradle, часть 1
При работе с приложениями AppEngine нам часто приходится работать с файлами конфигурации, такими как appengine-web.xml, cron.xml, dispatch.xml и т.д. , альфа и производство.
Проблема в том, что нам нужны разные конфигурации для каждой из этих сред, например,
- В cron.xml нам нужны разные конфигурации для планирования заданий в зависимости от среды. Пример: запланируйте выполнение задания один раз в два часа в стадии подготовки и каждые 15 минут в производственной среде.
- В dispatch.xml нам нужно настроить разные правила маршрутизации в зависимости от стадии подготовки, производства и т. Д.
Точно так же у нас может быть несколько причин иметь разные конфигурации для каждой среды. В этой серии статей мы собираемся изучить, как настроить эти конфигурации для каждой среды с помощью Gradle. Давайте начнем.
Примечание. Если вы хотите узнать больше о том, как настроить AppEngine с Gradle, ознакомьтесь с другой моей статьей Многомодульные проекты с AppEngine и Gradle
Конфигурации динамического развертывания
В этой статье мы расскажем, как иметь конфигурацию динамического развертывания для выполнения развертывания appengine.
Когда вы выполняете развертывание appengine (gcloud app deploy) с помощью задачи Gradle appengineDeploy, нам нужна следующая информация для каждой среды:
Добиться этого мы собираемся с помощью Gradle Project Properties.
-P
,--project-prop
Задает свойство проекта корневого проекта, например
-Pmyprop=myvalue
Итак, мы собираемся передать свойство под названием mode со следующими значениями для различных развертываний среды.
-Pmode=staging
для представления промежуточного развертывания-Pmode=alpha
для представления альфа развертывания-Pmode=live
для представления живое развертывание
В зависимости от значения режима мы можем установить разные значения для свойств развертывания, как показано ниже:
Вот что мы делаем,
- В свойстве gaeVersions мы устанавливаем разные номера версий для каждой целевой среды, эти значения могут быть обновлены, когда нам нужно развернуть до новой версии.
- В методе getDeployConfig () в зависимости от значения режима мы устанавливаем другой идентификатор проекта, версию и параметры продвижения. По умолчанию он принимает режим staging.
И мы можем вызвать этот метод из раздела конфигурации развертывания appengine, как показано ниже,
Как видите, все конфигурации развертывания задаются с помощью словаря конфигурации, возвращаемого методом getDeployConfig ().
Наконец, теперь мы можем выполнить развертывание в нескольких средах с помощью простой команды Gradle,
Для постановки: gradle appengineDeploy -Pmode=staging
Для альфа: gradle appengineDeploy -Pmode=alpha
Для производства: gradle appengineDeploy -Pmode=live
Если вы используете IntelliJ, вы также можете настроить это как Run Configurations, как показано ниже,
Чтобы увидеть полный пример, ознакомьтесь с демонстрационным приложением на GitHub, Щелкните здесь.
Заключение
Спасибо за чтение, надеюсь, это поможет. В следующих статьях мы рассмотрим, как получить файлы динамической конфигурации в зависимости от среды.
Следите за обновлениями и удачного программирования…