Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Składnik zarządzany przez administratora platformy Spring oferuje interfejs administracyjny dla aplikacji internetowych Spring Boot, które uwidaczniają punkty końcowe siłownika. Jako składnik zarządzany w usłudze Azure Container Apps możesz łatwo powiązać aplikację kontenera z usługą Admin for Spring w celu zapewnienia bezproblemowej integracji i zarządzania.
W tym samouczku pokazano, jak utworzyć składnik Admin for Spring Java i powiązać go z aplikacją kontenera, aby móc łatwo monitorować aplikacje Spring i zarządzać nimi.
Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Utwórz składnik Admin for Spring Java.
- Powiąż aplikację kontenera ze składnikiem Admin for Spring Java.
Jeśli chcesz zintegrować Admin for Spring z serwerem Eureka Server for Spring, zobacz Integracja Admina dla Spring z serwerem Eureka dla Spring w Container Apps zamiast tego.
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ę postępować zgodnie z instrukcjami, upewnij się, że usunięto zasoby opisane w tym artykule, aby uniknąć nieoczekiwanych rozliczeń.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Jeśli jeszcze go nie masz, możesz go utworzyć bezpłatnie.
- Azure CLI.
Kwestie wymagające rozważenia
Po uruchomieniu składnika Admin for Spring w usłudze Container Apps należy pamiętać o następujących szczegółach:
| Towar | Wyjaśnienie |
|---|---|
| Scope | Składniki działają w tym samym środowisku co połączona aplikacja kontenera. |
| Skalowanie | Składniki nie mogą być skalowane. Właściwości skalowania minReplicas i maxReplicas są oba ustawione na 1 tę samą wartość. |
| Zasoby | Alokacja zasobów kontenera dla składników jest stała. Liczba rdzeni procesora CPU wynosi 0,5, a rozmiar pamięci wynosi 1 GB. |
| Cennik | Rozliczenia składników podlegają cenom opartym na zużyciu. Zasoby używane przez składniki zarządzane są rozliczane według aktywnych lub bezczynnych stawek, w zależności od użycia zasobów. Możesz usunąć składniki, które nie są już używane do zatrzymywania rozliczeń. |
| Wiązanie | Aplikacje kontenerowe łączą się ze składnikiem poprzez wiązanie. 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ę ze składnikiem. |
Ustawienia
Przed rozpoczęciem pracy ze składnikiem Admin for Spring należy utworzyć wymagane zasoby.
Poniższe polecenia ułatwiają tworzenie grupy zasobów i środowiska 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-resource-group export ENVIRONMENT=my-environment export JAVA_COMPONENT_NAME=admin export APP_NAME=sample-admin-client export IMAGE="mcr.microsoft.com/javacomponents/samples/sample-admin-for-spring-client:latest"Zmienna opis LOCATIONLokalizacja regionu świadczenia usługi Azure, w której tworzysz aplikację kontenera i składnik Java. ENVIRONMENTNazwa środowiska aplikacji kontenera dla aplikacji demonstracyjnej. RESOURCE_GROUPNazwa grupy zasobów platformy Azure dla aplikacji demonstracyjnej. JAVA_COMPONENT_NAMENazwa składnika Java utworzonego dla aplikacji kontenera. W tym przypadku utworzysz składnik Admin for Spring Java. IMAGEObraz kontenera używany w aplikacji kontenera. Zaloguj się do Azure przy użyciu Azure CLI.
az loginUtwórz grupę zasobów.
az group create \ --name $RESOURCE_GROUP \ --location $LOCATION \ --query "properties.provisioningState"W przypadku użycia parametru
--query, odpowiedź jest filtrowana do prostego komunikatu o sukcesie lub porażce.Utwórz środowisko aplikacji kontenera.
az containerapp env create \ --name $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --location $LOCATION
Użyj składnika
Teraz, gdy masz istniejące środowisko, możesz utworzyć aplikację kontenera i powiązać ją z wystąpieniem komponentu Java w komponencie Admin dla Spring.
Utwórz składnik Admin for Spring Java.
az containerapp env java-component admin-for-spring create \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $JAVA_COMPONENT_NAME \ --min-replicas 1 \ --max-replicas 1Zaktualizuj składnik Admin for Spring Java.
az containerapp env java-component admin-for-spring update \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $JAVA_COMPONENT_NAME \ --min-replicas 2 \ --max-replicas 2
Połącz swoją aplikację kontenera z komponentem Admin for Spring Java
Utwórz aplikację kontenera i powiąż ją ze składnikiem Admin for 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 $JAVA_COMPONENT_NAME
Operacja powiązania łączy aplikację kontenera ze składnikiem Admin for Spring Java. Aplikacja kontenerowa może teraz odczytywać wartości konfiguracji ze zmiennych środowiskowych, w szczególności właściwość SPRING_BOOT_ADMIN_CLIENT_URL, i łączyć się ze składnikiem Admin for Spring.
Powiązanie wprowadza również następującą właściwość:
"SPRING_BOOT_ADMIN_CLIENT_INSTANCE_PREFER-IP": "true",
Ta właściwość wskazuje, że klient składnika Admin for Spring powinien używać adresu IP wystąpienia aplikacji kontenera podczas nawiązywania połączenia z administratorem serwera Spring.
Opcjonalnie: Usuń powiązanie aplikacji kontenera ze składnika Admin 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świetl pulpit nawigacyjny
Ważne
Aby wyświetlić pulpit nawigacyjny, Twoje konto musi mieć przypisaną co najmniej Microsoft.App/managedEnvironments/write rolę w zasobie środowiska zarządzanego. Możesz jawnie przypisać zasobowi rolę Owner lub Contributor. Możesz również wykonać kroki tworzenia niestandardowej definicji roli i przypisywania jej do konta.
Uwaga
Pulpit nawigacyjny nie jest dostępny na platformie Azure obsługiwanej przez firmę 21Vianet.
Utwórz definicję roli niestandardowej.
az role definition create --role-definition '{ "Name": "<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ć symbole zastępcze w nawiasach
<>swoimi wartościami.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 \ --output tsv)Przypisz rolę do swojego konta.
Przed uruchomieniem tego polecenia zastąp symbol zastępczy — jak wskazano w nawiasach
<>— swoim identyfikatorem użytkownika, identyfikatorem jednostki usługi lub nazwą roli.az role assignment create \ --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \ --role "<ROLE_NAME>" \ --scope $ENVIRONMENT_IDUwaga
Wartość
<USER_OR_SERVICE_PRINCIPAL_ID>powinna być tożsamością używaną do uzyskiwania dostępu do witryny Azure Portal. Wartość<ROLE_NAME>to nazwa przypisana w kroku 1.Pobierz adres URL pulpitu nawigacyjnego administratora platformy Spring.
az containerapp env java-component admin-for-spring show \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $JAVA_COMPONENT_NAME \ --query properties.ingress.fqdn \ --output tsvTo polecenie zwraca adres URL, którego można użyć do uzyskiwania dostępu do pulpitu nawigacyjnego administratora platformy Spring. Pulpit nawigacyjny umożliwia również wyświetlanie aplikacji kontenera, jak pokazano na poniższym zrzucie ekranu.
Czyszczenie zasobów
Zasoby utworzone w tym samouczku mają wpływ na rachunek za korzystanie z platformy Azure. Jeśli nie planujesz długoterminowego korzystania z tych usług, uruchom następujące polecenie, aby usunąć wszystko, co zostało utworzone w tym samouczku.
az group delete --resource-group $RESOURCE_GROUP
Zależność
Jeśli używasz składnika administracyjnego we własnej aplikacji kontenera, dodaj następującą zależność w pliku pom.xml . Zastąp numer wersji najnowszą wersją dostępną w repozytorium Maven.
<dependency>
<groupId>de.codecentric</groupId>
<version>3.3.2</version>
<artifactId>spring-boot-admin-starter-client</artifactId>
</dependency>
Uwaga
Nie musisz dodawać zależności klienta początkowego dla Spring Boot Admin, jeśli włączysz agenta Java w aplikacji kontenerowej, poprzez uruchomienie następującego polecenia w Azure CLI:
az containerapp update --enable-java-agent \
--resource-group $RESOURCE_GROUP \
--name $APP_NAME
Konfigurowalne właściwości
Począwszy od platformy Spring Boot 2, punkty końcowe inne niż health i info nie są domyślnie udostępniane. Można je uwidocznić, dodając następującą konfigurację w pliku application.properties .
management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always
Lista dozwolonych konfiguracji dla administratora platformy Spring
Poniższa lista zawiera szczegółowe informacje o właściwościach składnika administracyjnego, które można skonfigurować dla aplikacji. Aby uzyskać więcej informacji, zobacz Spring Boot Admin.
| Nazwa właściwości | opis | Domyślna wartość |
|---|---|---|
spring.boot.admin.server.enabled |
Włącza serwer administracyjny spring boot. | true |
spring.boot.admin.context-path |
Prefiks ścieżki, w którym są obsługiwane statyczne zasoby i interfejs API serwera administracyjnego. Względem Dispatcher-Servlet. | |
spring.boot.admin.monitor.status-interval |
Przedział czasu w milisekundach w celu sprawdzenia stanu wystąpień. | 10,000ms |
spring.boot.admin.monitor.status-lifetime |
Okres istnienia stanu w milisekundach. Stan nie jest aktualizowany tak długo, jak ostatni stan nie wygasł. | 10 000 ms |
spring.boot.admin.monitor.info-interval |
Przedział czasu w milisekundach w celu sprawdzenia informacji o wystąpieniach. | 1m |
spring.boot.admin.monitor.info-lifetime |
Okres istnienia informacji w minutach. Informacje nie są aktualizowane tak długo, jak ostatnie informacje nie wygasły. | 1m |
spring.boot.admin.monitor.default-timeout |
Domyślny limit czasu podczas tworzenia żądań. Poszczególne wartości dla określonych punktów końcowych można zastąpić przy użyciu polecenia spring.boot.admin.monitor.timeout.*. |
10,000 |
spring.boot.admin.monitor.timeout.* |
Pary klucz-wartość z limitem czasu dla każdej pary endpointId. |
Wartość domyślna to default-timeout. |
spring.boot.admin.monitor.default-retries |
Domyślna liczba ponownych prób dla żądań zakończonych niepowodzeniem. Żądania modyfikujące dane (PUT, POST, , PATCHDELETE) nie są ponawiane. Poszczególne wartości dla określonych punktów końcowych można zastąpić przy użyciu polecenia spring.boot.admin.monitor.retries.*. |
0 |
spring.boot.admin.monitor.retries.* |
Pary klucz-wartość z liczbą prób ponawiania na endpointId. Żądania modyfikujące dane (PUT, POST, , PATCHDELETE) nie są ponawiane. |
Wartość domyślna to default-retries. |
spring.boot.admin.metadata-keys-to-sanitize |
Wartości metadanych dla kluczy, które pasują do tych wzorców wyrażeń regularnych, są używane do sanityzacji we wszystkich danych wyjściowych JSON. Począwszy od platformy Spring Boot 3, wszystkie wartości siłowników są domyślnie maskowane. Aby uzyskać więcej informacji na temat konfigurowania procesu niesanityzacji, zobacz Oczyszczanie poufnych wartości. | ".*password$", ".*secret$", ".*key$", ".*token$", ".*credentials.*", ".*vcap_services$" |
spring.boot.admin.probed-endpoints |
W przypadku aplikacji klienckich Spring Boot 1.x, Spring Boot Admin bada określone punkty końcowe przy użyciu żądania OPTIONS. Jeśli ścieżka różni się od identyfikatora, możesz określić tę wartość jako id:path — na przykład health:ping. |
"health", "env", "metrics", "httptrace:trace", "threaddump:dump", "jolokia", "info", "logfile", "refresh", "flyway", "liquibase", "heapdump", "loggers", "auditevents" |
spring.boot.admin.instance-proxy.ignored-headers |
Nagłówki, które nie mają być przekazywane podczas wysyłania żądań do klientów. | "Cookie", "Set-Cookie", "Authorization" |
spring.boot.admin.ui.title |
Wyświetlany tytuł strony. | "Spring Boot Admin" |
spring.boot.admin.ui.poll-timer.cache |
Czas trwania sondowania w milisekundach w celu pobrania nowych danych pamięci podręcznej. | 2500 |
spring.boot.admin.ui.poll-timer.datasource |
Czas trwania sondowania w milisekundach do pobrania nowych danych źródłowych. | 2500 |
spring.boot.admin.ui.poll-timer.gc |
Czas trwania sondowania w milisekundach w celu pobrania nowych danych gc. | 2500 |
spring.boot.admin.ui.poll-timer.process |
Czas trwania sondowania w milisekundach w celu pobrania nowych danych procesu. | 2500 |
spring.boot.admin.ui.poll-timer.memory |
Czas trwania sondowania w milisekundach w celu pobrania nowych danych pamięci. | 2500 |
spring.boot.admin.ui.poll-timer.threads |
Czas trwania sondowania w milisekundach w celu pobrania nowych danych wątków. | 2500 |
spring.boot.admin.ui.poll-timer.logfile |
Czas trwania sondowania w milisekundach w celu pobrania nowych danych pliku dziennika. | 1000 |
spring.boot.admin.ui.enable-toasts |
Umożliwia włączanie lub wyłączanie powiadomień typu toast. | false |
spring.boot.admin.ui.title |
Wartość tytułu okna przeglądarki. | "" |
spring.boot.admin.ui.brand |
Kod HTML jest przetwarzany w nagłówku nawigacji i domyślnie oznaczony etykietą Spring Boot Admin. Domyślnie po jego nazwie następuje logo administratora platformy Spring Boot. | "" |
management.scheme |
Wartość, która jest zastępowana w adresie URL usługi używanym do uzyskiwania dostępu do punktów końcowych siłownika. | |
management.address |
Wartość, która jest zastępowana w adresie URL usługi używanym do uzyskiwania dostępu do punktów końcowych siłownika. | |
management.port |
Wartość, która jest zastępowana w adresie URL usługi używanym do uzyskiwania dostępu do punktów końcowych siłownika. | |
management.context-path |
Wartość dołączona do adresu URL usługi używanego do uzyskiwania dostępu do punktów końcowych siłownika. | ${spring.boot.admin.discovery.converter.management-context-path} |
health.path |
Wartość dołączona do adresu URL usługi używanego do sprawdzania kondycji. Ignorowane przez element EurekaServiceInstanceConverter. |
${spring.boot.admin.discovery.converter.health-endpoint} |
spring.boot.admin.discovery.enabled |
DiscoveryClient Włącza obsługę serwera administracyjnego. |
true |
spring.boot.admin.discovery.converter.management-context-path |
Wartość dołączana do service-url odkrytej usługi, gdy wartość management-url jest konwertowana przez DefaultServiceInstanceConverter. |
/actuator |
spring.boot.admin.discovery.converter.health-endpoint-path |
Wartość, która jest dołączona do management-url odnalezionej usługi, gdy wartość health-url jest konwertowana przez DefaultServiceInstanceConverter element. |
"health" |
spring.boot.admin.discovery.ignored-services |
Usługi ignorowane podczas korzystania z mechanizmu odnajdywania i niezarejestrowane jako aplikacja. Obsługuje proste wzorce, takie jak "foo*", "*bar"i "foo*bar*". |
|
spring.boot.admin.discovery.services |
Usługi uwzględnione w przypadku korzystania z odnajdywania i zarejestrowania jako aplikacji. Obsługuje proste wzorce, takie jak "foo*", "*bar"i "foo*bar*". |
"*" |
spring.boot.admin.discovery.ignored-instances-metadata |
Usługi ignorowane, jeśli zawierają co najmniej jeden element metadanych, który pasuje do wzorców na tej liście. Obsługuje wzorce, takie jak "discoverable=false". |
|
spring.boot.admin.discovery.instances-metadata |
Usługi uwzględnione, jeśli zawierają co najmniej jeden element metadanych, który pasuje do wzorców na liście. Obsługuje wzorce, takie jak "discoverable=true". |
Typowe konfiguracje
- Rejestrowanie powiązanych konfiguracji:
- logging.level.*
- logging.group.*
- Wszelkie inne konfiguracje w
logging.*przestrzeni nazw. Na przykład nie należy używaćlogging.filedo zapisywania plików dziennika.
Ograniczenia
- Pulpit nawigacyjny administratora platformy Spring Boot nie jest dostępny na platformie Azure obsługiwanej przez firmę 21Vianet.
Powiązana zawartość
Integrowanie zarządzanego administratora platformy Spring z serwerem Eureka dla platformy Spring