Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве описан процесс интеграции управляемого администратора для Spring с сервером Eureka server for Spring в приложениях контейнеров Azure.
В этой статье содержится некоторое содержимое, аналогичное руководству по подключению к управляемому администратору для Spring в приложениях контейнеров Azure, но с помощью Eureka Server for Spring можно привязать admin for Spring to Eureka Server for Spring, чтобы получить сведения о приложении через Eureka, а не привязать отдельные приложения к Admin for Spring.
Следуя этому руководству, вы настроите сервер Eureka для обнаружения служб, а затем создадите администратора для Spring для управления приложениями Spring, зарегистрированными на сервере Eureka. Эта настройка гарантирует, что другие приложения должны быть привязаны только к серверу Eureka, упрощая управление микрослужбами.
Из этого руководства вы узнаете, как:
- Создайте сервер Eureka для Spring.
- Создайте администратора для Spring и свяжите его с сервером Eureka.
- Привязать другие приложения к серверу Eureka для упрощения обнаружения и управления службами.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Если у вас еще нет, его можно создать бесплатно.
- Azure CLI.
- Существующий компонент Eureka Server для Spring Java. Если у вас нет этого сервера, см. статью "Создание сервера Eureka для Spring".
Рекомендации
При запуске управляемых компонентов Java в приложениях контейнеров Azure следует учитывать следующие сведения:
| Товар | Описание |
|---|---|
| Область | Компоненты выполняются в той же среде, что и подключенное приложение контейнера. |
| Масштабирование | Компоненты не могут масштабироваться. Свойства minReplicas масштабирования и maxReplicas имеют значение . 1. |
| Ресурсы | Исправлено выделение ресурсов контейнера для компонентов. Число ядер ЦП равно 0,5, а размер памяти составляет 1 ГБ. |
| Цены | Выставление счетов на основе компонентов зависит от цен на основе потребления. Счета за ресурсы, используемые управляемыми компонентами, выставляются по активным или бездействуемым тарифам в зависимости от использования ресурсов. Вы можете удалить компоненты, которые больше не используются для остановки выставления счетов. |
| Привязка | Приложения-контейнеры подключаются к компоненту через привязку. Привязки внедряют конфигурации в переменные среды приложения-контейнера. После установки привязки приложение-контейнер может считывать значения конфигурации из переменных среды и подключаться к компоненту. |
Настройка
Прежде чем начать, создайте необходимые ресурсы, выполнив следующие команды.
Создайте переменные для поддержки конфигурации приложения. Эти значения предоставляются для вас в целях этого урока.
export LOCATION=eastus export RESOURCE_GROUP=my-services-resource-group export ENVIRONMENT=my-environment export EUREKA_COMPONENT_NAME=eureka export ADMIN_COMPONENT_NAME=admin export CLIENT_APP_NAME=sample-service-eureka-client export CLIENT_IMAGE="mcr.microsoft.com/javacomponents/samples/sample-admin-for-spring-client:latest"«Переменная» Description LOCATIONРасположение региона Azure, в котором создается приложение контейнера и компоненты Java. RESOURCE_GROUPИмя группы ресурсов Azure для демонстрационного приложения. ENVIRONMENTИмя среды "Приложения контейнеров Azure" для демонстрационного приложения. EUREKA_COMPONENT_NAMEИмя компонента Java для сервера Eureka. ADMIN_COMPONENT_NAMEИмя компонента Admin for Spring Java. CLIENT_APP_NAMEИмя приложения-контейнера, которое привязывается к серверу Eureka. CLIENT_IMAGEОбраз контейнера, используемый в приложении контейнера Eureka Server. Войдите в 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 \ --query "properties.provisioningState"--queryИспользование параметра фильтрует ответ до простого сообщения об успешном выполнении или сбое.
Необязательно. Создание сервера Eureka для Spring
Если у вас нет существующего сервера Eureka для Spring, выполните следующую команду, чтобы создать компонент Java для сервера Eureka. Дополнительные сведения см. в разделе "Создание сервера Eureka для Spring".
az containerapp env java-component eureka-server-for-spring create \
--environment $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--name $EUREKA_COMPONENT_NAME
Связывание компонентов вместе
Создайте компонент Admin for Spring Java.
az containerapp env java-component admin-for-spring create \
--environment $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--name $ADMIN_COMPONENT_NAME \
--min-replicas 1 \
--max-replicas 1 \
--bind $EUREKA_COMPONENT_NAME
Привязка других приложений к серверу Eureka
Настроив сервер Eureka, вы можете привязать к нему другие приложения для обнаружения служб. Кроме того, вы можете отслеживать и управлять этими приложениями на панели мониторинга администратора для Spring. Чтобы создать и привязать приложение контейнера к серверу Eureka, выполните следующие действия.
Создайте приложение-контейнер и привязать его к серверу Eureka Server.
az containerapp create \
--name $CLIENT_APP_NAME \
--resource-group $RESOURCE_GROUP \
--environment $ENVIRONMENT \
--image $CLIENT_IMAGE \
--min-replicas 1 \
--max-replicas 1 \
--ingress external \
--target-port 8080 \
--bind $EUREKA_COMPONENT_NAME
Совет
Так как предыдущие шаги привязали компонент Admin for Spring к компоненту Eureka Server for Spring, компонент администрирования включает обнаружение служб и позволяет управлять им с помощью панели мониторинга Admin for Spring одновременно.
Просмотр панелей мониторинга
Внимание
Чтобы просмотреть панель мониторинга, необходимо иметь по крайней мере Microsoft.App/managedEnvironments/write роль, назначенную учетной записи в ресурсе управляемой среды. Вы можете явно назначить Owner или роль в ресурсе или Contributor выполнить действия, чтобы создать пользовательское определение роли и назначить его учетной записи.
Создайте определение настраиваемой роли.
az role definition create --role-definition '{ "Name": "Java Component Dashboard Access", "IsCustom": true, "Description": "Can access managed Java Component dashboards in managed environments", "Actions": [ "Microsoft.App/managedEnvironments/write" ], "AssignableScopes": ["/subscriptions/<SUBSCRIPTION_ID>"] }'Обязательно замените
<SUBSCRIPTION_ID>заполнитель в значенииAssignableScopesидентификатором подписки.Назначьте настраиваемую роль учетной записи в ресурсе управляемой среды.
Получите идентификатор ресурса управляемой среды.
export ENVIRONMENT_ID=$(az containerapp env show \ --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \ --query id \ --output tsv)Назначьте роль учетной записи.
Перед выполнением этой команды замените заполнитель идентификатором
<USER_OR_SERVICE_PRINCIPAL_ID>пользователя или субъекта-службы.az role assignment create \ --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \ --role "Java Component Dashboard Access" \ --scope $ENVIRONMENT_IDПолучите URL-адрес панели мониторинга admin for Spring.
az containerapp env java-component admin-for-spring show \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $ADMIN_COMPONENT_NAME \ --query properties.ingress.fqdn \ --output tsvПолучите URL-адрес панели мониторинга Eureka Server для Spring.
az containerapp env java-component eureka-server-for-spring show \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $EUREKA_COMPONENT_NAME \ --query properties.ingress.fqdn \ --output tsvЭта команда возвращает URL-адрес, который можно использовать для доступа к панели мониторинга Eureka Server для Spring. С помощью панели мониторинга приложение-контейнер также относится к вам, как показано на следующем снимке экрана.
Очистка ресурсов
Ресурсы, созданные в этом руководстве, влияют на счет Azure. Если вы не собираетесь использовать эти службы в долгосрочной перспективе, выполните следующую команду, чтобы удалить все, созданное в этом руководстве.
az group delete --resource-group $RESOURCE_GROUP