Freigeben über


Tutorial: Integrieren Sie Spring Admin mit Spring Eureka Server in Azure Container-Apps

Dieses Tutorial führt Sie durch den Prozess der Integration eines verwalteten Admin for Spring mit einem Eureka Server für Spring innerhalb von Azure Container Apps.

Mit Eureka Server für Spring können Sie Admin für Spring an Eureka Server für Spring binden, damit es Anwendungsinformationen über Eureka abrufen kann, anstatt einzelne Anwendungen an Admin for Spring binden zu müssen.

Wenn Sie diesem Leitfaden folgen, richten Sie einen Eureka Server für die Dienstermittlung ein und erstellen dann einen Administrator für Spring, um Ihre Spring-Anwendungen zu verwalten und zu überwachen, die mit dem Eureka Server registriert sind. Durch diese Einrichtung wird sichergestellt, dass andere Anwendungen nur eine Bindung an den Eureka-Server benötigen und die Verwaltung Ihrer Microservices vereinfachen.

In diesem Tutorial lernen Sie Folgendes:

  1. Erstellen von Eureka Server für Spring
  2. Erstellen Sie einen Admin für Spring, und verknüpfen Sie ihn mit dem Eureka Server.
  3. Binden Sie andere Anwendungen an den Eureka Server, um eine optimierte Dienstermittlung und -verwaltung zu ermöglichen.

Voraussetzungen

Überlegungen

Beachten Sie bei der Ausführung von verwalteten Java-Komponenten in Azure Container Apps die folgenden Details:

Artikel Erklärung
Umfang 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 festgelegt. 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 injizieren Konfigurationen in die Container-App-Umgebungsvariablen. Nachdem eine Bindung eingerichtet wurde, kann die Container-App die Konfigurationswerte aus Umgebungsvariablen lesen und eine Verbindung mit der Komponente herstellen.

Einrichtung

Bevor Sie beginnen, erstellen Sie die erforderlichen Ressourcen, indem Sie die folgenden Befehle ausführen.

  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-services-resource-group
    export ENVIRONMENT=my-environment
    export EUREKA_COMPONENT_NAME=eureka
    export ADMIN_COMPONENT_NAME=admin
    export CLIENT_APP_NAME=sample-service-eureka-client
    export CLIENT_IMAGE="mcr.microsoft.com/javacomponents/samples/sample-admin-for-spring-client:latest"
    
    Variable Beschreibung
    LOCATION Der Standort der Azure-Region, in der Sie Ihre Container-App und Java-Komponenten erstellen.
    RESOURCE_GROUP Der Name der Azure-Ressourcengruppe für Ihre Demoanwendung
    ENVIRONMENT Der Name der Azure Container Apps-Umgebung für Ihre Demoanwendung.
    EUREKA_COMPONENT_NAME Der Name der Java-Komponente des „Eureka Server“.
    ADMIN_COMPONENT_NAME Der Name des Admin für die Spring-Java-Komponente.
    CLIENT_APP_NAME Der Name der Container-App, die an den Eureka Server gebunden ist.
    CLIENT_IMAGE Das Containerimage, das in Ihrer Eureka Server-Container-App verwendet wird.
  2. Melden Sie sich über die Azure-Befehlszeilenschnittstelle bei Azure an.

    az login
    
  3. Erstellen Sie eine Ressourcengruppe.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  4. Erstellen Sie die Container Apps-Umgebung.

    az containerapp env create \
        --name $ENVIRONMENT \
        --resource-group $RESOURCE_GROUP \
        --location $LOCATION \
        --query "properties.provisioningState"
    

    Mithilfe des --query-Parameters wird die Antwort auf eine einfache Erfolgs- oder Fehlermeldung gefiltert.

Optional: Erstellen von Eureka Server für Spring

Wenn Sie nicht über einen Eureka-Server für Spring verfügen, verwenden Sie den folgenden Befehl, um die Eureka Server-Java-Komponente zu erstellen. Weitere Informationen finden Sie unter Erstellen des Eureka-Servers für Spring.

az containerapp env java-component eureka-server-for-spring create \
    --environment $ENVIRONMENT \
    --resource-group $RESOURCE_GROUP \
    --name $EUREKA_COMPONENT_NAME

Binden Sie die Komponenten zusammen

Erstellen Sie den Admin für die Spring-Java-Komponente.

az containerapp env java-component admin-for-spring create \
    --environment $ENVIRONMENT \
    --resource-group $RESOURCE_GROUP \
    --name $ADMIN_COMPONENT_NAME \
    --min-replicas 1 \
    --max-replicas 1 \
    --bind $EUREKA_COMPONENT_NAME

Binden anderer Apps an den Eureka Server

Nachdem der Eureka Server eingerichtet wurde, können Sie jetzt andere Anwendungen für die Dienstentdeckung anschließen. Außerdem können Sie diese Anwendungen im Dashboard von Admin für Spring überwachen und verwalten. Führen Sie die folgenden Schritte aus, um eine Container-App zu erstellen und an den Eureka Server zu binden:

Erstellen Sie die Container-App, und binden Sie sie an den Eureka Server.

az containerapp create \
    --name $CLIENT_APP_NAME \
    --resource-group $RESOURCE_GROUP \
    --environment $ENVIRONMENT \
    --image $CLIENT_IMAGE \
    --min-replicas 1 \
    --max-replicas 1 \
    --ingress external \
    --target-port 8080 \
    --bind $EUREKA_COMPONENT_NAME 

Tipp

Die vorherigen Schritte gebundenen die Komponente "Admin for Spring" an den Eureka-Server für Spring.The previous steps bound the Admin for Spring component. Die Administratorkomponente ermöglicht die Dienstermittlung und ermöglicht es Ihnen, sie über das Admin für Spring-Dashboard gleichzeitig zu verwalten.

Anzeigen der Dashboards

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 die Owner Ressource entweder explizit zuweisen oder Contributor 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": "Java Component Dashboard Access",
        "IsCustom": true,
        "Description": "Can access managed Java Component dashboards in managed environments",
        "Actions": [
            "Microsoft.App/managedEnvironments/write"
        ],
        "AssignableScopes": ["/subscriptions/<SUBSCRIPTION_ID>"]
    }'
    

    Stellen Sie sicher, dass Sie den Platzhalter <SUBSCRIPTION_ID> im Wert AssignableScopes durch Ihre Abonnement-ID ersetzen:

  2. Weisen Sie Ihrem Konto die benutzerdefinierte Rolle in der Ressource der 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)
    
  3. Weisen Sie Ihrem Konto die Rolle zu.

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

    az role assignment create \
        --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \
        --role "Java Component Dashboard Access" \
        --scope $ENVIRONMENT_ID
    
  4. Erhalten Sie die URL des Administrator-Dashboards für Spring.

    az containerapp env java-component admin-for-spring show \
        --environment $ENVIRONMENT \
        --resource-group $RESOURCE_GROUP \
        --name $ADMIN_COMPONENT_NAME \
        --query properties.ingress.fqdn \
        --output tsv
    
  5. Rufen Sie die URL des Dashboards „Eureka-Server für Spring“ ab.

    az containerapp env java-component eureka-server-for-spring show \
        --environment $ENVIRONMENT \
        --resource-group $RESOURCE_GROUP \
        --name $EUREKA_COMPONENT_NAME \
        --query properties.ingress.fqdn \
        --output tsv
    

    Dieser Befehl gibt die URL zurück, die Sie für den Zugriff auf das Dashboard „Eureka Server für Spring“ verwenden können. Über das Dashboard können Sie Ihre Container-App wie im folgenden Screenshot anzeigen.

    Screenshot: das Dashboard „Admin für Spring“.

    Screenshot: Dashboard „Eureka-Server 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