#java #amazon-web-services #spring-boot #yaml #aws-codebuild
Вопрос:
Мы используем AWS в качестве нашего решения для загрузки приложений Spring CI/CD и хостинга. Вот фактические услуги и их назначение в нашей интеграции:
- CodePipeline прослушивает последние изменения в репозитории git и запускает процесс сборки
- CodeBuild создает фактический
.jar
файл - CodePipeline сохраняет ранее созданный файл в
S3
корзину и развертывает его вElastic Beanstalk
экземпляре
Все работает как по волшебству. Проблема заключается в введении переменных среды Spring Boot.
Мы используем файлы конфигурации YAML с профилями для предоставления переменных нашему приложению. Мы, очевидно, не хотим хранить наши .yml
файлы в нашем репозитории git, но поскольку они довольно большие (более 70 переменных), возможность указывать каждую переменную buildspec
кажется слишком большой.
Мой вопрос в том, каковы наши варианты? Есть какие-нибудь идеи по введению файла YAML во время сборки, не раскрывая его каким-либо образом публично? Или мы должны использовать каждую переменную отдельно.
Спасибо, Себастьян
Комментарии:
1. Если у вас так много настроек, возможно, пришло время для настройки Spring Cloud.
Ответ №1:
Мой вопрос в том, каковы наши варианты?
Популярным способом хранения переменных конфигурации является хранилище параметров SSM.
Поэтому вместо того, чтобы напрямую вводить все ваши переменные в CB, вы бы хранили их в хранилище параметров, а затем CB считывал бы параметры из хранилища. Для этого вам нужно будет добавить права доступа к роли CB для доступа к хранилищу.
Если у вас есть такая настройка, то вы просто передаете одну переменную env в CB — имя считываемого параметра. Так как у вас может быть несколько, например, для разработки, разработки или тестирования.