Självstudie: Ansluta till en hanterad administratör för Spring i Azure Container Apps
Den hanterade komponenten Admin för Spring erbjuder ett administrativt gränssnitt för Spring Boot-webbprogram som exponerar aktuatorslutpunkter. Som en hanterad komponent i Azure Container Apps kan du enkelt binda din containerapp till Admin for Spring för sömlös integrering och hantering.
Den här självstudien visar hur du skapar en Admin för Spring Java-komponent och binder den till din containerapp så att du enkelt kan övervaka och hantera dina Spring-program.
I den här självstudien lär du dig att:
- Skapa en Administratör för Spring Java-komponent.
- Binda din containerapp till en Administratör för Spring Java-komponent.
Om du vill integrera Admin för Spring med Eureka Server for Spring kan du läsa Integrera administratör för Spring med Eureka Server for Spring i Container Apps i stället.
Viktigt!
I den här självstudien används tjänster som kan påverka din Azure-faktura. Om du bestämmer dig för att följa med ska du ta bort resurserna i den här artikeln för att undvika oväntad fakturering.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Om du inte redan har en kan du skapa en kostnadsfritt.
- Azure CLI.
Att tänka på
När du kör komponenten Admin för Spring i Container Apps bör du vara medveten om följande information:
Artikel | Förklaring |
---|---|
Omfattning | Komponenter körs i samma miljö som den anslutna containerappen. |
Skalning | Komponenten kan inte skalas. Skalningsegenskaperna minReplicas och maxReplicas är båda inställda på 1 . |
Resurser | Resursallokeringen av containrar för komponenter är fast. Antalet CPU-kärnor är 0,5 och minnesstorleken är 1 Gi. |
Prissättning | Komponentfakturering faller under förbrukningsbaserad prissättning. Resurser som förbrukas av hanterade komponenter debiteras enligt aktiva/inaktiva priser. Du kan ta bort komponenter som inte längre används för att stoppa faktureringen. |
Bindning | Containerappar ansluter till en komponent via en bindning. Bindningarna matar in konfigurationer i miljövariabler för containerappar. När en bindning har upprättats kan containerappen läsa konfigurationsvärdena från miljövariabler och ansluta till komponenten. |
Ställ in
Innan du börjar arbeta med komponenten Admin för Spring måste du först skapa nödvändiga resurser.
Följande kommandon hjälper dig att skapa din resursgrupp och containerappmiljö.
Skapa variabler som stöd för programkonfigurationen. Dessa värden tillhandahålls för dig i den här lektionen.
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"
Olika beskrivning LOCATION
Den Plats i Azure-regionen där du skapar din containerapp och Java-komponent. ENVIRONMENT
Miljönamnet för containerappen för ditt demoprogram. RESOURCE_GROUP
Namnet på Azure-resursgruppen för demoprogrammet. JAVA_COMPONENT_NAME
Namnet på Java-komponenten som skapats för containerappen. I det här fallet skapar du en Administratör för Spring Java-komponent. IMAGE
Containeravbildningen som används i containerappen. Logga in på Azure med Azure CLI.
az login
Skapa en resursgrupp.
az group create \ --name $RESOURCE_GROUP \ --location $LOCATION \ --query "properties.provisioningState"
När du använder parametern
--query
filtreras svaret ned till ett enkelt meddelande om lyckad eller misslyckad åtgärd.Skapa din containerappmiljö.
az containerapp env create \ --name $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --location $LOCATION
Använda komponenten
Nu när du har en befintlig miljö kan du skapa din containerapp och binda den till en Java-komponentinstans av en Admin för Spring-komponent.
Skapa komponenten Admin för 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
Uppdatera komponenten Admin för 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
Binda containerappen till komponenten Admin för Spring Java
Skapa containerappen och binda den till komponenten Admin för 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
Bindningsåtgärden binder containerappen till komponenten Admin för Spring Java. Containerappen kan nu läsa konfigurationsvärdena från miljövariabler, främst SPRING_BOOT_ADMIN_CLIENT_URL
egenskapen, och ansluta till komponenten Admin för Spring.
Bindningen matar också in följande egenskap:
"SPRING_BOOT_ADMIN_CLIENT_INSTANCE_PREFER-IP": "true",
Den här egenskapen anger att administratören för Spring-komponentklienten bör föredra IP-adressen för containerappinstansen när du ansluter till Admin för Spring-servern.
Valfritt: Avbind din containerapp från komponenten Admin för Spring Java
Om du vill ta bort en bindning från en containerapp använder du alternativet --unbind
.
az containerapp update \
--name $APP_NAME \
--unbind $JAVA_COMPONENT_NAME \
--resource-group $RESOURCE_GROUP
Visa instrumentpanelen
Viktigt!
Om du vill visa instrumentpanelen måste du ha minst rollen Microsoft.App/managedEnvironments/write
tilldelad till ditt konto på resursen för den hanterade miljön. Du kan uttryckligen tilldela resursen Owner
eller Contributor
rollen. Du kan också följa stegen för att skapa en anpassad rolldefinition och tilldela den till ditt konto.
Skapa den anpassade rolldefinitionen.
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>"] }'
Ersätt platshållarna mellan
<>
hakparenteserna med dina värden.Tilldela den anpassade rollen till ditt konto på resursen för den hanterade miljön.
Hämta resurs-ID för den hanterade miljön:
export ENVIRONMENT_ID=$(az containerapp env show \ --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \ --query id \ --output tsv)
Tilldela rollen till ditt konto.
Innan du kör det här kommandot ersätter du platshållaren , enligt hakparenteserna
<>
, med ditt användar- eller tjänsthuvudnamns-ID eller rollnamn.az role assignment create \ --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \ --role "<ROLE_NAME>" \ --scope $ENVIRONMENT_ID
Kommentar
Värdet
<USER_OR_SERVICE_PRINCIPAL_ID>
ska vara den identitet som du använder för att komma åt Azure Portal. Värdet<ROLE_NAME>
är det namn som du tilldelade i steg 1.Hämta URL:en för instrumentpanelen Admin för 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
Det här kommandot returnerar den URL som du kan använda för att komma åt instrumentpanelen Admin för Spring. Med instrumentpanelen kan du också se din containerapp, som du ser i följande skärmbild.
Rensa resurser
De resurser som skapas i den här självstudien påverkar din Azure-faktura. Om du inte ska använda dessa tjänster på lång sikt kör du följande kommando för att ta bort allt du skapade i den här självstudien.
az group delete --resource-group $RESOURCE_GROUP
Dependency
När du använder administratörskomponenten i din egen containerapp måste du lägga till följande beroende i din pom.xml-fil . Ersätt versionsnumret med den senaste versionen som är tillgänglig på Maven-lagringsplatsen.
<dependency>
<groupId>de.codecentric</groupId>
<version>3.3.2</version>
<artifactId>spring-boot-admin-starter-client</artifactId>
</dependency>
Konfigurerbara egenskaper
Från och med Spring Boot 2 exponeras inte slutpunkter som standard.health
info
Du kan exponera dem genom att lägga till följande konfiguration i filen application.properties .
management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always
Lista över tillåtna konfigurationer för din administratör för Spring
Följande lista beskriver egenskaperna för administratörskomponenten som du kan konfigurera för din app. Mer information finns i Spring Boot Admin.
Egenskapsnamn | beskrivning | Standardvärde |
---|---|---|
spring.boot.admin.server.enabled |
Aktiverar Spring Boot Admin Server. | true |
spring.boot.admin.context-path |
Sökvägsprefixet där administratörsserverns statiska tillgångar och API hanteras. I förhållande till Dispatcher-Servlet. | |
spring.boot.admin.monitor.status-interval |
Tidsintervall i millisekunder för att kontrollera status för instanser. | 10,000ms |
spring.boot.admin.monitor.status-lifetime |
Livslängd för status i millisekunder. Statusen uppdateras inte så länge den senaste statusen inte har upphört att gälla. | 10 000 ms |
spring.boot.admin.monitor.info-interval |
Tidsintervall i millisekunder för att kontrollera information om instanser. | 1m |
spring.boot.admin.monitor.info-lifetime |
Livslängd för information på några minuter. Informationen uppdateras inte så länge den senaste informationen inte har upphört att gälla. | 1m |
spring.boot.admin.monitor.default-timeout |
Standardtimeout när begäranden görs. Enskilda värden för specifika slutpunkter kan åsidosättas med hjälp av spring.boot.admin.monitor.timeout.* . |
10,000 |
spring.boot.admin.monitor.timeout.* |
Nyckel/värde-par med tidsgränsen per endpointId . |
Standardvärdet default-timeout är. |
spring.boot.admin.monitor.default-retries |
Standardantal återförsök för misslyckade begäranden. Begäranden som ändrar data (PUT , POST , PATCH , DELETE ) görs aldrig igen. Enskilda värden för specifika slutpunkter kan åsidosättas med hjälp av spring.boot.admin.monitor.retries.* . |
0 |
spring.boot.admin.monitor.retries.* |
Nyckel/värde-par med antalet återförsök per endpointId . Begäranden som ändrar data (PUT , POST , PATCH , DELETE ) görs aldrig igen. |
Standardvärdet default-retries är. |
spring.boot.admin.metadata-keys-to-sanitize |
Metadatavärden för nycklar som matchar dessa regexmönster som används för att sanera i alla JSON-utdata. Från och med Spring Boot 3 maskeras alla ställdonsvärden som standard. Mer information om hur du konfigurerar osanitiseringsprocessen finns i Sanera känsliga värden. | ".*password$", ".*secret$", ".*key$", ".*token$", ".*credentials.*", ".*vcap_services$" |
spring.boot.admin.probed-endpoints |
För Spring Boot 1.x-klientprogram avsöker Spring Boot Admin de angivna slutpunkterna med hjälp av en OPTIONS begäran. Om sökvägen skiljer sig från ID:t kan du ange det här värdet som id:path till exempel 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 |
Rubriker som inte vidarebefordras när begäranden görs till klienter. | "Cookie", "Set-Cookie", "Authorization" |
spring.boot.admin.ui.title |
Sidrubriken som visas. | "Spring Boot Admin" |
spring.boot.admin.ui.poll-timer.cache |
Avsökningstid i millisekunder för att hämta nya cachedata. | 2500 |
spring.boot.admin.ui.poll-timer.datasource |
Avsökningstid i millisekunder för att hämta nya datakällans data. | 2500 |
spring.boot.admin.ui.poll-timer.gc |
Avsökningstid i millisekunder för att hämta nya gc-data. | 2500 |
spring.boot.admin.ui.poll-timer.process |
Avsökningstid i millisekunder för att hämta nya processdata. | 2500 |
spring.boot.admin.ui.poll-timer.memory |
Avsökningstid i millisekunder för att hämta nya minnesdata. | 2500 |
spring.boot.admin.ui.poll-timer.threads |
Avsökningstid i millisekunder för att hämta nya tråddata. | 2500 |
spring.boot.admin.ui.poll-timer.logfile |
Avsökningstid i millisekunder för att hämta nya loggfildata. | 1000 |
spring.boot.admin.ui.enable-toasts |
Aktiverar eller inaktiverar popup-meddelanden. | false |
spring.boot.admin.ui.title |
Webbläsarens fönsterrubrikvärde. | "" |
spring.boot.admin.ui.brand |
HTML-kod renderad i navigeringshuvudet och standardvärdet för spring boot-administratörsetiketten. Som standard följs Spring Boot Admin-logotypen av dess namn. | "" |
management.scheme |
Värde som ersätts i tjänst-URL:en som används för åtkomst till aktuatorslutpunkterna. | |
management.address |
Värde som ersätts i tjänst-URL:en som används för åtkomst till aktuatorslutpunkterna. | |
management.port |
Värde som ersätts i tjänst-URL:en som används för åtkomst till aktuatorslutpunkterna. | |
management.context-path |
Värde som läggs till i tjänst-URL:en som används för åtkomst till aktuatorslutpunkterna. | ${spring.boot.admin.discovery.converter.management-context-path} |
health.path |
Värde som läggs till i tjänst-URL:en som används för hälsokontroll. Ignoreras av EurekaServiceInstanceConverter . |
${spring.boot.admin.discovery.converter.health-endpoint} |
spring.boot.admin.discovery.enabled |
DiscoveryClient Aktiverar stöd för administratörsservern. |
true |
spring.boot.admin.discovery.converter.management-context-path |
Värde som läggs till i den service-url identifierade tjänsten när management-url värdet konverteras av DefaultServiceInstanceConverter . |
/actuator |
spring.boot.admin.discovery.converter.health-endpoint-path |
Värde som läggs till i den management-url identifierade tjänsten när health-url värdet konverteras av DefaultServiceInstanceConverter . |
"health" |
spring.boot.admin.discovery.ignored-services |
Tjänster som ignoreras när identifiering används och inte registreras som program. Stöder enkla mönster som "foo*" , "*bar" och "foo*bar*" . |
|
spring.boot.admin.discovery.services |
Tjänster som ingår när du använder identifiering och registreras som program. Stöder enkla mönster som "foo*" , "*bar" och "foo*bar*" . |
"*" |
spring.boot.admin.discovery.ignored-instances-metadata |
Tjänster ignoreras om de innehåller minst ett metadataobjekt som matchar mönster i den här listan. Stöder mönster som "discoverable=false" . |
|
spring.boot.admin.discovery.instances-metadata |
Tjänster som ingår om de innehåller minst ett metadataobjekt som matchar mönster i listan. Stöder mönster som "discoverable=true" . |
Vanliga konfigurationer
- Loggningsrelaterade konfigurationer:
- logging.level.*
- logging.group.*
- Alla andra konfigurationer under
logging.*
namnområdet bör förbjudas. Det bör till exempel vara förbjudet att skriva loggfiler med hjälplogging.file
av.
Relaterat innehåll
Integrera den hanterade administratören för Spring med Eureka Server for Spring