Freigeben über


Tutorial: Integrieren von Admin for Spring in Eureka Server für Spring in Azure Container-Apps

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

Dieser Artikel enthält einige Inhalte, die dem Tutorial „Herstellen einer Verbindung mit einem verwalteten Administrator für Spring in Azure Container-Apps“ ähneln. Mit Eureka-Server für Spring können Sie Admin for Spring an Eureka-Server für Spring binden, damit er 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
`Scope` Komponenten werden in derselben Umgebung wie die verbundene Container-App ausgeführt.
Skalierung 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 1 Gi.
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. Nachdem eine Bindung eingerichtet wurde, kann die Container-App die Konfigurationswerte aus Umgebungsvariablen lesen und eine Verbindung mit der Komponente herstellen.

Setup

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 vom Typ „Eureka Server“.
    ADMIN_COMPONENT_NAME Der Name Java-Komponente vom Typ „Admin für Spring“.
    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 mit der Azure-Befehlszeilenschnittstelle (CLI) 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, folgen Sie dem folgenden Befehl, um die Java-Komponente von Eureka Server 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 der Komponenten

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 $ADMIN_COMPONENT_NAME \
    --min-replicas 1 \
    --max-replicas 1 \
    --bind $EUREKA_COMPONENT_NAME

Binden anderer Apps an den Eureka Server

Mit der Einrichtung von Eureka Server können Sie jetzt andere Anwendungen für die Dienstermittlung binden. 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

Da die vorherigen Schritte die Komponente "Admin for Spring" an die Eureka-Server für Spring-Komponente gebunden haben, ermöglicht die Administratorkomponente die Dienstermittlung und ermöglicht es Ihnen, sie gleichzeitig über das Admin für Spring-Dashboard 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 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": "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. 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 $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 ist Ihre Container-App auch für Sie verfügbar, wie im folgenden Screenshot dargestellt.

    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