Freigeben über


Tutorial: Herstellen einer Verbindung mit einem verwalteten Administrator für Spring in Azure Container-Apps

Die verwaltete Komponente „Administrator für Spring“ bietet eine Verwaltungsschnittstelle für Spring Boot-Webanwendungen, die Aktorendpunkte 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.

Screenshot: Übersicht über das Dashboard „Administrator für Spring Insights“.

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 „Administrator für Spring“

Hinweis

Wenn Sie Administrator für Spring in Eureka Server für Spring integrieren möchten, lesen Sie stattdessen Integrieren von Administrator 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 dafür entscheiden, Schritt für Schritt vorzugehen, sollten Sie die in diesem Artikel verwendeten Ressourcen löschen, um unerwartete Abrechnungen zu vermeiden.

Voraussetzungen

Zum Abschließen dieses Projekts benötigen Sie die folgenden Elemente:

Anforderung Anweisungen
Azure-Konto Ein aktives Abonnement ist erforderlich. Falls Sie keins haben, können Sie kostenlos eins erstellen.
Azure-Befehlszeilenschnittstelle Installieren Sie die Azure CLI.

Überlegungen

Beachten Sie bei der Ausführung von Administrator für Spring in Azure Container Apps die folgenden Details:

Artikel Erklärung
Umfang Komponenten werden in derselben Umgebung wie die verbundene Container-App ausgeführt.
Skalieren Komponente kann 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 Speichergröße beträgt 1Gi.
Preise Die Komponentenabrechnung fällt unter die verbrauchsbasierten Preise. Ressourcen, die von verwalteten Komponenten verbraucht werden, werden in den Aktiven/Leerlaufraten abgerechnet. Sie können Komponenten löschen, die nicht mehr zum Beenden der Abrechnung verwendet werden.
Binding Container-Apps stellen über eine Bindung eine Verbindung mit einer Komponente her. Die Bindungen enthalten Konfigurationen in Container-App-Umgebungsvariablen. Sobald eine Bindung eingerichtet wurde, kann die Container-App die Konfigurationswerte aus Umgebungsvariablen lesen und eine Verbindung mit der Komponente herstellen.

Setup

Bevor Sie mit Administrator für Spring arbeiten, müssen Sie zuerst die erforderlichen Ressourcen erstellen.

Mit den folgenden Befehlen können Sie Ihre Ressourcengruppe und die Container Apps-Umgebung erstellen.

  1. 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
    LOCATION Der Standort der Azure-Region, an dem Sie Ihre Container-App und die Java-Komponente erstellen
    ENVIRONMENT Der Name der Azure Container Apps-Umgebung für Ihre Demoanwendung.
    RESOURCE_GROUP Der Name der Azure-Ressourcengruppe für Ihre Demoanwendung
    JAVA_COMPONENT_NAME Der Name der für Ihre Container-App erstellten Java-Komponente. In diesem Fall erstellen Sie eine Java-Komponente vom Typ „Administrator für Spring“.
    IMAGE Das containerimage, das in Ihrer Container-App verwendet wird.
  2. Melden Sie sich mit der Azure-Befehlszeilenschnittstelle (CLI) bei Azure an:

    az login
    
  3. Erstellen 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.

  4. Erstellen Sie die Container Apps-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 Administrator für Spring binden.

  1. Erstellen Sie die Java-Komponente in Administrator 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 1
    
  2. Aktualisieren Sie die Java-Komponente „Administrator für Spring“.

    az containerapp env java-component admin-for-spring create \
      --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“

  1. Erstellen Sie die Container-App, und binden Sie sie an Administrator 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
    

Durch den Bindungsvorgang wird die Container-App an die Java-Komponente „Administrator für Spring“ gebunden. Die Container-App kann jetzt die Konfigurationswerte aus Umgebungsvariablen lesen, primär die SPRING_BOOT_ADMIN_CLIENT_URL-Eigenschaft, und eine Verbindung mit Administrator 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 bevorzugen soll, wenn eine Verbindung mit dem Administrator für Spring-Server hergestellt wird.

(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

Dashboard anzeigen

Wichtig

Um das Dashboard anzuzeigen, müssen Sie mindestens die Microsoft.App/managedEnvironments/write-Rolle Ihrem Konto in der Ressource der verwalteten Umgebung zugewiesen haben. Sie können entweder explizit die Rolle Owner oder Contributor für die Ressource zuweisen oder die Schritte ausführen, um eine benutzerdefinierte Rollendefinition zu erstellen und sie Ihrem Konto zuzuweisen.

  1. 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.

  2. Weisen Sie Ihrem Konto die benutzerdefinierte Rolle in der Ressource der verwalteten Umgebung zu.

    Die Ressourcen-ID der verwalteten Umgebung abrufen:

    export ENVIRONMENT_ID=$(az containerapp env show \
        --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \ 
        --query id -o tsv)
    
  3. Weisen Sie Ihrem Konto die Rolle zu.

    Ersetzen Sie vor dem Ausführen dieses Befehls den Platzhalter zwischen den <>-Klammern durch Ihre Benutzer- oder Dienstprinzipal-ID.

    az role assignment create \
      --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \
      --role "<ROLE_NAME>" \
      --scope $ENVIRONMENT_ID
    

    Hinweis

    <USER_OR_SERVICE_PRINCIPAL_ID> sollte in der Regel die Identität sein, die Sie für den Zugriff auf das Azure-Portal verwenden. <ROLE_NAME> ist der Name, den Sie in Schritt 1 zugewiesen haben.

  4. Rufen Sie die URL des Administrator 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 -o tsv
    

    Dieser Befehl gibt die URL zurück, die Sie für den Zugriff auf das Administrator für Spring-Dashboard verwenden können. Über das Dashboard ist Ihre Container-App auch für Sie wie im folgenden Screenshot dargestellt.

    Screenshot: Übersicht über das Dashboard „Administrator für Spring“.

Bereinigen von Ressourcen

Die in diesem Tutorial erstellten Ressourcen wirken sich auf Ihre Azure-Abrechnung aus. Führen Sie den folgenden Befehl aus, um alle in diesem Tutorial erstellten Ressourcen zu entfernen, wenn Sie diese Dienste nicht langfristig verwenden werden.

az group delete \
  --resource-group $RESOURCE_GROUP

Nächste Schritte