Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die verwaltete Komponente „Administrator für Spring“ bietet eine Verwaltungsschnittstelle für Spring Boot-Webanwendungen, die Aktorenendpunkte verfügbar machen. Als verwaltete Komponente in Azure Container Apps können Sie Ihre Container-App ganz einfach an Administrator für Spring binden, um nahtlose Integration und Verwaltung zu ermöglichen.
In diesem Tutorial erfahren Sie, wie Sie in Administrator für Spring eine Java-Komponente erstellen und an Ihre Container-App binden, damit Sie Ihre Spring-Anwendungen mühelos überwachen und verwalten können.
In diesem Tutorial lernen Sie Folgendes:
- Erstellen einer Java-Komponente in Administrator für Spring.
- Binden Ihrer Container-App an eine Java-Komponente vom Typ „Fachkraft in der IT-Verwaltung für Spring“.
Wenn Sie „Fachkraft in der IT-Verwaltung für Spring“ in Eureka Server für Spring integrieren möchten, lesen Sie stattdessen Integrieren von „Fachkraft in der IT-Verwaltung für Spring“ in Eureka Server für Spring in Azure Container Apps.
Wichtig
In diesem Tutorial werden Dienste verwendet, die sich auf Ihre Azure-Rechnung auswirken können. Wenn Sie sich entscheiden, die Schritte mitzumachen, stellen Sie sicher, dass Sie die in diesem Artikel vorgestellten Ressourcen wieder löschen, um unerwartete Rechnungen zu vermeiden.
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Wenn Sie noch keines haben, können Sie kostenlos eins erstellen.
- Azure-Befehlszeilenschnittstelle.
Überlegungen
Beachten Sie bei der Ausführung der Komponente „Fachkraft in der IT-Verwaltung für Spring“ in Container Apps die folgenden Details:
| Element | Erklärung |
|---|---|
| `Scope` | Komponenten werden in derselben Umgebung wie die verbundene Container-App ausgeführt. |
| Skalierung | Komponenten können nicht skaliert werden. Die Skalierungseigenschaften minReplicas und maxReplicas sind beide auf 1. |
| Ressourcen | Die Containerressourcenzuordnung für Komponenten ist behoben. Die Anzahl der CPU-Kerne beträgt 0,5, und die Arbeitsspeichergröße beträgt 1 GB. |
| Preise | Die Komponentenabrechnung fällt unter die verbrauchsbasierten Preise. Ressourcen, die von verwalteten Komponenten verbraucht werden, werden abhängig von der Nutzung der Ressourcen zu den Aktivitätsraten oder Leerlaufraten in Rechnung gestellt. Sie können Komponenten löschen, die nicht mehr zum Beenden der Abrechnung verwendet werden. |
| Bindung | Container-Apps stellen über eine Bindung eine Verbindung mit einer Komponente her. Die Bindungen enthalten Konfigurationen in Container-App-Umgebungsvariablen. Nachdem eine Bindung eingerichtet wurde, kann die Container-App die Konfigurationswerte aus Umgebungsvariablen lesen und eine Verbindung mit der Komponente herstellen. |
Einrichten
Bevor Sie mit der Arbeit mit der Komponente "Admin for Spring" beginnen, müssen Sie die erforderlichen Ressourcen erstellen.
Mit den folgenden Befehlen können Sie Ihre Ressourcengruppe und die Container Apps-Umgebung erstellen.
Erstellen Sie Variablen, um Ihre Anwendungskonfiguration zu unterstützen. Diese Werte werden Ihnen im Rahmen dieser Lerneinheit bereitgestellt.
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"Variable BESCHREIBUNG LOCATIONDer Standort der Azure-Region, in der Sie Ihre Container-App und Java-Komponente erstellen. ENVIRONMENTDer Name der Container-App-Umgebung für Ihre Demoanwendung. RESOURCE_GROUPDer Name der Azure-Ressourcengruppe für Ihre Demoanwendung. JAVA_COMPONENT_NAMEDer Name der für Ihre Container-App erstellten Java-Komponente. In diesem Fall erstellen Sie eine Java-Komponente vom Typ „Administrator für Spring“. IMAGEDas containerimage, das in Ihrer Container-App verwendet wird. Melden Sie sich über die Azure-Befehlszeilenschnittstelle bei Azure an.
az loginErstellen Sie eine Ressourcengruppe.
az group create \ --name $RESOURCE_GROUP \ --location $LOCATION \ --query "properties.provisioningState"Mithilfe des
--query-Parameters wird die Antwort auf eine einfache Erfolgs- oder Fehlermeldung gefiltert.Erstellen Sie die Container-App-Umgebung.
az containerapp env create \ --name $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --location $LOCATION
Verwenden der Komponente
Nachdem Sie nun über eine Umgebung verfügen, können Sie Ihre Container-App erstellen und an eine Java-Komponenteninstanz von „Fachkraft in der IT-Verwaltung für Spring“ binden.
Erstellen Sie die Java-Komponente in Admin für Spring.
az containerapp env java-component admin-for-spring create \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $JAVA_COMPONENT_NAME \ --min-replicas 1 \ --max-replicas 1Aktualisieren Sie die Java-Komponente „Administrator für Spring“.
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
Binden der Container-App an die Java-Komponente „Administrator für Spring“
Erstellen Sie die Container-App, und binden Sie sie an den „Fachkraft in der IT-Verwaltung“ für die Spring-Komponente.
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
Der Bindungsvorgang verbindet die Container-App mit der Komponente "Admin for Spring Java". Die Container-App kann jetzt die Konfigurationswerte aus Umgebungsvariablen lesen, primär die SPRING_BOOT_ADMIN_CLIENT_URL-Eigenschaft, und eine Verbindung mit der Komponente „Fachkraft in der IT-Verwaltung für Spring“ herstellen.
Die Bindung fügt auch die folgende Eigenschaft ein:
"SPRING_BOOT_ADMIN_CLIENT_INSTANCE_PREFER-IP": "true",
Diese Eigenschaft gibt an, dass der Administrator für Spring-Komponentenclient die IP-Adresse der Container-App-Instanz verwenden soll, wenn Sie eine Verbindung mit dem Administrator für Spring-Server herstellen.
Optional: Herauslösen der Container-App aus der Java-Komponente „Administrator für Spring“
Verwenden Sie die Option --unbind, um eine Bindung aus einer Container-App zu entfernen.
az containerapp update \
--name $APP_NAME \
--unbind $JAVA_COMPONENT_NAME \
--resource-group $RESOURCE_GROUP
Anzeigen des Dashboards
Wichtig
Um das Dashboard anzuzeigen, benötigt Ihr Konto mindestens die Rolle Microsoft.App/managedEnvironments/write für die verwaltete Umgebungsressource. Sie können die Owner- oder Contributor-Rolle auf der Ressource explizit zuweisen. Sie können auch die Schritte ausführen, um eine benutzerdefinierte Rollendefinition zu erstellen und sie Ihrem Konto zuzuweisen.
Hinweis
Das Dashboard ist in Azure, betrieben von 21Vianet, nicht verfügbar.
Erstellen Sie die benutzerdefinierte Rollendefinition.
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>"] }'Ersetzen Sie die Platzhalter zwischen den
<>-Klammern durch Ihre Werte.Weisen Sie Ihrem Konto die benutzerdefinierte Rolle in der Ressource einer verwalteten Umgebung zu.
Rufen Sie die Ressourcen-ID der verwalteten Umgebung ab:
export ENVIRONMENT_ID=$(az containerapp env show \ --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \ --query id \ --output tsv)Weisen Sie Ihrem Konto die Rolle zu.
Ersetzen Sie vor dem Ausführen dieses Befehls die Platzhalter, die durch die
<>-Klammern angegeben sind, durch Ihre Benutzer- oder Dienstprinzipal-ID und ihren Rollennamen.az role assignment create \ --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \ --role "<ROLE_NAME>" \ --scope $ENVIRONMENT_IDHinweis
Der
<USER_OR_SERVICE_PRINCIPAL_ID>-Wert sollte die Identität sein, die Sie für den Zugriff auf das Azure-Portal verwenden. Der<ROLE_NAME>-Wert ist der Name, den Sie in Schritt 1 zugewiesen haben.Rufen Sie die URL des Admin für Spring-Dashboards ab.
az containerapp env java-component admin-for-spring show \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $JAVA_COMPONENT_NAME \ --query properties.ingress.fqdn \ --output tsvDieser Befehl gibt die URL zurück, die Sie für den Zugriff auf das „Fachkraft in der IT-Verwaltung für Spring“-Dashboard verwenden können. Mit dem Dashboard können Sie auch Ihre Container-App sehen, wie im folgenden Screenshot dargestellt.
Bereinigen von Ressourcen
Die ressourcen, die Sie in diesem Lernprogramm erstellen, wirken sich auf Ihre Azure-Rechnung aus. Wenn Sie nicht beabsichtigen, diese Dienste langfristig zu verwenden, führen Sie den folgenden Befehl aus, um alles zu entfernen, was Sie in diesem Lernprogramm erstellt haben.
az group delete --resource-group $RESOURCE_GROUP
Abhängigkeit
Wenn Sie die Administratorkomponente in Ihrer eigenen Container-App verwenden, fügen Sie die folgende Abhängigkeit in Ihrer pom.xml Datei hinzu. Ersetzen Sie die Versionsnummer durch die aktuelle Version, die im Maven-Repository verfügbar ist.
<dependency>
<groupId>de.codecentric</groupId>
<version>3.3.2</version>
<artifactId>spring-boot-admin-starter-client</artifactId>
</dependency>
Hinweis
Sie müssen die Administratorstartclientabhängigkeit für Spring Boot Admin nicht hinzufügen, wenn Sie den Java-Agent in Ihrer Container-App aktivieren, indem Sie den folgenden Befehl in Azure CLI ausführen:
az containerapp update --enable-java-agent \
--resource-group $RESOURCE_GROUP \
--name $APP_NAME
Konfigurierbare Eigenschaften
Ab Spring Boot 2 werden Endpunkte außer den health- info-Endpunkten standardmäßig nicht verfügbar gemacht. Sie können diese verfügbar machen, indem Sie die folgende Konfiguration in Ihrer Datei application.properties hinzufügen.
management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always
Liste der zulässigen Konfigurationen für Ihren Administrator für Spring
In der folgenden Liste sind die Eigenschaften der Administratorkomponente aufgeführt, die Sie für Ihre App konfigurieren können. Weitere Informationen finden Sie unter Spring Boot Admin.
| Eigenschaftenname | BESCHREIBUNG | Standardwert |
|---|---|---|
spring.boot.admin.server.enabled |
Aktiviert die Spring Boot Admin Server-Instanz | true |
spring.boot.admin.context-path |
Das Pfadpräfix, bei dem die statischen Ressourcen und die API des Administratorservers bereitgestellt werden. Relativ zum Dispatcher-Servlet | |
spring.boot.admin.monitor.status-interval |
Zeitintervall in Millisekunden, um den Status von Instanzen zu überprüfen | 10,000ms |
spring.boot.admin.monitor.status-lifetime |
Lebensdauer des Status in Millisekunden. Der Status wird nicht aktualisiert, solange der letzte Status nicht abgelaufen ist. | 10.000 ms |
spring.boot.admin.monitor.info-interval |
Zeitintervall in Millisekunden, um die Informationen von Instanzen zu überprüfen | 1m |
spring.boot.admin.monitor.info-lifetime |
Lebensdauer von Informationen in Minuten. Die Informationen werden nicht aktualisiert, solange die letzten Informationen nicht abgelaufen sind. | 1m |
spring.boot.admin.monitor.default-timeout |
Standardtimeout beim Senden von Anforderungen. Einzelne Werte für bestimmte Endpunkte können mithilfe von spring.boot.admin.monitor.timeout.* überschrieben werden. |
10,000 |
spring.boot.admin.monitor.timeout.* |
Schlüssel-Wert-Paare mit dem Timeout pro endpointId |
Der Standardwert lautet default-timeout. |
spring.boot.admin.monitor.default-retries |
Standardanzahl der Wiederholungen für fehlgeschlagene Anforderungen. Anforderungen zum Ändern von Daten (PUT, POST, PATCH, DELETE) werden nicht wiederholt. Einzelne Werte für bestimmte Endpunkte können mithilfe von spring.boot.admin.monitor.retries.* überschrieben werden. |
0 |
spring.boot.admin.monitor.retries.* |
Schlüssel-Wert-Paare mit der Anzahl der Wiederholungen pro endpointId. Anforderungen zum Ändern von Daten (PUT, POST, PATCH, DELETE) werden nicht wiederholt. |
Der Standardwert lautet default-retries. |
spring.boot.admin.metadata-keys-to-sanitize |
Metadatenwerte für die Schlüssel, die diesen RegEx-Mustern entsprechen und in allen JSON-Ausgaben zum Bereinigen verwendet werden. Ab Spring Boot 3 sind alle Aktorenwerte standardmäßig maskiert. Weitere Informationen zum Konfigurieren des Prozesses zur Aufhebung der Bereinigung finden Sie unter Bereinigen vertraulicher Werte. | ".*password$", ".*secret$", ".*key$", ".*token$", ".*credentials.*", ".*vcap_services$" |
spring.boot.admin.probed-endpoints |
Für Spring Boot 1.x-Clientanwendungen prüft Spring Boot Admin mithilfe einer OPTIONS-Anforderung die angegebenen Endpunkte. Wenn sich der Pfad von der ID unterscheidet, können Sie diesen Wert als id:path angeben, z. B. 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 |
Header, die beim Senden von Anforderungen an Clients nicht weitergeleitet werden sollen. | "Cookie", "Set-Cookie", "Authorization" |
spring.boot.admin.ui.title |
Der angezeigte Seitentitel | "Spring Boot Admin" |
spring.boot.admin.ui.poll-timer.cache |
Abrufdauer in Millisekunden für das Abrufen neuer Cachedaten | 2500 |
spring.boot.admin.ui.poll-timer.datasource |
Abrufdauer in Millisekunden für das Abrufen neuer Daten aus Datenquelle | 2500 |
spring.boot.admin.ui.poll-timer.gc |
Abrufdauer in Millisekunden für das Abrufen neuer GC-Daten | 2500 |
spring.boot.admin.ui.poll-timer.process |
Abrufdauer in Millisekunden für das Abrufen neuer Prozessdaten | 2500 |
spring.boot.admin.ui.poll-timer.memory |
Abrufdauer in Millisekunden für das Abrufen neuer Daten aus dem Arbeitsspeicher | 2500 |
spring.boot.admin.ui.poll-timer.threads |
Abrufdauer in Millisekunden für das Abrufen neuer Daten aus Threads | 2500 |
spring.boot.admin.ui.poll-timer.logfile |
Abrufdauer in Millisekunden für das Abrufen neuer Daten aus Protokolldateien | 1000 |
spring.boot.admin.ui.enable-toasts |
Aktiviert oder deaktiviert Popupbenachrichtigungen | false |
spring.boot.admin.ui.title |
Wert des Fenstertitels des Browsers | "" |
spring.boot.admin.ui.brand |
HTML-Code, der im Navigationsheader gerendert wird und standardmäßig den Namen „Spring Boot Admin“ aufweist. Standardmäßig steht der Name nach dem Spring Boot Admin-Logo. | "" |
management.scheme |
Wert, der in der Dienst-URL ersetzt wird, die für den Zugriff auf die Aktorenendpunkte verwendet wird | |
management.address |
Wert, der in der Dienst-URL ersetzt wird, die für den Zugriff auf die Aktorenendpunkte verwendet wird | |
management.port |
Wert, der in der Dienst-URL ersetzt wird, die für den Zugriff auf die Aktorenendpunkte verwendet wird | |
management.context-path |
Wert, der an die Dienst-URL angefügt wird, die für den Zugriff auf die Aktorenendpunkte verwendet wird | ${spring.boot.admin.discovery.converter.management-context-path} |
health.path |
Wert, der an die Dienst-URL angefügt wird, die für die Integritätsprüfung verwendet wird. Wird von EurekaServiceInstanceConverter ignoriert |
${spring.boot.admin.discovery.converter.health-endpoint} |
spring.boot.admin.discovery.enabled |
Aktiviert die DiscoveryClient-Unterstützung für den Verwaltungsserver. |
true |
spring.boot.admin.discovery.converter.management-context-path |
Wert, der an das service-url-Element des ermittelten Diensts angefügt wird, wenn der management-url-Wert durch DefaultServiceInstanceConverter konvertiert wird |
/actuator |
spring.boot.admin.discovery.converter.health-endpoint-path |
Wert, der an das management-url-Element des ermittelten Diensts angefügt wird, wenn der health-url-Wert durch DefaultServiceInstanceConverter konvertiert wird |
"health" |
spring.boot.admin.discovery.ignored-services |
Dienste, die bei Verwendung der Ermittlung ignoriert und nicht als Anwendung registriert werden. Unterstützt einfache Muster wie "foo*", "*bar" und "foo*bar*". |
|
spring.boot.admin.discovery.services |
Dienste, die bei Verwendung der Ermittlung enthalten und als Anwendung registriert sind. Unterstützt einfache Muster wie "foo*", "*bar" und "foo*bar*". |
"*" |
spring.boot.admin.discovery.ignored-instances-metadata |
Dienste werden ignoriert, wenn sie mindestens ein Metadatenelement enthalten, das Mustern in dieser Liste entspricht. Unterstützt Muster wie "discoverable=false" |
|
spring.boot.admin.discovery.instances-metadata |
Dienste sind enthalten, wenn sie mindestens ein Metadatenelement enthalten, das Mustern in der Liste entspricht. Unterstützt Muster wie "discoverable=true" |
Häufig verwendete Konfigurationen
- Konfigurationen im Zusammenhang mit der Protokollierung:
- logging.level.*
- logging.group.*
- Alle anderen Konfigurationen unter dem
logging.*Namespace. Verwenden Sie beispielsweise nichtlogging.filezum Schreiben von Protokolldateien.
Einschränkungen
- Das Spring Boot Admin Dashboard ist in Azure, betrieben von 21Vianet, nicht verfügbar.
Verwandte Inhalte
Integrieren des verwalteten Administrators für Spring in Eureka Server für Spring