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.
In diesem Schnellstart erfahren Sie, wie Sie eine Anwendung in Azure Container Apps bereitstellen, die Java-Komponenten nutzt, um die Konfigurationsverwaltung, Dienstermittlung sowie Integrität und Metriken zu handhaben. Die Beispielanwendung in diesem Beispiel ist die Java PetClinic, die das Microservice-Architekturmuster einsetzt. Das folgende Diagramm bildet die Architektur der PetClinic-Anwendung in Azure Container Apps ab:
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.
- Serverdaten von Log Analytics-Arbeitsbereich-Protokollen.
In diesem Tutorial:
- Erstellen eines Konfigurationsservers, Eureka-Servers, Verwaltungsservers und von Verwaltungskomponenten
- Erstellen einer Reihe von Microservice-Apps
- Binden der Serverkomponenten an Ihre Microservices-Apps
- Bereitstellen der Sammlung von Apps
- Ü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
- Azure-Konto: Wenn Sie nicht über ein Azure-Konto verfügen, erstellen Sie ein kostenloses Konto. Sie benötigen die Berechtigung "Mitwirkender" oder "Besitzer " für das Azure-Abonnement, um diese Schnellstartanleitung zu verwenden. Weitere Informationen finden Sie unter Zuweisen von Azure-Rollen mithilfe des Azure-Portals.
- Azure CLI: Installieren Sie die Azure CLI.
- CLI-Erweiterung für Azure Container Apps. Verwenden Sie Version 0.3.47 oder höher. Installieren Sie mit dem Befehl
az extension add --name containerapp --upgrade --allow-previewdie aktuelle Version.
Konfiguration
Führen Sie zum Erstellen von Umgebungsvariablen, einer Ressourcengruppe und einer Azure Container Apps-Umgebung die folgenden Schritte aus:
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=<RESOURCE_GROUP> export LOCATION=<LOCATION> export CONTAINER_APP_ENVIRONMENT=<CONTAINER_APPS_ENVIRONMENT>Jetzt 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-gatewayFühren Sie den folgenden Befehl aus, um sich bei der Azure CLI anzumelden und Ihr aktives Abonnement auszuwählen:
az loginErstellen Sie eine Ressourcengruppe, um Ihre Azure-Dienste mithilfe des folgenden Befehls zu organisieren:
az group create \ --name $RESOURCE_GROUP \ --location $LOCATIONErstellen 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. Wird verwendet, um Konfigurationseinstellungen für Ihre Microservices-Apps zu verwalten.
- Eureka-Server. Wird verwendet, um die Dienstregistrierung und -ermittlung zu verwalten.
- Verwaltungsserver. Wird verwendet, um die Integrität und die Metriken Ihrer Microservices-Apps zu überwachen und zu verwalten.
Führen Sie die folgenden Schritte aus, um diese Serverkomponenten zu erstellen:
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_URIErstellen 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 \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 \
Bereitstellen der Microservice-Apps
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".
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_IMAGEErstellen 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_IMAGEErstellen 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_IMAGEErstellen 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:
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_COMPONENTFügen Sie mithilfe des folgenden Befehls Bindungen an den Vet-Dienst hinzu:
az containerapp update \ --resource-group $RESOURCE_GROUP \ --name $VETS_SERVICE \ --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENTFügen Sie mithilfe des folgenden Befehls Bindungen an den Besuchsdienst hinzu:
az containerapp update \ --resource-group $RESOURCE_GROUP \ --name $VISITS_SERVICE \ --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENTFügen Sie Bindungen an das API-Gateway hinzu. Verwenden Sie den folgenden Befehl, um die URL der Front-End-Anwendung zurückzugeben, und öffnen Sie diesen Speicherort dann in Ihrem Browser:
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:
Zeigen Sie mithilfe der URL, die über den
az containerapp update-Befehl des API-Gateways zurückgegeben wird, die Front-End-Anwendung in Ihrem Browser an. Die Anwendung sollte dem folgenden Screenshot ähneln: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 dieOwner- oderContributor-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.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Öffnen Sie die URL in Ihrem Browser. Sie sollten eine Anwendung sehen, die dem folgenden Screenshot ähnelt:
Zeigen Sie das „Admin for Spring“-Dashboard mithilfe der folgenden Schritte an:
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Öffnen Sie die URL in Ihrem Browser. Sie sollten eine Anwendung sehen, die dem folgenden Screenshot ähnelt:
Optional: Konfigurieren von Java-Komponenten
Sie können die in dieser Schnellstartanleitung erstellten Java-Komponenten über das Azure-Portal mithilfe des Abschnitts "Konfigurationen" konfigurieren.
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 diesem Tutorial erstellten Ressourcen wirken sich in Ihrer 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