Samouczek: nawiązywanie połączenia z zarządzanym serwerem Eureka dla rozwiązania Spring w usłudze Azure Container Apps
Eureka Server for Spring to rejestr usług, który umożliwia mikrousługi zarejestrowanie się i odnajdywanie innych usług. Dostępny jako składnik usługi Azure Container Apps możesz powiązać aplikację kontenera z serwerem Eureka dla platformy Spring w celu automatycznej rejestracji na serwerze Eureka.
Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Tworzenie składnika Eureka Server for Spring Java
- Wiązanie aplikacji kontenera z serwerem Eureka dla składnika Spring Java
Ważne
W tym samouczku są używane usługi, które mogą mieć wpływ na rachunek za korzystanie z platformy Azure. Jeśli zdecydujesz się wykonać kroki krok po kroku, upewnij się, że usunięto zasoby opisane w tym artykule, aby uniknąć nieoczekiwanych rozliczeń.
Wymagania wstępne
Do ukończenia tego projektu potrzebne są następujące elementy:
Wymaganie | Instrukcje |
---|---|
Konto platformy Azure | Wymagana jest aktywna subskrypcja. Jeśli nie masz konta, możesz je utworzyć teraz za darmo. |
Interfejs wiersza polecenia platformy Azure | Zainstaluj interfejs wiersza polecenia platformy Azure. |
Kwestie wymagające rozważenia
Podczas uruchamiania na serwerze Eureka dla platformy Spring w usłudze Azure Container Apps należy pamiętać o następujących szczegółach:
Element | Wyjaśnienie |
---|---|
Scope | Składnik Eureka Server for Spring działa w tym samym środowisku co połączona aplikacja kontenera. |
Skalowanie | Serwer Eureka dla platformy Spring nie może skalować. Właściwości minReplicas skalowania i maxReplicas są ustawione na 1 wartość . Aby uzyskać wysoką dostępność, zobacz Tworzenie usługi Eureka o wysokiej dostępności w usłudze Azure Container Apps. |
Zasoby | Alokacja zasobów kontenera dla serwera Eureka dla platformy Spring jest stała. Liczba rdzeni procesora CPU wynosi 0,5, a rozmiar pamięci to 1Gi. |
Cennik | Opłaty za serwer Eureka dla platformy Spring są objęte cenami opartymi na użyciu. Zasoby używane przez zarządzane składniki Java są rozliczane według stawek aktywnych/bezczynnych. Możesz usunąć składniki, które nie są już używane do zatrzymywania rozliczeń. |
Powiązanie | Aplikacje kontenera łączą się z serwerem Eureka dla składnika Spring za pośrednictwem powiązania. Powiązania wprowadzają konfiguracje do zmiennych środowiskowych aplikacji kontenera. Po ustanowieniu powiązania aplikacja kontenera może odczytywać wartości konfiguracji ze zmiennych środowiskowych i łączyć się z serwerem Eureka dla platformy Spring. |
Ustawienia
Przed rozpoczęciem pracy z serwerem Eureka dla platformy Spring należy najpierw utworzyć wymagane zasoby.
Wykonaj następujące polecenia, aby utworzyć grupę zasobów, środowisko aplikacji kontenera.
Utwórz zmienne do obsługi konfiguracji aplikacji. Te wartości są udostępniane na potrzeby tej lekcji.
export LOCATION=eastus export RESOURCE_GROUP=my-services-resource-group export ENVIRONMENT=my-environment export EUREKA_COMPONENT_NAME=eureka export APP_NAME=my-eureka-client export IMAGE="mcr.microsoft.com/javacomponents/samples/sample-service-eureka-client:latest"
Zmienna opis LOCATION
Lokalizacja regionu świadczenia usługi Azure, w której tworzysz aplikację kontenera i składnik Java. ENVIRONMENT
Nazwa środowiska usługi Azure Container Apps dla aplikacji demonstracyjnej. RESOURCE_GROUP
Nazwa grupy zasobów platformy Azure dla aplikacji demonstracyjnej. EUREKA_COMPONENT_NAME
Nazwa składnika Java utworzonego dla aplikacji kontenera. W tym przypadku utworzysz składnik Eureka Server for Spring Java. IMAGE
Obraz kontenera używany w aplikacji kontenera. Zaloguj się na platformie Azure przy użyciu interfejsu wiersza polecenia platformy Azure.
az login
Utwórz grupę zasobów.
az group create --name $RESOURCE_GROUP --location $LOCATION
Utwórz środowisko aplikacji kontenera.
az containerapp env create \ --name $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --location $LOCATION
Tworzenie składnika Eureka Server for Spring Java
Teraz, gdy masz istniejące środowisko, możesz utworzyć aplikację kontenera i powiązać ją z wystąpieniem składnika Java serwera Eureka dla platformy Spring.
Utwórz składnik Eureka Server for Spring Java.
az containerapp env java-component eureka-server-for-spring create \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $EUREKA_COMPONENT_NAME
Opcjonalnie: zaktualizuj konfigurację składnika Eureka Server for Spring Java.
az containerapp env java-component eureka-server-for-spring update \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $EUREKA_COMPONENT_NAME --configuration eureka.server.renewal-percent-threshold=0.85 eureka.server.eviction-interval-timer-in-ms=10000
Wiązanie aplikacji kontenera ze składnikiem Eureka Server for Spring Java
Utwórz aplikację kontenera i powiąż z serwerem Eureka dla platformy Spring.
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 \ --bind $EUREKA_COMPONENT_NAME \ --query properties.configuration.ingress.fqdn
Skopiuj adres URL aplikacji do edytora tekstów, aby można było go użyć w kolejnym kroku.
Wróć do aplikacji kontenera w portalu i skopiuj adres URL aplikacji do edytora tekstów, aby można było go użyć w kolejnym kroku.
Przejdź do trasy, /allRegistrationStatus
aby wyświetlić wszystkie aplikacje zarejestrowane w programie Eureka Server for Spring.
Powiązanie wprowadza kilka konfiguracji do aplikacji jako zmienne środowiskowe, przede wszystkim eureka.client.service-url.defaultZone
właściwość . Ta właściwość wskazuje wewnętrzny punkt końcowy składnika Java serwera Eureka.
Powiązanie wprowadza również następujące właściwości:
"eureka.client.register-with-eureka": "true"
"eureka.client.fetch-registry": "true"
"eureka.instance.prefer-ip-address": "true"
Właściwość jest ustawiona eureka.client.register-with-eureka
na wartość , aby wymusić true
rejestrację na serwerze Eureka. Ta rejestracja zastępuje ustawienie lokalne w application.properties
programie z serwera konfiguracji itd. Jeśli chcesz ustawić ją na false
, możesz ją zastąpić, ustawiając zmienną środowiskową w aplikacji kontenera.
Parametr eureka.instance.prefer-ip-address
jest ustawiony true
na wartość z powodu określonej reguły rozpoznawania nazw DNS w środowisku aplikacji kontenera. Nie modyfikuj tej wartości, aby nie przerywać powiązania.
(Opcjonalnie) Usuń powiązanie aplikacji kontenera ze składnika Eureka Server for Spring Java
Aby usunąć powiązanie z aplikacji kontenera, użyj --unbind
opcji .
az containerapp update \
--name $APP_NAME \
--unbind $JAVA_COMPONENT_NAME \
--resource-group $RESOURCE_GROUP
Wyświetlanie aplikacji za pośrednictwem pulpitu nawigacyjnego
Ważne
Aby wyświetlić pulpit nawigacyjny, musisz mieć co najmniej Microsoft.App/managedEnvironments/write
rolę przypisaną do konta w zasobie środowiska zarządzanego. Możesz jawnie przypisać Owner
lub Contributor
rolę w zasobie lub wykonać kroki tworzenia niestandardowej definicji roli i przypisywać je do swojego konta.
Utwórz definicję roli niestandardowej.
az role definition create --role-definition '{ "Name": "<YOUR_ROLE_NAME>", "IsCustom": true, "Description": "Can access managed Java Component dashboards in managed environments", "Actions": [ "Microsoft.App/managedEnvironments/write" ], "AssignableScopes": ["/subscriptions/<SUBSCRIPTION_ID>"] }'
Pamiętaj, aby zastąpić symbol zastępczy między
<>
nawiasami wAssignableScopes
wartości identyfikatorem subskrypcji.Przypisz rolę niestandardową do konta w zasobie środowiska zarządzanego.
Pobierz identyfikator zasobu środowiska zarządzanego:
export ENVIRONMENT_ID=$(az containerapp env show \ --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \ --query id -o tsv)
Przypisz rolę do swojego konta.
Przed uruchomieniem tego polecenia zastąp symbol zastępczy między
<>
nawiasami identyfikatorem użytkownika lub jednostki usługi.az role assignment create \ --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \ --role "<ROLE_NAME>" \ --scope $ENVIRONMENT_ID
Uwaga
<> USER_OR_SERVICE_PRINCIPAL_ID zwykle powinna być tożsamość używana do uzyskiwania dostępu do witryny Azure Portal. <> ROLE_NAME jest nazwą przypisaną w kroku 1.
Pobierz adres URL serwera Eureka dla pulpitu nawigacyjnego Platformy 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 -o tsv
To polecenie zwraca adres URL, którego można użyć do uzyskania dostępu do pulpitu nawigacyjnego Eureka Server for Spring. Za pośrednictwem pulpitu nawigacyjnego aplikacja kontenera jest również widoczna na poniższym zrzucie ekranu.
Opcjonalnie: integrowanie serwera Eureka dla składników Spring i Admin for Spring Java
Jeśli chcesz zintegrować serwer Eureka dla platformy Spring i składników Admin for Spring Java, zobacz Integrowanie zarządzanego administratora platformy Spring z serwerem Eureka dla platformy Spring.
Czyszczenie zasobów
Zasoby utworzone w tym samouczku mają wpływ na rachunek za platformę Azure. Jeśli nie zamierzasz korzystać z tych usług długoterminowych, uruchom następujące polecenie, aby usunąć wszystkie elementy utworzone w tym samouczku.
az group delete \
--resource-group $RESOURCE_GROUP