Как использовать AWS CodeCommit в качестве хранилища для Spring Cloud Config
Я пытаюсь использовать хранилище AWS CodeCommit с весенним облачным конфигом. Мне удалось заставить его работать с SSH. Но я бы хотел использовать https вместо SSH. AWS предлагает использовать учетные данные помощника. Кто-нибудь знает, как я могу настроить облако конфигурации Spring для использования учетных данных помощника? Я просматривал AWS CodeCommit HTTPS-доступ без настройки помощника по учетным данным, но ответа пока нет, и мне было интересно, есть ли какой-нибудь способ в весенней конфигурации облака сделать это.
1 ответ
Я не знаю, видели ли вы этот ответ, но это немного объясняет, и пример с JGit работает. Доступ к HTTPS в AWS CodeCommit без настройки помощника по учетным данным
Поскольку Spring Cloud Config еще не поддерживает добавление пользовательских провайдеров учетных данных, вам необходимо реализовать собственный EnvironmentRepository.
Для POC я переопределил JGitEnvironmentRepository, и мне пришлось скопировать почти весь код, потому что мне действительно нужно было переопределить закрытый метод JGitEnvironmentRepository#setCredentialsProvider. В этом методе я использовал код из приведенного выше примера.
Spring Cloud Config использует автоконфигурацию для создания своего bean-компонента MultipleJGitEnvironmentRepository, и он аннотируется @ConditionalOnMissingBean(EnvironmentRepository.class), поэтому до тех пор, пока вы создаете бин такого типа, вы можете переопределить их поведение.
Таким образом, с учетом сказанного, опция SSH будет намного чище, пока Spring не расширит их поддержку для настройки пользовательских провайдеров учетных данных или первоклассную поддержку CodeCommit.
Открытый выпуск для AWS CodeCommit: https://github.com/spring-cloud/spring-cloud-config/issues/334
Дублирование аналогичного вопроса и решения размещены там. Доступ к HTTPS в AWS CodeCommit без настройки помощника по учетным данным