Freigeben über


Schnellstart: Starten einer Java-Microservice-Anwendung mit verwalteten Java-Komponenten

In diesem Artikel wird erläutert, wie Sie eine Anwendung in Azure Container Apps bereitstellen, die Java-Komponenten für die Konfigurationsverwaltung, Dienstermittlung sowie Statusüberwachung und Metriken verwendet. Die in diesem Beispiel gezeigte Beispielanwendung ist die Java PetClinic, die das Microservice-Architekturmuster verwendet. Das folgende Diagramm bildet die Architektur der PetClinic-Anwendung in Azure Container Apps ab:

Diagramm der Beziehung zwischen den Java-Komponenten und den Microservice-Anwendungen.

Die PetClinic-Anwendung umfasst die folgenden Features:

  • Das Front-End ist eine eigenständige Node.js-Web-App, die in der API-Gateway-App gehostet wird.
  • Das API-Gateway leitet Anforderungen an Back-End-Dienst-Apps weiter.
  • Back-End-Apps werden mit Spring Boot erstellt.
  • Jede Back-End-App verwendet eine HyperSQL-Datenbank als beständigen Speicher.
  • Die Apps setzen verwaltete Java-Komponenten in Azure Container Apps ein, einschließlich einer Dienstregistrierung, eines Konfigurationsservers und eines Verwaltungsservers.
  • Der Konfigurationsserver liest Daten aus einem Git-Repository.
  • Ein Log Analytics-Arbeitsbereich protokolliert Serverdaten.

In diesem Tutorial:

  • Erstellen eines Konfigurationsservers, Eureka-Servers, Verwaltungsservers und von Verwaltungskomponenten
  • Erstellen einer Reihe von Microservice-Apps
  • Binden Sie die Serverkomponenten mit Ihren Microservices-Apps.
  • Bereitstellen der App-Sammlung
  • Überprüfen der bereitgestellten Apps

Am Ende dieses Artikels stellen Sie eine Webanwendung und drei Back-End-Anwendungen bereit, die dafür konfiguriert sind, mit drei verschiedenen Java-Komponenten zu arbeiten. Anschließend können Sie jede Komponente über das Azure-Portal verwalten.

Voraussetzungen

  • Ein Azure Konto. Falls Sie kein Azure-Konto haben, können Sie kostenlos eines erstellen. Für diese Schnellstartanleitung benötigen Sie die Rolle "Mitwirkender" oder "Besitzer " im Azure-Abonnement. Weitere Informationen finden Sie unter Zuweisen von Azure-Rollen mithilfe des Azure-Portals.
  • Installieren Sie die Azure CLI.
  • Azure Container Apps CLI-Erweiterung, Version 0.3.47 oder höher. Installieren Sie mit dem Befehl az extension add --name containerapp --upgrade --allow-preview die aktuelle Version.

Konfiguration

Führen Sie zum Erstellen von Umgebungsvariablen, einer Ressourcengruppe und einer Azure Container Apps-Umgebung die folgenden Schritte aus:

  1. Die Umgebungsvariablen enthalten Ihre benutzerdefinierten Werte. Ersetzen Sie daher die Platzhalterwerte, die von <> umgeben sind, durch ihre eigenen Werte, bevor Sie die folgenden Befehle ausführen:

    export RESOURCE_GROUP=<your-resource-group>
    export LOCATION=<region>
    export CONTAINER_APP_ENVIRONMENT=<container-apps-environment>
    
  2. Erstellen Sie weitere Umgebungsvariablen, die die Einstellungen für Ihre Microservices-App enthalten. Diese Werte werden verwendet, um die Namen und Konfigurationen der Java-Komponenten und der Azure Container Apps zu definieren, die Sie zum Bereitstellen der Microservices verwenden. Erstellen Sie diese Umgebungsvariablen mithilfe der folgenden Befehle:

    export CONFIG_SERVER_COMPONENT=configserver
    export ADMIN_SERVER_COMPONENT=admin
    export EUREKA_SERVER_COMPONENT=eureka
    export CONFIG_SERVER_URI=https://github.com/spring-petclinic/spring-petclinic-microservices-config.git
    export CUSTOMERS_SERVICE=customers-service
    export VETS_SERVICE=vets-service
    export VISITS_SERVICE=visits-service
    export API_GATEWAY=api-gateway
    export CUSTOMERS_SERVICE_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-customers-service
    export VETS_SERVICE_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-vets-service
    export VISITS_SERVICE_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-visits-service
    export API_GATEWAY_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-api-gateway
    
  3. Führen Sie den folgenden Befehl aus, um sich bei der Azure CLI anzumelden und Ihr aktives Abonnement auszuwählen:

    az login
    
  4. Erstellen Sie eine Ressourcengruppe, um Ihre Azure-Dienste mithilfe des folgenden Befehls zu organisieren:

    az group create \
        --name $RESOURCE_GROUP \
        --location $LOCATION
    
  5. Erstellen Sie Ihre Azure Container Apps-Umgebung, in der sowohl die Java-Komponenten als auch Ihre Container-Apps gehostet werden, mithilfe des folgenden Befehls:

    az containerapp env create \
        --resource-group $RESOURCE_GROUP \
        --name $CONTAINER_APP_ENVIRONMENT \
        --location $LOCATION
    

Erstellen von Java-Komponenten

Jetzt erstellen Sie die folgenden Java-Komponenten, die Ihre App unterstützen:

  • Konfigurationsserver: Verwaltet Konfigurationseinstellungen für Ihre Microservices-Apps.
  • Eureka-Server: Verwaltet die Dienstregistrierung und -ermittlung.
  • Admin-Server: Überwacht und verwaltet den Gesundheitszustand und die Metriken Ihrer Microservices-Anwendungen.

Führen Sie die folgenden Schritte aus, um diese Serverkomponenten zu erstellen:

  1. Erstellen Sie den Konfigurationsserver für Ihre Java-Komponenten mithilfe des folgenden Befehls:

    az containerapp env java-component config-server-for-spring create \
        --resource-group $RESOURCE_GROUP \
        --name $CONFIG_SERVER_COMPONENT \
        --environment $CONTAINER_APP_ENVIRONMENT \
        --configuration spring.cloud.config.server.git.uri=$CONFIG_SERVER_URI
    
  2. Erstellen Sie den Eureka-Server für Ihre Java-Komponenten mithilfe des folgenden Befehls:

    az containerapp env java-component eureka-server-for-spring create \
        --resource-group $RESOURCE_GROUP \
        --name $EUREKA_SERVER_COMPONENT
        --environment $CONTAINER_APP_ENVIRONMENT \
    
  3. Erstellen Sie den Verwaltungsserver für Ihre Java-Komponenten mithilfe des folgenden Befehls:

    az containerapp env java-component admin-for-spring create \
        --resource-group $RESOURCE_GROUP \
        --name $ADMIN_SERVER_COMPONENT
        --environment $CONTAINER_APP_ENVIRONMENT \
    

Microservice-Apps bereitstellen

Führen Sie die folgenden Schritte aus, um die Java-Microservice-Apps mithilfe der vordefinierten Containerimages in Azure Container Apps bereitzustellen:

Hinweis

In diesem Artikel verwenden Sie eine Reihe von integrierten Bildern für die Spring Petclinic Microservice-Apps. Sie haben auch die Möglichkeit, den Beispielcode anzupassen und eigene Bilder zu verwenden. Weitere Informationen finden Sie im GitHub-Repository "azure-container-apps-java-samples".

  1. Erstellen Sie die Kundendaten-App mithilfe des folgenden Befehls:

    az containerapp create \
        --resource-group $RESOURCE_GROUP \
        --name $CUSTOMERS_SERVICE \
        --environment $CONTAINER_APP_ENVIRONMENT \
        --image $CUSTOMERS_SERVICE_IMAGE
    
  2. Erstellen Sie die Vet-App mithilfe des folgenden Befehls:

    az containerapp create \
        --resource-group $RESOURCE_GROUP \
        --name $VETS_SERVICE \
        --environment $CONTAINER_APP_ENVIRONMENT \
        --image $VETS_SERVICE_IMAGE
    
  3. Erstellen Sie die Besuche-App mittels des folgenden Befehls:

    az containerapp create \
        --resource-group $RESOURCE_GROUP \
        --name $VISITS_SERVICE \
        --environment $CONTAINER_APP_ENVIRONMENT \
        --image $VISITS_SERVICE_IMAGE
    
  4. Erstellen Sie die API-Gateway-App mit dem folgenden Befehl:

    az containerapp create \
        --resource-group $RESOURCE_GROUP \
        --name $API_GATEWAY \
        --environment $CONTAINER_APP_ENVIRONMENT \
        --image $API_GATEWAY_IMAGE \
        --ingress external \
        --target-port 8080 \
        --query properties.configuration.ingress.fqdn 
    

Binden von Container-Apps an Java-Komponenten

Binden Sie als Nächstes die Java-Komponenten an Ihre Container-Apps. Die Bindungen, die Sie in diesem Abschnitt erstellen, liefern die folgenden Funktionen:

  • Einfügen von Konfigurationsdaten aus dem verwalteten Konfigurationsserver in jede App beim Start.
  • Registrieren der App beim verwalteten Eureka-Server für die Dienstermittlung.
  • Aktivieren des Verwaltungsservers, um die App zu überwachen.

Verwenden Sie den Befehl containerapp update, um mithilfe der folgenden Schritte Bindungen für jede App zu erstellen:

  1. Fügen Sie mithilfe des folgenden Befehls Bindungen an die Kundendaten-App hinzu:

    az containerapp update \
        --resource-group $RESOURCE_GROUP \
        --name $CUSTOMERS_SERVICE \
        --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT
    
  2. Fügen Sie mithilfe des folgenden Befehls Bindungen an den Veterinärservice hinzu.

    az containerapp update \
        --resource-group $RESOURCE_GROUP \
        --name $VETS_SERVICE \
        --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT
    
  3. Fügen Sie mit dem folgenden Befehl Bindungen zum Dienst für Besuche hinzu:

    az containerapp update \
        --resource-group $RESOURCE_GROUP \
        --name $VISITS_SERVICE \
        --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT
    
  4. Fügen Sie Bindungen an das API-Gateway hinzu. Verwenden Sie den folgenden Befehl, um die URL der Front-End-Anwendung zurückzugeben:

    az containerapp update \
        --resource-group $RESOURCE_GROUP \
        --name $API_GATEWAY \
        --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT \
        --query properties.configuration.ingress.fqdn 
    

Überprüfen des App-Status

Führen Sie die folgenden Schritte aus, um den App-Status zu überprüfen:

  1. Zeigen Sie mithilfe der URL, die Sie im vorherigen Abschnitt gefunden haben, die Front-End-Anwendung in Ihrem Browser an. Die Anwendung sollte dem folgenden Screenshot ähneln:

    Screenshot der Startseite der Tierklinikanwendung.

  2. Zeigen Sie das Eureka-Server-Dashboard mithilfe der folgenden Schritte an:

    Wichtig

    Um das Eureka-Server-Dashboard und das„Admin for Spring“-Dashboard anzuzeigen, muss Ihrem Konto in der Ressource der verwalteten Umgebung mindestens die Microsoft.App/managedEnvironments/write-Rolle zugewiesen sein. 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.

    1. Führen Sie den folgenden Befehl aus, um die Dashboard-URL zurückzugeben:

      az containerapp env java-component eureka-server-for-spring show \
          --resource-group $RESOURCE_GROUP \
          --name $EUREKA_SERVER_COMPONENT \
          --environment $CONTAINER_APP_ENVIRONMENT \
          --query properties.ingress.fqdn
      
    2. Öffnen Sie die URL in Ihrem Browser. Sie sollten eine Anwendung sehen, die dem folgenden Screenshot ähnelt:

      Screenshot der Tierklinikanwendung Eureka Server.

  3. Zeigen Sie das „Admin for Spring“-Dashboard mithilfe der folgenden Schritte an:

    1. Verwenden Sie den folgenden Befehl, um die Dashboard-URL zurückzugeben:

      az containerapp env java-component admin-for-spring show \
          --resource-group $RESOURCE_GROUP \
          --name $ADMIN_SERVER_COMPONENT \
          --environment $CONTAINER_APP_ENVIRONMENT \
          --query properties.ingress.fqdn
      
    2. Öffnen Sie die URL in Ihrem Browser. Sie sollten eine Anwendung sehen, die dem folgenden Screenshot ähnelt:

      Screenshot des Admin-Dashboards für Tierkliniken mit fünf Diensten zusammen mit Versionsinformationen für vier der Dienste.

Optional: Konfigurieren von Java-Komponenten

Sie können die in dieser Schnellstartanleitung erstellten Java-Komponenten über das Azure-Portal mithilfe des Abschnitts "Konfigurationen" konfigurieren.

Screenshot des Abschnitts

Weitere Informationen zum Konfigurieren der drei Java-Komponenten, die Sie in diesem Schnellstart erstellt haben, finden Sie unter den folgenden Links:

Bereinigen von Ressourcen

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

az group delete --resource-group $RESOURCE_GROUP