Kurz: Připojení ke spravovanému správci pro Spring v Azure Container Apps
Komponenta spravovaná správcem Spring nabízí rozhraní pro správu webových aplikací Spring Boot, které zpřístupňují koncové body poháněcího zařízení. Jako spravovaná komponenta ve službě Azure Container Apps můžete snadno svázat svou aplikaci kontejneru se správcem pro Spring pro bezproblémovou integraci a správu.
V tomto kurzu se dozvíte, jak vytvořit komponentu Admin for Spring Java a svázat ji s aplikací typu kontejner, abyste mohli snadno monitorovat a spravovat aplikace Spring.
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
- Účet Azure s aktivním předplatným. Pokud ho ještě nemáte, můžete si ho zdarma vytvořit.
- Rozhraní příkazového řádku Azure.
Důležité informace
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í |
---|---|
Obor | Komponenty se spouštějí ve stejném prostředí jako připojená aplikace kontejneru. |
Škálování | Komponenta nemůže škálovat. Vlastnosti minReplicas škálování a maxReplicas obě jsou nastaveny na 1 . |
Zdroje informací | Opravili jsme přidělení prostředků kontejneru pro komponenty. Počet jader procesoru je 0,5 a velikost paměti je 1 Gi. |
Ceny | Fakturace součástí spadá do cen založených na spotřebě. Prostředky spotřebované spravovanými komponentami se účtují podle tarifů aktivní/nečinné. 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 vloží konfigurace do proměnných prostředí kontejneru 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 nejprve 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 LOCATION
Umístění oblasti Azure, kam vytvoříte aplikaci kontejneru a komponentu Java. ENVIRONMENT
Název prostředí aplikace kontejneru pro ukázkové aplikace. RESOURCE_GROUP
Název skupiny prostředků Azure pro ukázkovou aplikaci JAVA_COMPONENT_NAME
Název komponenty Java vytvořené pro vaši aplikaci kontejneru. V tomto případě vytvoříte komponentu Admin for Spring Java. IMAGE
Image kontejneru použitá v aplikaci kontejneru. Přihlaste se k Azure pomocí Azure CLI.
az login
Vytvořte skupinu prostředků.
az group create \ --name $RESOURCE_GROUP \ --location $LOCATION \ --query "properties.provisioningState"
Při použití parametru
--query
se 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žití komponenty
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 1
Aktualizujte 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
Vytvoření vazby aplikace kontejneru k komponentě Admin for 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 sváže aplikaci kontejneru s komponentou Admin for Spring Java. Aplikace kontejneru teď může číst konfigurační hodnoty z proměnných prostředí, především SPRING_BOOT_ADMIN_CLIENT_URL
z vlastnosti, 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řipojení k serveru Spring preferovat 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
Zobrazení řídicího panelu
Důležité
Pokud chcete zobrazit řídicí panel, musíte mít přiřazenou alespoň Microsoft.App/managedEnvironments/write
roli k vašemu účtu ve spravovaném prostředku prostředí. K prostředku můžete explicitně přiřadit Owner
roli Contributor
. Můžete také podle kroků vytvořit vlastní definici role a přiřadit ji k vašemu účtu.
Vytvořte vlastní definici role.
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>"] }'
Nezapomeňte nahradit zástupné symboly mezi
<>
hranatými závorkami hodnotami.Přiřaďte vlastní roli k vašemu účtu u prostředku 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) názvem uživatele nebo instančního objektu.az role assignment create \ --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \ --role "<ROLE_NAME>" \ --scope $ENVIRONMENT_ID
Pozná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 tsv
Tento 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 vytvořené v tomto kurzu mají vliv na fakturu za Azure. Pokud tyto služby nebudete 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
Dependency
Když použijete součást správce ve vlastní aplikaci kontejneru, musíte do souboru pom.xml přidat 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>
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 | Default value |
---|---|---|
spring.boot.admin.server.enabled |
Povolí server správy Spring Boot. | true |
spring.boot.admin.context-path |
Předpona cesty, kde se obsluhují statické prostředky serveru pro správu a rozhraní API. Vzhledem k dispečer-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 |
Doba života 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í hodnota 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 nikdy opakovat. 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 nikdy opakovat. |
Výchozí hodnota 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 |
V případě klientských aplikací Spring Boot 1.x sondy Spring Boot Admin pro zadané koncové body pomocí OPTIONS požadavku. 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ředávat při odesílá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 trvání dotazování v milisekundách pro načtení nových dat zdroje dat | 2500 |
spring.boot.admin.ui.poll-timer.gc |
Doba dotazování v milisekundách pro načtení 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 načtení dat nových vláken | 2500 |
spring.boot.admin.ui.poll-timer.logfile |
Doba trvání dotazování v milisekundách pro načtení dat nového souboru protokolu | 1000 |
spring.boot.admin.ui.enable-toasts |
Povolí nebo zakáže informační zprávy. | false |
spring.boot.admin.ui.title |
Hodnota názvu okna prohlížeče | "" |
spring.boot.admin.ui.brand |
Kód HTML vykreslený v navigačním záhlaví a ve výchozím nastavení se zobrazí popisek 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ě při management-url převodu DefaultServiceInstanceConverter hodnoty pomocí . |
/actuator |
spring.boot.admin.discovery.converter.health-endpoint-path |
Hodnota, která je připojena ke management-url zjištěné službě při health-url převodu DefaultServiceInstanceConverter hodnoty pomocí . |
"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 "foo*" je , "*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 "foo*" je , "*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 "discoverable=false" je . |
|
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 "discoverable=true" je . |
Běžné konfigurace
- Protokolování souvisejících konfigurací:
- logging.level.*
- logging.group.*
- Všechny ostatní konfigurace v oboru
logging.*
názvů by měly být zakázané. Například zápis souborů protokolu pomocí bylogging.file
měl být zakázán.
Související obsah
Integrace spravovaného správce pro Spring se serverem Eureka for Spring