Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Spravovaná komponenta Admin for Spring poskytuje rozhraní pro správu webových aplikací Spring Boot, které zpřístupňují koncové body poháněcího zařízení. V Azure Container Apps můžete navázat svou container app na Admin for Spring, abyste ji mohli monitorovat a spravovat.
Tento tutoriál vám ukáže, jak vytvořit Admin pro Spring Java komponentu a navázat ji na vaši kontejnerovou aplikaci pro monitorování a správu vašich Spring aplikací.
V tomto kurzu se naučíte:
- Vytvořte komponentu Admin for Spring Java.
- Vytvořte vazbu aplikace kontejneru na komponentu Admin for Spring Java.
Pokud chcete integrovat správce pro Spring s Serverem Eureka pro Spring, přečtěte si místo toho téma Integrace správy pro Spring s Eureka Serverem pro Spring v kontejnerových aplikacích .
Důležité
V tomto kurzu se používají služby, které můžou ovlivnit fakturu za Azure. Pokud se rozhodnete postupovat podle pokynů, nezapomeňte odstranit prostředky doporučené v tomto článku, abyste se vyhnuli neočekávané fakturaci.
Požadavky
Úvahy
Při spuštění komponenty Admin for Spring v Container Apps mějte na paměti následující podrobnosti:
| Položka | Vysvětlení |
|---|---|
| Scope | Komponenty se spouštějí ve stejném prostředí jako připojená aplikace kontejneru. |
| Škálování | Komponenty se nedají škálovat. Vlastnosti škálování minReplicas a maxReplicas jsou nastaveny na 1. |
| Zdroje informací | Přidělení prostředků kontejneru pro komponenty je pevné. Počet jader procesoru je 0,5 a velikost paměti je 1 GB. |
| Ceny | Fakturace součástí spadá do cen založených na spotřebě. Prostředky spotřebované spravovanými komponentami se účtují podle aktivních nebo nečinných sazeb v závislosti na využití prostředků. K zastavení fakturace můžete odstranit komponenty, které se už nepoužívají. |
| Vazba | Kontejnerové aplikace se připojují ke komponentě prostřednictvím vazby. Vazby injektují konfigurace do prostředí proměnných kontejnerové aplikace. Po vytvoření vazby může aplikace kontejneru číst konfigurační hodnoty z proměnných prostředí a připojit se ke komponentě. |
Nastavení
Než začnete pracovat s komponentou Admin for Spring, musíte vytvořit požadované prostředky.
Následující příkazy vám pomůžou vytvořit skupinu prostředků a prostředí kontejnerové aplikace.
Vytvořte proměnné pro podporu konfigurace aplikace. Tyto hodnoty jsou k dispozici pro účely této lekce.
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"Proměnná Popis LOCATIONUmístění oblasti Azure, kam vytvoříte aplikaci kontejneru a komponentu Java. ENVIRONMENTNázev prostředí aplikace kontejneru pro ukázkové aplikace. RESOURCE_GROUPNázev skupiny prostředků Azure pro ukázkovou aplikaci JAVA_COMPONENT_NAMENázev komponenty Java vytvořené pro vaši aplikaci kontejneru. V tomto případě vytvoříte komponentu Admin for Spring Java. IMAGEImage kontejneru použitá v aplikaci kontejneru. Přihlaste se k Azure pomocí Azure CLI.
az loginVytvořte skupinu prostředků.
az group create \ --name $RESOURCE_GROUP \ --location $LOCATION \ --query "properties.provisioningState"Při použití parametru
--queryse odpověď vyfiltruje na jednoduchou zprávu o úspěchu nebo selhání.Vytvořte prostředí kontejnerové aplikace.
az containerapp env create \ --name $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --location $LOCATION
Použijte komponentu
Teď, když máte existující prostředí, můžete vytvořit aplikaci kontejneru a svázat ji s instancí komponenty Java komponenty Admin for Spring.
Vytvořte komponentu 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 1Aktualizujte komponentu 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
Propojte vaši aplikaci kontejneru s komponentou Admin pro Spring Java
Vytvořte aplikaci kontejneru a svážete ji s komponentou 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
Operace vazby připojí aplikaci kontejneru ke komponentě Admin for Spring Java. Kontejnerová aplikace teď může číst konfigurační hodnoty z proměnných prostředí, především vlastnost SPRING_BOOT_ADMIN_CLIENT_URL, a připojit se ke komponentě Admin for Spring.
Vazba také vloží následující vlastnost:
"SPRING_BOOT_ADMIN_CLIENT_INSTANCE_PREFER-IP": "true",
Tato vlastnost označuje, že klient komponenty Admin for Spring by měl při připojování k serveru Spring používat IP adresu instance aplikace kontejneru.
Volitelné: Zrušení vazby aplikace kontejneru z komponenty Admin for Spring Java
Pokud chcete odebrat vazbu z aplikace kontejneru, použijte tuto --unbind možnost.
az containerapp update \
--name $APP_NAME \
--unbind $JAVA_COMPONENT_NAME \
--resource-group $RESOURCE_GROUP
Monitorujte a provozujte aplikace prostřednictvím dashboardu
Důležité
Pro přístup k dashboardu musíte mít alespoň roli přiřazenou Microsoft.App/managedEnvironments/write k vašemu účtu na zdroji spravovaného prostředí. Můžete přiřadit explicitně roli Owner nebo Contributor k prostředku. Můžete také podle kroků vytvořit vlastní definici role a přiřadit ji k vašemu účtu. Toto povolení není pouze pro čtení. Kdokoli s přístupem k dashboardu může aplikace registrované v této komponentě monitorovat a ovládat.
Poznámka:
Řídicí panel není v Azure provozovaný společností 21Vianet k dispozici.
Vytvořte vlastní definici role.
az role definition create --role-definition '{ "Name": "<ROLE_NAME>", "IsCustom": true, "Description": "Can monitor and operate applications through managed Java component dashboards in managed environments", "Actions": [ "Microsoft.App/managedEnvironments/write" ], "AssignableScopes": ["/subscriptions/<SUBSCRIPTION_ID>"] }'Nezapomeňte nahradit zástupné symboly uvnitř
<>, tedy v hranatých závorkách, vašimi hodnotami.Přiřaďte vlastní roli k vašemu účtu pro zdroj spravovaného prostředí.
Získejte ID prostředku spravovaného prostředí:
export ENVIRONMENT_ID=$(az containerapp env show \ --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \ --query id \ --output tsv)Přiřaďte roli k účtu.
Před spuštěním tohoto příkazu nahraďte zástupný symbol - jak je uvedeno v hranatých závorkách
<>- ID uživatele nebo hlavního objektu služby či názvem role.az role assignment create \ --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \ --role "<ROLE_NAME>" \ --scope $ENVIRONMENT_IDPoznámka:
Hodnota
<USER_OR_SERVICE_PRINCIPAL_ID>by měla být identita, kterou používáte pro přístup k webu Azure Portal. Hodnota<ROLE_NAME>je název, který jste přiřadili v kroku 1.Získejte adresu URL řídicího panelu Správce pro 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 tsvTento příkaz vrátí adresu URL, kterou můžete použít pro přístup k řídicímu panelu Admin for Spring. Na řídicím panelu můžete také zobrazit aplikaci kontejneru, jak je znázorněno na následujícím snímku obrazovky.
Vyčištění prostředků
Prostředky, které vytvoříte v tomto kurzu, ovlivňují fakturu za Azure. Pokud tyto služby nechcete používat dlouhodobě, spuštěním následujícího příkazu odeberte vše, co jste vytvořili v tomto kurzu.
az group delete --resource-group $RESOURCE_GROUP
Závislost
Když použijete součást správce ve vlastní aplikaci kontejneru, přidejte do souboru pom.xml následující závislost. Nahraďte číslo verze nejnovější verzí dostupnou v úložišti Maven.
<dependency>
<groupId>de.codecentric</groupId>
<version>3.3.2</version>
<artifactId>spring-boot-admin-starter-client</artifactId>
</dependency>
Poznámka:
Pokud ve své aplikaci kontejneru povolíte agenta Javy spuštěním následujícího příkazu v Azure CLI, nemusíte přidávat počáteční závislost klienta správce pro správce Spring Boot:
az containerapp update --enable-java-agent \
--resource-group $RESOURCE_GROUP \
--name $APP_NAME
Konfigurovatelné vlastnosti
Počínaje verzí Spring Boot 2 jsou koncové body jiné než health a info nejsou ve výchozím nastavení zpřístupněny. Můžete je zveřejnit přidáním následující konfigurace do souboru application.properties .
management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always
Seznam povolených konfigurací pro správce pro Spring
Následující seznam obsahuje podrobnosti o vlastnostech součásti správce, které můžete pro aplikaci nakonfigurovat. Další informace naleznete v tématu Spring Boot Admin.
| Název vlastnosti | Popis | Výchozí hodnota |
|---|---|---|
spring.boot.admin.server.enabled |
Povolí Spring Boot Admin Server. | true |
spring.boot.admin.context-path |
Předpona cesty, kde jsou obsluhovány statické prostředky a rozhraní API administračního serveru. Ve vztahu k Dispatcher-Servletu. | |
spring.boot.admin.monitor.status-interval |
Časový interval v milisekundách pro kontrolu stavu instancí | 10,000ms |
spring.boot.admin.monitor.status-lifetime |
Životnost stavu v milisekundách Stav se neaktualizuje, dokud nevypršela platnost posledního stavu. | 10 000 ms |
spring.boot.admin.monitor.info-interval |
Časový interval v milisekundách pro kontrolu informací o instancích | 1m |
spring.boot.admin.monitor.info-lifetime |
Životnost informací v minutách. Informace se neaktualizují, pokud nevypršela platnost posledních informací. | 1m |
spring.boot.admin.monitor.default-timeout |
Výchozí časový limit při provádění požadavků Jednotlivé hodnoty pro konkrétní koncové body je možné přepsat pomocí spring.boot.admin.monitor.timeout.*. |
10,000 |
spring.boot.admin.monitor.timeout.* |
Páry klíč-hodnota s časovým limitem podle endpointId. |
Výchozí je default-timeout hodnota. |
spring.boot.admin.monitor.default-retries |
Výchozí počet opakování neúspěšných požadavků Žádosti, které upravují data (PUT, POST, PATCH, DELETE) se neopakují. Jednotlivé hodnoty pro konkrétní koncové body je možné přepsat pomocí spring.boot.admin.monitor.retries.*. |
0 |
spring.boot.admin.monitor.retries.* |
Páry klíč-hodnota s počtem opakování za sekundu endpointId. Žádosti, které upravují data (PUT, POST, PATCH, DELETE) se neopakují. |
Výchozí je default-retries hodnota. |
spring.boot.admin.metadata-keys-to-sanitize |
Hodnoty metadat pro klíče odpovídající těmto vzorům regulárních výrazů, které se používají k sanitizaci ve všech výstupech JSON. Počínaje verzí Spring Boot 3 jsou všechny hodnoty poháněcího zařízení ve výchozím nastavení maskovány. Další informace o konfiguraci procesu nesanitizace naleznete v tématu Sanitize Sensitive Values. | ".*password$", ".*secret$", ".*key$", ".*token$", ".*credentials.*", ".*vcap_services$" |
spring.boot.admin.probed-endpoints |
U klientských aplikací Spring Boot 1.x provádí Spring Boot Admin zjišťování zadaných koncových bodů pomocí požadavku OPTIONS. Pokud se cesta liší od ID, můžete tuto hodnotu id:path zadat například 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 |
Hlavičky, které se nemají přeposílat při provádění požadavků klientům. | "Cookie", "Set-Cookie", "Authorization" |
spring.boot.admin.ui.title |
Zobrazený název stránky. | "Spring Boot Admin" |
spring.boot.admin.ui.poll-timer.cache |
Doba trvání dotazování v milisekundách pro načtení nových dat mezipaměti | 2500 |
spring.boot.admin.ui.poll-timer.datasource |
Doba dotazování v milisekundách pro načtení nových dat ze zdroje. | 2500 |
spring.boot.admin.ui.poll-timer.gc |
Doba dotazování v milisekundách pro získání nových dat GC. | 2500 |
spring.boot.admin.ui.poll-timer.process |
Doba trvání dotazování v milisekundách pro načtení nových dat procesu | 2500 |
spring.boot.admin.ui.poll-timer.memory |
Doba dotazování v milisekundách pro načtení nových dat paměti | 2500 |
spring.boot.admin.ui.poll-timer.threads |
Doba trvání dotazování v milisekundách pro získání dat nových vláken | 2500 |
spring.boot.admin.ui.poll-timer.logfile |
Interval dotazování v milisekundách pro načítání nových dat souboru protokolu. | 1000 |
spring.boot.admin.ui.enable-toasts |
Povolí nebo zakáže upozornění typu toast. | false |
spring.boot.admin.ui.title |
Hodnota názvu okna prohlížeče | "" |
spring.boot.admin.ui.brand |
Kód HTML se vykresluje v navigačním záhlaví a má ve výchozím nastavení označení Spring Boot Admin. Ve výchozím nastavení následuje logo Spring Boot Admin a jeho název. | "" |
management.scheme |
Hodnota, která je nahrazena adresou URL služby použitou pro přístup ke koncovým bodům poháněcího zařízení. | |
management.address |
Hodnota, která je nahrazena adresou URL služby použitou pro přístup ke koncovým bodům poháněcího zařízení. | |
management.port |
Hodnota, která je nahrazena adresou URL služby použitou pro přístup ke koncovým bodům poháněcího zařízení. | |
management.context-path |
Hodnota připojená k adrese URL služby, která se používá pro přístup ke koncovým bodům poháněcího zařízení. | ${spring.boot.admin.discovery.converter.management-context-path} |
health.path |
Hodnota, která je připojena k adrese URL služby použité pro kontrolu stavu. Ignorováno EurekaServiceInstanceConverter. |
${spring.boot.admin.discovery.converter.health-endpoint} |
spring.boot.admin.discovery.enabled |
DiscoveryClient Povolí podporu serveru pro správu. |
true |
spring.boot.admin.discovery.converter.management-context-path |
Hodnota, která je připojena ke service-url zjištěné službě, když je management-url hodnota převedena pomocí DefaultServiceInstanceConverter. |
/actuator |
spring.boot.admin.discovery.converter.health-endpoint-path |
Hodnota, která je připojena ke management-url zjištěné službě, když je health-url hodnota převedena pomocí DefaultServiceInstanceConverter. |
"health" |
spring.boot.admin.discovery.ignored-services |
Služby, které jsou ignorovány při použití zjišťování a nejsou registrovány jako aplikace. Podporuje jednoduché vzory, jako jsou "foo*", "*bar" a "foo*bar*". |
|
spring.boot.admin.discovery.services |
Služby zahrnuté při používání zjišťování a registrované jako aplikace. Podporuje jednoduché vzory, jako jsou "foo*", "*bar" a "foo*bar*". |
"*" |
spring.boot.admin.discovery.ignored-instances-metadata |
Služby se ignorují, pokud obsahují aspoň jednu položku metadat, která odpovídá vzorům v tomto seznamu. Podporuje vzory, jako je "discoverable=false". |
|
spring.boot.admin.discovery.instances-metadata |
Služby zahrnuté, pokud obsahují aspoň jednu položku metadat, která odpovídá vzorům v seznamu. Podporuje vzory, jako je "discoverable=true". |
Běžné konfigurace
- Protokolování souvisejících konfigurací:
- log.level.*
- log.group.*
- Všechny ostatní konfigurace v
logging.*oboru názvů. Například nepoužívejtelogging.filek zápisu souborů protokolu.
Omezení
- Řídicí panel správy Spring Boot není v Azure provozovaný společností 21Vianet k dispozici.
Související obsah
Integrace spravovaného správce pro Spring se serverem Eureka for Spring