Bereitstellen von Java Spring Boot-Apps für Azure Container Apps
Dieser Artikel erläutert, wie Sie eine Java Spring Boot-App mit Anmeldung mit dem Microsoft Entra-Konto bei Azure Container Apps bereitstellen.
Hier wird davon ausgegangen, dass Sie einen der folgenden Artikel nur mit der Registerkarte Lokal ausführen abgeschlossen haben und jetzt in Azure bereitstellen möchten. Diese Anweisungen entsprechen denen auf der Registerkarte Bereitstellen in Azure in diesen Artikeln:
- Sichern von Java Spring Boot-Apps mit Microsoft Entra ID
- Sichern von Java Spring Boot-Apps mit Azure Active Directory B2C
- Aktivieren von Java Spring Boot-Apps zum Anmelden von Benutzern und zum Zugriff auf Microsoft Graph
- Sichern von Java Spring Boot-Apps mit Rollen und Rollenansprüchen
- Sichern von Java Spring Boot-Apps mit Gruppen und Gruppenansprüchen
Voraussetzungen
- Ein Azure-Konto. Falls Sie nicht über eine Subscription verfügen, können Sie ein kostenloses Konto erstellen. Sie benötigen die Berechtigung Mitwirkender oder Besitzer für das Azure-Abonnement, um den Vorgang fortzusetzen. Weitere Informationen finden Sie unter Weisen Sie Azure-Rollen über das Azure-Portal zu.
- Die Azure CLI
- Die Azure Container Apps CLI-Erweiterung, Version
0.3.47
oder höher. Zum Installieren der aktuellen Version verwenden Sie den Befehlaz extension add --name containerapp --upgrade --allow-preview
. - Java Development Kit, Version 17 oder höher.
- Maven.
Vorbereiten des Spring-Projekts
Bereiten Sie das Projekt mit den folgenden Schritten vor:
Verwenden Sie den folgenden Maven-Befehl, um das Projekt zu erstellen:
mvn clean verify
Führen Sie das Beispielprojekt mit dem folgenden Befehl lokal aus:
mvn spring-boot:run
Setup
Um sich ausgehend von der CLI bei Azure anzumelden, führen Sie den folgenden Befehl aus und befolgen Sie die Anweisungen, um den Authentifizierungsprozess abzuschließen.
az login
Verwenden Sie den Upgradebefehl, um sicherzustellen, dass Sie die neueste Version der CLI ausführen.
az upgrade
Installieren oder aktualisieren Sie als Nächstes die Azure Container Apps-Erweiterung für die CLI.
Wenn Sie beim Ausführen von az containerapp
-Befehlen in Azure-CLI Fehlermeldungen über fehlende Parameter erhalten, stellen Sie sicher, dass Sie die neueste Version der Erweiterung für Azure-Container-Apps installiert haben.
az extension add --name containerapp --upgrade
Hinweis
Ab Mai 2024 aktivieren Azure CLI-Erweiterungen standardmäßig keine Previewfunktionen mehr. Um auf Previewfunktionen von Container Apps zuzugreifen, installieren Sie die Container Apps-Erweiterung mit --allow-preview true
.
az extension add --name containerapp --upgrade --allow-preview true
Nachdem die aktuelle Erweiterung oder das aktuelle Modul installiert ist, registrieren Sie nun die Namespaces Microsoft.App
und Microsoft.OperationalInsights
.
Hinweis
Azure Container Apps-Ressourcen wurden vom Microsoft.Web
-Namespace zum Microsoft.App
-Namespace migriert. Weitere Informationen finden Sie unter Namespacemigration von Microsoft.Web zu Microsoft.App im März 2022.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Erstellen der Azure Container Apps-Umgebung
Nachdem die Einrichtung Ihrer Azure CLI abgeschlossen ist, können Sie die Umgebungsvariablen definieren, die in diesem Artikel verwendet werden.
Definieren Sie die folgenden Variablen in Ihrer Bash-Shell.
export RESOURCE_GROUP="ms-identity-containerapps"
export LOCATION="canadacentral"
export ENVIRONMENT="env-ms-identity-containerapps"
export API_NAME="ms-identity-api"
export JAR_FILE_PATH_AND_NAME="./target/ms-identity-spring-boot-webapp-0.0.1-SNAPSHOT.jar"
Erstellen Sie eine Ressourcengruppe.
az group create \
--name $RESOURCE_GROUP \
--location $LOCATION \
Erstellen Sie eine Umgebung mit einem automatisch generierten Log Analytics-Arbeitsbereich.
az containerapp env create \
--name $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--location $LOCATION
Zeigt die Standarddomäne der Container-App-Umgebung an. Notieren Sie sich diese Domäne, um sie in späteren Abschnitten zu verwenden.
az containerapp env show \
--name $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--query properties.defaultDomain
Vorbereiten der App zur Bereitstellung
Wenn Sie Ihre Anwendung in Azure Container Apps bereitstellen, ändert sich Ihre Umleitungs-URL in die Umleitungs-URL Ihrer bereitgestellten App-Instanz in Azure Container Apps. Führen Sie die folgenden Schritte aus, um diese Einstellungen in der application.yml-Datei zu ändern:
Navigieren Sie zur Datei src\main\resources\application.yml, und ändern Sie den Wert
post-logout-redirect-uri
des Domänennamens Ihrer bereitgestellten App hinzu, wie im folgenden Beispiel gezeigt. Achten Sie darauf, dass Sie<API_NAME>
und<default-domain-of-container-app-environment>
durch die aktuellen Werte ersetzen. Beispielsweise würden Sie mit der Standarddomäne für Ihre Azure Container App-Umgebung aus dem vorherigen Schritt undms-identity-api
für Ihren App-Namenhttps://ms-identity-api.<default-domain>
für denpost-logout-redirect-uri
-Wert verwenden.post-logout-redirect-uri: https://<API_NAME>.<default-domain-of-container-app-environment>
Verwenden Sie nach dem Speichern dieser Datei den folgenden Befehl, um Ihre App neu zu erstellen:
mvn clean package
Wichtig
Die application.yml-Datei der Anwendung enthält derzeit den Wert Ihres geheimen Clientschlüssels im client-secret
-Parameter. Es empfiehlt sich nicht, diesen Wert in dieser Datei beizubehalten. Möglicherweise gehen Sie ein Risiko ein, wenn Sie die Datei in ein Git-Repository übernehmen. Informationen zum empfohlenen Ansatz finden Sie unter Verwalten von geheimen Schlüsseln in Azure Container Apps.
Aktualisieren Sie die Registrierung Ihrer Microsoft Entra ID-App.
Da sich der Umleitungs-URI in Ihrer bereitgestellten App in Azure Container Apps ändert, müssen Sie auch den Umleitungs-URI in Ihrer Microsoft Entra ID-App-Registrierung ändern. Durchlaufen Sie folgende Schritte, um diese Änderung wirksam zu machen:
Navigieren Sie zur Seite App-Registrierungen von Microsoft Identity Platform für Entwickler.
Verwenden Sie das Suchfeld, um nach Ihrer App-Registrierung zu suchen. Beispiel:
java-servlet-webapp-authentication
.Öffnen Sie die App-Registrierung, indem Sie den Namen auswählen.
Wählen Sie im oberen Menü Authentifizierung aus.
Wählen Sie unter Web - Umleitungs-URIs die Option URI hinzufügen aus.
Füllen Sie den URI Ihrer App aus, indem Sie
/login/oauth2/code/
anfügen. Beispiel:https://<containerapp-name>.<default domain of container app environment>/login/oauth2/code/
.Wählen Sie Speichern.
Bereitstellen der App
Stellen Sie das JAR-Paket für Azure Container Apps bereit.
Hinweis
Falls erforderlich, können Sie die JDK-Version in den Java-Build-Umgebungsvariablen angeben. Weitere Informationen finden Sie unter Erstellen von Umgebungsvariablen für Java in Azure Container Apps.
Jetzt können Sie Ihre WAR-Datei mit dem CLI-Befehl az containerapp up
bereitstellen.
az containerapp up \
--name $API_NAME \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--environment $ENVIRONMENT \
--artifact <JAR_FILE_PATH_AND_NAME> \
--ingress external \
--target-port 8080 \
--query properties.configuration.ingress.fqdn
Hinweis
Die JDK-Standardversion ist 17. Wenn Sie die JDK-Version für die Kompatibilität mit Ihrer Anwendung ändern müssen, können Sie die Versionsnummer mit dem Argument --build-env-vars BP_JVM_VERSION=<YOUR_JDK_VERSION>
anpassen.
Weitere Buildumgebungsvariablen finden Sie unter Buildumgebungsvariablen für Java in Azure Container Apps.
Überprüfen der App
In diesem Beispiel enthält der containerapp up
-Befehl das --query properties.configuration.ingress.fqdn
-Argument, das den vollqualifizierten Domänennamen (Fully Qualified Domain Name, FQDN) zurückgibt, der auch als URL der App bezeichnet wird. Verwenden Sie die folgenden Schritte, um die Protokolle der App zu überprüfen, um Bereitstellungsprobleme zu untersuchen:
Greifen Sie auf die URL der Ausgabeanwendung auf der Seite Ausgaben des Abschnitts Bereitstellung zu.
Wählen Sie im Navigationsbereich der Azure Container Apps-Instanz Übersicht die Option Protokolle, um die Protokolle der App zu überprüfen.
Weitere Informationen
- Microsoft Identity Platform (Microsoft Entra ID für Entwickler)
- Übersicht über die Microsoft-Authentifizierungsbibliothek (MSAL)
- Schnellstart: Registrieren einer Anwendung bei Microsoft Identity Platform
- Schnellstart: Konfigurieren einer Clientanwendung für den Zugriff auf Web-APIs
- Grundlegendes zu Einwilligungserfahrungen für Microsoft Entra ID-Anwendungen
- Grundlegendes zur Benutzer- und Administratoreinwilligung
- Anwendungs- und Dienstprinzipalobjekte in Microsoft Entra ID
- Nationale Clouds
- MSAL-Codebeispiele
- Microsoft Entra ID Spring Boot Starter-Clientbibliothek für Java
- Microsoft Authentication Library für Java (MSAL4J)
- MSAL4J-Wiki
- ID-Token
- Microsoft Identity Platform – Zugriffstoken
Nächste Schritte
Weitere Informationen zu diesen und anderen Bereitstellungsfunktionen finden Sie in den folgenden Artikeln: