Руководство по Подключение управляемому серверу конфигурации для Spring в приложениях контейнеров Azure (предварительная версия)
Сервер конфигурации для Spring предоставляет централизованное расположение, чтобы сделать данные конфигурации доступными для нескольких приложений. В этой статье описано, как подключить приложение, размещенное в приложениях контейнеров Azure, к экземпляру Java Config Server для Spring.
Сервер конфигурации для Spring использует репозиторий GitHub в качестве источника параметров конфигурации. Значения конфигурации предоставляются приложению-контейнеру через привязку между компонентом и приложением контейнера. По мере изменения значений на сервере конфигурации они автоматически передаются в приложение без необходимости повторной компиляции или повторного развертывания приложения.
Из этого руководства вы узнаете, как:
- Создание компонента Config Server для Spring Java
- Привязка сервера конфигурации для Spring к приложению-контейнеру
- Просмотрите значения конфигурации до и после подключения сервера конфигурации к приложению
- Шифрование и расшифровка значений конфигурации с помощью симметричного ключа
Внимание
В этом руководстве используются службы, которые могут повлиять на счет Azure. Если вы решили выполнить пошаговые инструкции, удалите ресурсы, описанные в этой статье, чтобы избежать непредвиденных выставления счетов.
Необходимые компоненты
Чтобы завершить этот проект, вам потребуется следующее:
Требование | Instructions |
---|---|
Учетная запись Azure | Требуется активная подписка. Если у вас нет учетной записи, вы можете создать ее бесплатно. |
Azure CLI | Установите интерфейс командной строки Azure. |
Рекомендации
При запуске в Config Server for Spring в приложениях контейнеров Azure помните о следующих сведениях:
Товар | Описание |
---|---|
Область применения | Сервер конфигурации для Spring выполняется в той же среде, что и подключенное приложение контейнера. |
Масштабирование | Для поддержания единого источника истины сервер конфигурации для Spring не масштабируется. Свойства minReplicas масштабирования и maxReplicas имеют значение . 1 . |
Ресурсы | Распределение ресурсов контейнера для сервера конфигурации для Spring исправлено, число ядер ЦП равно 0,5, а размер памяти — 1Gi. |
Цены | Сервер конфигурации для Spring выставления счетов подпадает под цены на основе потребления. Счета за ресурсы, используемые управляемыми компонентами Java, выставляются по тарифам "активный или простой". Вы можете удалить компоненты, которые больше не используются для остановки выставления счетов. |
Binding | Приложение-контейнер подключается к серверу конфигурации для Spring через привязку. Привязка внедряет конфигурации в переменные среды приложения-контейнера. После установки привязки приложение-контейнер может считывать значения конфигурации из переменных среды. |
Настройка
Прежде чем приступить к работе с сервером конфигурации для Spring, сначала необходимо создать необходимые ресурсы.
Выполните следующие команды, чтобы создать группу ресурсов и среду приложений контейнеров.
Создайте переменные для поддержки конфигурации приложения. Эти значения предоставляются для вас в целях этого урока.
export LOCATION=eastus export RESOURCE_GROUP=my-spring-cloud-resource-group export ENVIRONMENT=my-spring-cloud-environment export JAVA_COMPONENT_NAME=myconfigserver export APP_NAME=my-config-client export IMAGE="mcr.microsoft.com/javacomponents/samples/sample-service-config-client:latest" export URI="https://github.com/Azure-Samples/azure-spring-cloud-config-java-aca.git"
«Переменная» Description LOCATION
Расположение региона Azure, в котором создается приложение контейнера и компонент Java. ENVIRONMENT
Имя среды "Приложения контейнеров Azure" для демонстрационного приложения. RESOURCE_GROUP
Имя группы ресурсов Azure для демонстрационного приложения. JAVA_COMPONENT_NAME
Имя компонента Java, созданного для приложения контейнера. В этом случае создается компонент Config Server для Spring Java. IMAGE
Образ контейнера, используемый в приложении контейнера. URI
Вы можете заменить URI URL-адресом репозитория Git, если это частный, добавьте связанные конфигурации проверки подлинности, такие как spring.cloud.config.server.git.username
иspring.cloud.config.server.git.password
.Войдите в Azure с помощью Azure CLI.
az login
Создать группу ресурсов.
az group create --name $RESOURCE_GROUP --location $LOCATION
Создайте среду приложений контейнеров.
az containerapp env create \ --name $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --location $LOCATION
Эта среда используется для размещения компонента Config Server для Spring и приложения контейнера.
Использование компонента Config Server для Spring Java
Теперь, когда у вас есть среда "Приложения контейнеров", вы можете создать приложение-контейнер и привязать его к компоненту Config Server for Spring. При привязке приложения-контейнера значения конфигурации автоматически синхронизируются с компонентом сервера конфигурации с приложением.
Создайте компонент Config Server для Spring Java.
az containerapp env java-component config-server-for-spring create \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $JAVA_COMPONENT_NAME \ --configuration spring.cloud.config.server.git.uri=$URI
Обновите компонент Config Server для Spring Java.
az containerapp env java-component config-server-for-spring update \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $JAVA_COMPONENT_NAME \ --configuration spring.cloud.config.server.git.uri=$URI spring.cloud.config.server.git.refresh-rate=60
Здесь вы сообщаете компоненту, где найти репозиторий, в котором хранятся сведения о конфигурации с помощью
uri
свойства. Свойствоrefresh-rate
сообщает приложениям-контейнерам, как часто проверка изменений в репозитории Git.Создайте приложение-контейнер, использующее данные конфигурации.
az containerapp create \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --environment $ENVIRONMENT \ --image $IMAGE \ --min-replicas 1 \ --max-replicas 1 \ --ingress external \ --target-port 8080 \ --query properties.configuration.ingress.fqdn
Эта команда возвращает URL-адрес приложения контейнера, использующее данные конфигурации. Скопируйте URL-адрес в текстовый редактор, чтобы его можно было использовать на следующем шаге.
Если вы посещаете приложение в браузере,
connectTimeout
возвращаемое значением по умолчанию является значение0
по умолчанию.Привязка к серверу конфигурации для Spring.
Теперь, когда создается приложение контейнера и сервер конфигурации, вы привязываете их вместе с командой к приложению
update
контейнера.az containerapp update \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --bind $JAVA_COMPONENT_NAME
Параметр
--bind $JAVA_COMPONENT_NAME
создает связь между приложением контейнера и компонентом конфигурации.После привязки приложения контейнера и компонента сервера конфигурации изменения конфигурации автоматически синхронизируются с приложением-контейнером.
При повторном посещении URL-адреса приложения значение
connectTimeout
равно.10000
Это значение исходит из репозитория Git, установленного в$URI
переменной, изначально заданной в качестве источника компонента конфигурации. В частности, это значение извлекается изconnectionTimeout
свойства в application.yml файле репозитория.Запрос привязки внедряет параметр конфигурации в приложение в качестве переменных среды. Теперь эти значения доступны коду приложения для получения параметров конфигурации с сервера конфигурации.
В этом случае для приложения доступны следующие переменные среды:
SPRING_CLOUD_CONFIG_URI=http://$JAVA_COMPONENT_NAME:80 SPRING_CLOUD_CONFIG_COMPONENT_URI=http://$JAVA_COMPONENT_NAME:80 SPRING_CONFIG_IMPORT=optional:configserver:$SPRING_CLOUD_CONFIG_URI
Если вы хотите настроить собственную
SPRING_CONFIG_IMPORT
, можно ссылаться на переменнуюSPRING_CLOUD_CONFIG_COMPONENT_URI
среды, например, можно переопределить аргументами командной строки, напримерJava -Dspring.config.import=optional:configserver:${SPRING_CLOUD_CONFIG_COMPONENT_URI}?fail-fast=true
.Вы также можете удалить привязку из приложения.
Отмена привязки компонента Config Server для Spring Java.
Чтобы удалить привязку из приложения-контейнера, используйте
--unbind
этот параметр.az containerapp update \ --name $APP_NAME \ --unbind $JAVA_COMPONENT_NAME \ --resource-group $RESOURCE_GROUP
При повторном посещении URL-адреса приложения значение изменений, возвращаемых
connectTimeout
в0
.
Очистка ресурсов
Ресурсы, созданные в этом руководстве, влияют на счет Azure. Если вы не собираетесь использовать эти службы в долгосрочной перспективе, выполните следующую команду, чтобы удалить все, созданное в этом руководстве.
az group delete \
--resource-group $RESOURCE_GROUP
Следующие шаги
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по