Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Примечание.
Планы Basic, Standardи Enterprise вступили в период вывода из обращения 17 марта 2025 года. Дополнительные сведения см. в объявлении о выходе на пенсию в Azure Spring Apps.
План стандартного потребления и выделенный план вошли в период вывода из эксплуатации 30 сентября 2024 года, с полным завершением работы к концу марта 2025 года. Дополнительные сведения см. в статье «Миграция потребления Azure Spring Apps Standard и выделенного плана в Azure Container Apps».
Эта статья относится к:✅ Java ✅ C#
Эта статья относится к:✅ стандартное потребление и выделенная (предварительная версия) ✅ Basic/Standard ✅ Enterprise
В этой статье показано, как настроить управляемый сервер конфигурации Spring Cloud в Azure Spring Apps.
Spring Cloud Config Server предоставляет поддержку на стороне сервера и клиента для внешней конфигурации в распределенной системе. Экземпляр сервера конфигурации Spring Cloud предоставляет центральное место для управления внешними свойствами для приложений во всех средах. Дополнительные сведения см. в разделе Spring Cloud Config.
Примечание.
Чтобы использовать сервер конфигурации в стандартном плане потребления и выделенном плане, необходимо сначала включить его. Дополнительные сведения см. в статье "Включение и отключение сервера конфигурации Spring Cloud" в Azure Spring Apps.
Требования
- Подписка Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись, прежде чем начинать работу.
- Уже подготовленный и запущенный экземпляр службы Azure Spring Apps с помощью плана "Базовый" или "Стандартный". Для настройки и запуска службы Azure Spring Apps смотрите Краткое руководство: Развертывание вашего первого приложения в Azure Spring Apps.
- Уже подготовленный и запущенный экземпляр службы Azure Spring Apps. См. краткое руководство: создание и развертывание приложений в Azure Spring Apps с помощью плана Enterprise для получения информации о настройке и запуске службы Azure Spring Apps.
- Git.
Включение сервера конфигурации Spring Cloud
Вы можете включить сервер конфигурации Spring Cloud при подготовке экземпляра службы тарифного плана Azure Spring Apps Enterprise. Если у вас уже есть экземпляр плана Azure Spring Apps Enterprise, см . раздел "Управление сервером конфигурации Spring Cloud" в существующем экземпляре плана Enterprise в этой статье.
Вы можете включить сервер конфигурации Spring Cloud с помощью портал Azure или Azure CLI.
Чтобы включить сервер конфигурации Spring Cloud, выполните следующие действия.
Откройте портал Azure.
На вкладке "Основные сведения" выберите уровень Enterprise в разделе "Цены " и укажите необходимые сведения. Затем нажмите кнопку Далее: Управляемые компоненты.
На вкладке "Управляемые компоненты" выберите "Включить сервер конфигурации Spring Cloud".
Укажите другие параметры и нажмите кнопку "Проверить" и "Создать".
На вкладке "Проверка и создание", убедитесь, что включение сервера конфигурации Spring Cloud установлено в положение "Да". Выберите Создать, чтобы создать экземпляр плана Enterprise.
Ограничения
При использовании сервера конфигурации с серверной частью Git есть некоторые ограничения. Следующие свойства автоматически внедряются в среду приложения для доступа к серверу конфигурации и обнаружению служб. Настроив эти свойства из файлов сервера конфигурации, вы можете столкнуться с конфликтами и непредвиденным поведением.
eureka.client.service-url.defaultZone
eureka.client.tls.keystore
eureka.instance.preferIpAddress
eureka.instance.instance-id
server.port
spring.cloud.config.tls.keystore
spring.config.import
spring.application.name
spring.jmx.enabled
management.endpoints.jmx.exposure.include
Внимание
Избегайте размещения этих свойств в файлах приложения Config Server.
Создание файлов сервера конфигурации
Azure Spring Apps поддерживает Azure DevOps Server, GitHub, GitLab и Bitbucket для хранения файлов сервера конфигурации. Когда репозиторий готов, вы можете создать файлы конфигурации и сохранить их там.
Некоторые настраиваемые свойства доступны только для определенных типов. В следующих разделах описаны свойства для каждого типа репозитория.
Примечание.
Сервер конфигурации использует в качестве метки по умолчанию master
на Git, если не указана другая. Однако GitHub недавно изменил ветвь по умолчанию с master
на main
. Чтобы избежать сбоя сервера конфигурации Azure Spring Apps, обязательно обратите внимание на метку по умолчанию при настройке сервера конфигурации с помощью GitHub, особенно для вновь созданных репозиториев.
Использование дефиса (-) для разделения слов является единственным соглашением об именовании свойств в настоящее время. Например, вы можете использовать default-label
, но не defaultLabel
.
Общедоступный репозиторий
При использовании общедоступный репозиторий настраиваемые свойства являются более ограниченными, чем в частном репозитории.
В следующей таблице перечислены настраиваемые свойства, которые можно использовать для настройки общедоступного репозитория Git:
Свойство | Обязательное поле | Функция |
---|---|---|
uri |
Да | URI репозитория Git, используемый в качестве бекенда сервера конфигурации. Должно начинаться с http:// , https:// git@ или ssh:// . |
default-label |
Нет | Метка по умолчанию репозитория Git. Должно быть имя ветки, имя тега или идентификатор коммита в репозитории. |
search-paths |
Нет | Массив строк, используемых для поиска в подкаталогах репозитория Git. |
Частный репозиторий с проверкой подлинности SSH
В следующей таблице перечислены настраиваемые свойства, которые можно использовать для настройки частного репозитория Git с помощью SSH:
Свойство | Обязательное поле | Функция |
---|---|---|
uri |
Да | URI репозитория Git, который используется как серверная часть для сервера конфигурации. Должно начинаться с http:// , https:// git@ или ssh:// . |
default-label |
Нет | Метка по умолчанию репозитория Git. Должно быть имя ветви, имя тега или идентификатор коммита репозитория. |
search-paths |
Нет | Массив строк, используемых для поиска в подкаталогах репозитория Git. |
private-key |
Нет | Закрытый ключ SSH для доступа к репозиторию Git. Обязательно, когда URI начинается с git@ или ssh:// . |
host-key |
Нет | Ключ узла сервера репозитория Git. Не следует включать префикс алгоритма, как предусмотрено host-key-algorithm . |
host-key-algorithm |
Нет | Алгоритм ключа хоста. Должно бытьssh-dss , , ssh-rsa , ecdsa-sha2-nistp256 ecdsa-sha2-nistp384 или ecdsa-sha2-nistp521 . Требуется только в том случае, если host-key существует. |
strict-host-key-checking |
Нет | Индикатор сервера конфигурации, показывающий, возникает ли сбой при запуске при использовании частного host-key . Должно быть true (значение по умолчанию) или false . |
Частный репозиторий с обычной проверкой подлинности
В следующей таблице перечислены настраиваемые свойства, которые можно использовать для настройки частного репозитория Git с базовой проверкой подлинности:
Свойство | Обязательное поле | Функция |
---|---|---|
uri |
Да | URI репозитория Git, используемый в качестве серверной части сервера конфигурации. Должно начинаться с http:// , https:// git@ или ssh:// . |
default-label |
Нет | Метка по умолчанию репозитория Git. Может быть именем ветви, именем тега или id коммита в репозитории. |
search-paths |
Нет | Массив строк, используемых для поиска в подкаталогах репозитория Git. |
username |
Нет | Имя пользователя, используемое для доступа к серверу репозитория Git. Требуется, если сервер репозитория Git поддерживает обычную проверку подлинности HTTP. |
password |
Нет | Пароль или личный маркер доступа, используемый для доступа к серверу репозитория Git. Требуется, если сервер репозитория Git поддерживает обычную проверку подлинности HTTP. |
Примечание.
Многие серверы репозитория Git поддерживают использование маркеров, а не паролей для базовой проверки подлинности HTTP. Некоторые репозитории позволяют сохранять токены в течение неограниченного времени. Однако на некоторых серверах репозитория Git, включая Azure DevOps Server, срок действия токенов может заканчиваться через несколько часов. Репозитории, у которых истекает срок действия токенов, не должны использовать аутентификацию на основе токенов в Azure Spring Apps. Если вы используете такой маркер, не забудьте обновить его до истечения срока действия.
GitHub удалил поддержку проверки подлинности паролей, поэтому вместо проверки подлинности паролей для GitHub необходимо использовать личный маркер доступа. Дополнительные сведения см. в разделе "Требования к проверке подлинности токена для операций Git".
Другие репозитории Git
В следующей таблице перечислены настраиваемые свойства, которые можно использовать для настройки репозиториев Git с помощью шаблона:
Свойство | Обязательное поле | Функция |
---|---|---|
repos |
Нет | Схема, состоящая из параметров репозитория Git с заданным именем. |
repos."uri" |
Да для repos |
URI репозитория Git, используемый в качестве серверной части сервера конфигурации. Должно начинаться с http:// , https:// git@ или ssh:// . |
repos."name" |
Да для repos |
Имя для идентификации репозитория; например, team-A или team-B . Требуется только в том случае, если repos существует. |
repos."pattern" |
Нет | Массив строк, используемый для сопоставления имени приложения. Для каждого шаблона используйте формат {application}/{profile} с подстановочными знаками. |
repos."default-label" |
Нет | Метка по умолчанию репозитория Git. Должно быть имя ветки, имя тега или идентификатор коммита репозитория. |
repos."search-paths " |
Нет | Массив строк, используемых для поиска в подкаталогах репозитория Git. |
repos."username" |
Нет | Имя пользователя, используемое для доступа к серверу репозитория Git. Требуется, если сервер репозитория Git поддерживает обычную проверку подлинности HTTP. |
repos."password" |
Нет | Пароль или личный маркер доступа, используемый для доступа к серверу репозитория Git. Требуется, если сервер репозитория Git поддерживает обычную проверку подлинности HTTP. |
repos."private-key" |
Нет | Закрытый ключ SSH для доступа к репозиторию Git. Обязательно, когда URI начинается с git@ или ssh:// . |
repos."host-key" |
Нет | Ключ узла сервера репозитория Git. Не следует включать префикс алгоритма, как предусмотрено host-key-algorithm . |
repos."host-key-algorithm" |
No | Алгоритм ключа узла. Должно бытьssh-dss , , ssh-rsa , ecdsa-sha2-nistp256 ecdsa-sha2-nistp384 или ecdsa-sha2-nistp521 . Требуется только в том случае, если host-key существует. |
repos."strict-host-key-checking" |
Нет | Указывает, не запускается ли экземпляр сервера конфигурации при использовании частного host-key . Должно быть true (значение по умолчанию) или false . |
В следующей таблице показаны некоторые примеры шаблонов для настройки службы с дополнительным репозиторием. Дополнительные сведения см. в разделе "Дополнительные репозитории" в этой статье и разделе "Сопоставление шаблонов" и "Несколько репозиториев" в spring Cloud Config.
Шаблоны | Описание |
---|---|
test-config-server-app-0/* |
Универсальный код ресурса (URI) для шаблона и репозитория соответствует приложению Spring Boot test-config-server-app-0 с любым профилем. |
test-config-server-app-1/dev |
URI шаблона и репозитория соответствуют приложению Spring boot с test-config-server-app-1 профилем разработки. |
test-config-server-app-2/prod |
URI шаблона и репозитория совпадают с приложением Spring Boot под именем test-config-server-app-2 с профилем prod. |
Настройка репозитория Git для сервера конфигурации
После сохранения файлов конфигурации в репозитории выполните следующие действия, чтобы подключить Azure Spring Apps к репозиторию:
Войдите на портал Azure.
Перейдите на страницу Обзор Azure Spring Apps.
Выберите Spring Cloud Config Server в области навигации.
В разделе Репозиторий по умолчанию задайте для URI значение https://github.com/Azure-Samples/piggymetrics-config.
Выберите Проверить.
После завершения проверки нажмите Применить, чтобы сохранить изменения.
На обновление конфигурации может потребоваться несколько минут. После завершения настройки вы получите уведомление.
Введение данных репозитория непосредственно на портал Azure
Вы можете ввести сведения о репозитории по умолчанию и, при необходимости, для дополнительных репозиториев.
Репозиторий по умолчанию
В этом разделе показано, как ввести сведения о репозитории для общедоступного или частного репозитория. Для частного репозитория можно использовать обычную проверку подлинности или SSH.
Чтобы ввести сведения о репозитории для общедоступного репозитория, выполните следующие действия.
- В разделе Репозиторий по умолчанию вставьте URI репозитория в поле URI.
- В поле Метка введите config.
- Убедитесь, что параметр проверки подлинности является общедоступным.
- Выберите Применить.
Чтобы ввести сведения о репозитории для частного репозитория, выполните следующие действия, используя обычную проверку подлинности на основе пароля или токена:
В разделе Репозиторий по умолчанию вставьте URI репозитория в поле URI.
В разделе "Проверка подлинности" выберите "Изменить проверку подлинности".
В области Изменить проверку подлинности, в раскрывающемся списке Тип проверки подлинности, выберите HTTP Basic.
Введите имя пользователя и пароль или маркер, чтобы предоставить доступ к Azure Spring Apps.
Выберите ОК, а затем Применить, чтобы завершить настройку экземпляра сервера конфигурации.
Примечание.
Многие серверы репозитория Git поддерживают использование маркеров, а не паролей для базовой проверки подлинности HTTP. Некоторые репозитории позволяют сохранять токены в течение неограниченного времени. Однако на некоторых серверах репозитория Git, включая Azure DevOps Server, срок действия токенов может заканчиваться через несколько часов. Репозитории, на которые истекает срока действия токенов, не должны использовать проверку подлинности на основе токенов в Azure Spring Apps. Если вы используете такой маркер, не забудьте обновить его до истечения срока действия.
GitHub удалил поддержку проверки подлинности паролей, поэтому вместо проверки подлинности паролей для GitHub необходимо использовать личный маркер доступа. Дополнительные сведения см. в разделе «Требования к аутентификации токена для операций Git».
Чтобы ввести сведения о репозитории для частного репозитория с помощью SSH, выполните следующие действия.
В разделе Репозиторий по умолчанию вставьте URI репозитория в поле URI.
В разделе "Проверка подлинности" выберите "Изменить проверку подлинности".
На панели Изменить проверку подлинности в раскрывающемся списке Тип проверки подлинности выберите SSH.
Введите закрытый ключ. При необходимости укажите ключ узла и алгоритм ключа узла.
Включите открытый ключ в репозиторий сервера конфигурации.
Нажмите ОК, а затем Применить, чтобы завершить настройку экземпляра сервера конфигурации.
Дополнительные репозитории
Если вы хотите настроить службу с необязательным дополнительным репозиторием, выполните следующие действия.
- Укажите параметры URI и проверки подлинности, как и для репозитория по умолчанию. Не забудьте включить параметр имени для шаблона.
- Выберите Применить, чтобы присоединить репозиторий к вашему экземпляру.
Настройка репозитория Git путем импорта YAML-файла
Если вы написали ФАЙЛ YAML с параметрами репозитория, вы можете импортировать файл непосредственно с локального компьютера в Azure Spring Apps. В следующем примере показан простой ФАЙЛ YAML для частного репозитория с базовой проверкой подлинности:
spring:
cloud:
config:
server:
git:
uri: https://github.com/azure-spring-apps-samples-pr/config-server-repository.git
username: <username>
password: <password/token>
Чтобы импортировать YAML-файл, выполните следующие действия.
Выберите параметры импорта и выберите ФАЙЛ YAML из каталога проекта. Выберите Импорт.
В панели уведомлений отображается
async
операция. Сервер конфигурации должен сообщать об успешном выполнении через 1–2 минуты. Сведения из файла YAML отображаются в портале Azure.Нажмите кнопку Применить, чтобы завершить импорт.
Настройка Azure Repos для сервера конфигурации
Azure Spring Apps может получить доступ к общедоступным репозиториям Git, защищенным с помощью SSH или обычной проверки подлинности HTTP. Обычная проверка подлинности HTTP — это самый простой из вариантов создания репозиториев и управления ими с помощью Azure Repos.
Получение URL-адреса репозитория и учетных данных
Чтобы получить URL-адрес и учетные данные репозитория, выполните следующие действия.
На портале Azure Repos для вашего проекта выберите Клонировать.
Скопируйте URL-адрес клона из текстового поля. Этот URL-адрес обычно находится в следующей форме:
https://<organization name>@dev.azure.com/<organization name>/<project name>/_git/<repository name>
Удалите все после
https://
и доdev.azure.com
этого, включая@
символ. Результирующий URL-адрес должен находиться в следующей форме:https://dev.azure.com/<organization name>/<project name>/_git/<repository name>
Сохраните этот URL-адрес для последующего использования.
Выберите "Создать учетные данные Git" , чтобы отобразить имя пользователя и пароль. Сохраните это имя пользователя и пароль для использования в следующем разделе.
Настройка репозитория Git для сервера конфигурации
Чтобы настроить репозиторий, выполните следующие действия.
Войдите на портал Azure.
Перейдите на страницу Обзор Azure Spring Apps.
Выберите службу для настройки.
В левой области страницы службы в разделе "Параметры" выберите вкладку "Сервер конфигурации Spring Cloud".
Чтобы настроить созданный репозиторий, выполните следующие действия.
- Добавьте URI репозитория, сохраненный ранее.
- Выберите параметр в разделе "Проверка подлинности", чтобы открыть панель "Изменить проверку подлинности".
- Для типа проверки подлинности выберите HTTP Basic.
- Для имени пользователя укажите имя пользователя, сохраненное ранее.
- В поле "Пароль" укажите пароль, сохраненный ранее.
- Нажмите кнопку "ОК", а затем дождитесь завершения операции.
Привязка приложения к серверу конфигурации Spring Cloud
Используйте следующую команду, чтобы привязать приложение к Серверу конфигурации Spring Cloud, что позволяет приложению извлекать конфигурации из сервера конфигурации Config Server.
az spring config-server bind \
--resource-group <resource-group> \
--service <service-name> \
--app <app-name>
Вы также можете настроить привязку приложения из портал Azure, как показано на следующем снимке экрана:
Примечание.
Эти изменения занимают несколько минут, чтобы распространиться на все приложения при изменении состояния сервера конфигурации.
При изменении состояния привязки или отмены привязки необходимо перезапустить или повторно развернуть приложение.
Теперь вы можете привязать приложение к серверу конфигурации Spring Cloud непосредственно при создании нового приложения с помощью следующей команды:
az spring app create \
--resource-group <resource-group> \
--service <service-name> \
--name <app-name> \
--bind-config-server
Вы также можете привязать приложение к серверу конфигурации Spring Cloud из портал Azure, как показано на следующем снимке экрана:
Удалите свою конфигурацию
Выберите "Сброс" на вкладке "Сервер конфигурации Spring Cloud", чтобы удалить существующие параметры. Удалите параметры сервера конфигурации, если вы хотите подключить экземпляр сервера конфигурации к другому источнику, например при переходе с GitHub на сервер Azure DevOps Server.
Обновление сервера конфигурации
При изменении свойств службы, используемые этими свойствами, должны быть уведомлены перед внесением изменений. Решение по умолчанию для Сервера конфигурации Spring Cloud — вручную активировать событие обновления, которое может оказаться невозможным при наличии большого количества экземпляров приложения. Дополнительные сведения см. в разделе "Централизованная конфигурация"
Вместо этого можно автоматически обновить значения из сервера конфигурации, предоставив клиенту конфигурации опрос изменений на основе внутреннего обновления.
Выполните следующие действия для автоматического обновления значений с сервера конфигурации.
Зарегистрируйте запланированную задачу для обновления контекста в заданном интервале, как показано в следующем примере:
@ConditionalOnBean({RefreshEndpoint.class}) @Configuration @AutoConfigureAfter({RefreshAutoConfiguration.class, RefreshEndpointAutoConfiguration.class}) @EnableScheduling public class ConfigClientAutoRefreshConfiguration implements SchedulingConfigurer { @Value("${spring.cloud.config.refresh-interval:60}") private long refreshInterval; @Value("${spring.cloud.config.auto-refresh:false}") private boolean autoRefresh; private RefreshEndpoint refreshEndpoint; public ConfigClientAutoRefreshConfiguration(RefreshEndpoint refreshEndpoint) { this.refreshEndpoint = refreshEndpoint; } @Override public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { if (autoRefresh) { // set minimal refresh interval to 5 seconds refreshInterval = Math.max(refreshInterval, 5); scheduledTaskRegistrar.addFixedRateTask(() -> refreshEndpoint.refresh(), refreshInterval * 1000); } } }
Включите autorefresh и задайте соответствующий интервал обновления в файле application.yml . В следующем примере клиент опрашивает изменения конфигурации каждые 60 секунд, что является минимальным значением, которое можно задать для интервала обновления.
По умолчанию для параметра autorefresh задано
false
значение, а интервал обновления имеет значение60 seconds
.spring: cloud: config: auto-refresh: true refresh-interval: 60 management: endpoints: web: exposure: include: - refresh
Добавьте
@RefreshScope
в код. В следующем примере переменнаяconnectTimeout
автоматически обновляется каждые 60 секунд.@RestController @RefreshScope public class HelloController { @Value("${timeout:4000}") private String connectTimeout; }
Дополнительные сведения см. в примере config-client-polling.
Управление сервером конфигурации Spring Cloud в существующем экземпляре плана предприятия
После создания службы можно включить и отключить сервер конфигурации Spring Cloud с помощью портал Azure или Azure CLI. Перед отключением сервера конфигурации Spring Cloud необходимо отменить привязку всех приложений из него.
Чтобы включить или отключить сервер конфигурации Spring Cloud, выполните следующие действия.
Перейдите к экземпляру вашей службы, а затем выберите Spring Cloud Config Server.
Выберите Управление.
Выберите или отмените выбор включения сервера конфигурации Spring Cloud, а затем выберите Сохранить.
Теперь можно просмотреть состояние сервера конфигурации Spring Cloud на странице сервера конфигурации Spring Cloud.