Migrieren von Spring Boot-Anwendungen zu Azure Container Apps
In dieser Anleitung erfahren Sie, worauf Sie achten müssen, wenn Sie eine vorhandene Spring Boot-Anwendung für die Ausführung in Azure Container Apps migrieren möchten.
Vor der Migration
Führen Sie vor Beginn einer Migration die in den folgenden Abschnitten beschriebenen Schritte zur Bewertung und Bestandsermittlung aus, um eine erfolgreiche Migration zu gewährleisten.
Falls Sie keine dieser Voraussetzungen für die Migration erfüllen können, sehen Sie sich die folgenden Begleithandbücher an:
- Migrieren ausführbarer JAR-Anwendungen zu Containern in Azure Kubernetes Service (Leitfaden geplant)
- Migrieren ausführbarer JAR-Anwendungen zu Azure Virtual Machines (Leitfaden geplant)
Untersuchen der Anwendungskomponenten
Identifizieren des lokalen Zustands
In PaaS-Umgebungen ist es nicht gewährleistet, dass die Anwendung zu einem beliebigen Zeitpunkt genau ein Mal ausgeführt wird. Auch wenn Sie eine Anwendung so konfigurieren, dass Sie in einer einzelnen Instanz ausgeführt wird, kann in den folgenden Fällen eine doppelte Instanz erstellt werden:
- Die Anwendung muss aufgrund eines Fehlers oder eines Systemupdates auf einen physischen Host verschoben werden.
- Die Anwendung wird aktualisiert.
In allen diesen Fällen wird die ursprüngliche Instanz weiterhin ausgeführt, bis der Start der neuen Instanz abgeschlossen ist. Dieses Muster kann die folgenden potenziell erheblichen Auswirkungen auf Ihre Anwendung haben:
- Für kein Singleton kann gewährleistet werden, dass es wirklich einzeln ist.
- Alle Daten, die nicht in einem externen Speicher persistent gespeichert wurden, gehen wahrscheinlich schneller verloren als auf einem einzelnen physischen Server oder einer VM.
Stellen Sie vor der Migration zu Azure Container Apps sicher, dass Ihr Code keinen lokalen Zustand enthält, der nicht verloren gehen oder dupliziert werden darf. Wenn ein lokaler Zustand vorhanden ist, ändern Sie den Code so, dass dieser Zustand außerhalb der Anwendung gespeichert wird. Für die Cloud bereite Anwendungen speichern den Anwendungsstatus in der Regel beispielsweise an folgenden Speicherorten:
- Azure Cache for Redis
- Azure Cosmos DB
- Andere externe Datenbank, wie z. B. Azure SQL, Azure Database for MySQL oder Azure Database for PostgreSQL
- Azure Storage, zum Speichern unstrukturierter Daten oder sogar serialisierter Objekte verwendet
Ermitteln, ob und wie das Dateisystem verwendet wird
Suchen Sie nach Fällen, in denen Ihre Dienste Daten in das lokale Dateisystem schreiben bzw. Daten daraus lesen. Ermitteln Sie, wo kurzlebige/temporäre Dateien geschrieben und gelesen und wo langlebige Dateien geschrieben und gelesen werden.
Azure Container Apps bietet mehrere Arten von Speicher. Kurzlebiger Speicher kann temporäre Daten lesen und schreiben und für einen ausgeführten Container oder ein Replikat verfügbar sein. Azure File bietet permanenten Speicher und kann für mehrere Container freigegeben werden. Weitere Informationen finden Sie unter Verwenden von Speichereinbindungen in Azure Container Apps.
Schreibgeschützter statischer Inhalt
Falls Ihre Anwendung derzeit statische Inhalte bereitstellt, benötigen Sie dafür einen anderen Speicherort. Sie könnten beispielsweise erwägen, statische Inhalte in Azure Blob Storage zu verschieben und Azure CDN hinzuzufügen, um global eine sehr hohe Downloadgeschwindigkeit zu erzielen. Weitere Informationen finden Sie unter Hosten von statischen Websites in Azure Storage und Schnellstart: Integrieren eines Azure-Speicherkontos in Azure CDN.
Dynamisch veröffentlichter statischer Inhalt
Wenn Ihre Anwendung statische Inhalte unterstützt, die hochgeladen oder von der Anwendung selbst generiert wurden und nach ihrer Erstellung unverändert bleiben, können Sie Azure Blob Storage und Azure CDN integrieren. Sie können auch eine Azure-Funktion verwenden, um Uploads zu verwalten und bei Bedarf CDN-Aktualisierungen auszulösen. Eine entsprechende Beispielimplementierung finden Sie unter Hochladen und CDN-Vorabladen von statischem Inhalt mit Azure Functions.
Ermitteln, ob Dienste betriebssystemspezifischen Code enthalten
Wenn Ihre Anwendung Code mit Abhängigkeiten vom Hostbetriebssystem enthält, müssen Sie ihn umgestalten, um diese Abhängigkeiten zu beseitigen. Beispielsweise müssen Sie möglicherweise die Verwendung von /
oder \
in Dateisystempfaden durch File.Separator
oder Paths.get
ersetzen, wenn Ihre Anwendung unter Windows ausgeführt wird.
Wechseln zu einer unterstützten Plattform
Wenn Sie Ihre Dockerfile-Datei manuell erstellen und eine containerisierte Anwendung in Azure Container Apps bereitstellen, übernehmen Sie die vollständige Kontrolle über Ihre Bereitstellung, einschließlich der JRE-/JDK-Versionen.
Für die Bereitstellung von Artefakten bietet Azure Container Apps auch bestimmte Versionen von Java (8, 11, 17 und 21) sowie bestimmte Versionen von Spring Boot- und Spring Cloud-Komponenten. Migrieren Sie zur Sicherstellung der Kompatibilität Ihre Anwendung zunächst zu einer der unterstützten Versionen von Java in der aktuellen Umgebung, und führen Sie anschließend die restlichen Schritte zur Migration aus. Achten Sie darauf, dass Sie die sich ergebende Konfiguration umfassend testen. Verwenden Sie für diese Tests das neueste stabile Release Ihrer Linux-Distribution.
Hinweis
Diese Überprüfung ist besonders wichtig, wenn Ihr aktueller Server auf einem nicht unterstützten JDK (z. B. Oracle JDK oder IBM OpenJ9) ausgeführt wird.
Melden Sie sich an Ihrem Produktionsserver an, und führen Sie den folgenden Befehl aus, um Ihre aktuelle Java-Version zu ermitteln:
java -version
Unterstützte Versionen von Java, Spring Boot und Spring Cloud sowie Anweisungen zum Aktualisieren finden Sie unter Übersicht zu Java in Azure Container Apps.
Ermitteln, ob für Ihre Anwendung geplante Aufträge benötigt werden
Kurzlebige Anwendungen wie Unix-Cronjobs oder Anwendungen, die auf dem Spring Batch Framework basieren, sollten als Einzelvorgang in Azure Container Apps ausgeführt werden. Weitere Informationen hierzu finden Sie unter Aufträge in Azure Container Apps. Wenn es sich bei Ihrer Anwendung um eine Anwendung mit langer Laufzeit handelt, die regelmäßig Aufgaben unter Verwendung eines Planungsframeworks wie Quartz oder Spring Batch ausführt, kann Azure Container Apps diese Anwendung hosten. Die Anwendung muss die Skalierung jedoch entsprechend handhaben, um Racebedingungen zu vermeiden, unter denen dieselben Anwendungsinstanzen während einer horizontalen Skalierung oder eines parallelen Upgrades mehr als einmal pro geplantem Zeitraum ausgeführt werden.
Inventarisieren Sie alle geplanten Aufgaben, die auf Produktionsservern ausgeführt werden, innerhalb oder außerhalb Ihres Anwendungscodes.
Ermitteln von Spring Boot-Versionen
Überprüfen Sie die Abhängigkeiten der einzelnen Anwendungen, die migriert werden, um ihre Spring Boot-Version zu bestimmen.
Maven
Bei Maven-Projekten befindet sich die Spring Boot-Version in der Regel im <parent>
-Element der POM-Datei:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.3.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
Gradle
Bei Gradle-Projekten befindet sich die Spring Boot-Version in der Regel im Abschnitt plugins
als Version des Plug-Ins org.springframework.boot
:
plugins {
id 'org.springframework.boot' version '3.3.3'
id 'io.spring.dependency-management' version '1.1.6'
id 'java'
}
Befolgen Sie für alle Anwendungen, die Spring Boot-Versionen vor 3.x verwenden, den Spring Boot 2.0-Migrationsleitfaden oder den Spring Boot 3.0-Migrationsleitfaden, um eine Aktualisierung der Anwendungen auf eine unterstützte Spring Boot-Version vorzunehmen. Informationen zu den unterstützten Versionen finden Sie unter Spring Boot- und Spring Cloud-Versionen.
Ermitteln von Protokollaggregationslösungen
Ermitteln Sie alle Protokollaggregationslösungen, die ggf. von den zu migrierenden Anwendungen verwendet werden. Sie müssen Diagnoseeinstellungen in der Migration konfigurieren, um protokollierte Ereignisse für die Nutzung verfügbar zu machen. Weitere Informationen finden Sie im Abschnitt Sicherstellen der Konsolenprotokollierung und Konfigurieren von Diagnoseeinstellungen.
Ermitteln von APM-Agents (Application Performance Management, Anwendungsleistungsverwaltung)
Ermitteln Sie alle Application Performance Management-Agents, die von Ihren Anwendungen verwendet werden. Azure Containers Apps bietet keine integrierte Unterstützung für die APM-Integration. Sie müssen Ihr Containerimage vorbereiten oder das APM-Tool direkt in Ihren Code integrieren. Wenn Sie die Leistung Ihrer Anwendung messen möchten, aber noch kein APM integriert haben, können Sie die Verwendung von Azure Application Insights in Betracht ziehen. Weitere Informationen finden Sie im Abschnitt Migration.
Bestand: Externe Ressourcen
Identifizieren Sie externe Ressourcen, z. B. Datenquellen, JMS-Nachrichtenbroker und URLs anderer Dienste. Bei Spring Boot-Anwendungen ist die Konfiguration solcher Ressourcen üblicherweise im Ordner src/main/resources in einer Datei namens application.properties oder application.yml zu finden.
Datenbanken
Bei einer Spring Boot-Anwendung erscheinen Verbindungszeichenfolgen in der Regel in Konfigurationsdateien, wenn sie von einer externen Datenbank abhängt. Hier ist ein Beispiel aus der Datei application.properties angegeben:
spring.datasource.url=jdbc:mysql://localhost:3306/mysql_db
spring.datasource.username=dbuser
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
Hier ist ein Beispiel aus der Datei application.yaml angegeben:
spring:
data:
mongodb:
uri: mongodb://mongouser:deepsecret@mongoserver.contoso.com:27017
Weitere mögliche Konfigurationsszenarien finden Sie in der Dokumentation zu Spring Data:
JMS-Nachrichtenbroker
Ermitteln Sie die verwendeten Broker, indem Sie sich im Buildmanifest (in der Regel eine Datei vom Typ pom.xml oder build.gradle) die relevanten Abhängigkeiten ansehen.
Bei einer Spring Boot-Anwendung, die ActiveMQ verwendet, ist diese Abhängigkeit beispielsweise in der Datei pom.xml enthalten:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
Bei Spring Boot-Anwendungen, für die kommerzielle Broker genutzt werden, sind Abhängigkeiten meist direkt in den JMS-Treiberbibliotheken der Broker enthalten. Hier ist ein Beispiel aus der Datei build.gradle angegeben:
dependencies {
...
compile("com.ibm.mq:com.ibm.mq.allclient:9.4.0.5")
...
}
Nachdem Sie den oder die verwendeten Broker ermittelt haben, können Sie nach den entsprechenden Einstellungen suchen. Bei Spring Boot-Anwendungen befinden sich diese in der Regel im Anwendungsverzeichnis in den Dateien application.properties und application.yml.
Hinweis
Microsoft empfiehlt, immer den sichersten Authentifizierungsflow zu verwenden, der verfügbar ist. Der in diesem Verfahren beschriebene Authentifizierungsfluss, z. B. für Datenbanken, Caches, Nachrichten oder KI-Dienste, erfordert ein sehr hohes Vertrauen in die Anwendung und trägt Risiken, die in anderen Flüssen nicht vorhanden sind. Verwenden Sie diesen Fluss nur, wenn sicherere Optionen wie verwaltete Identitäten für kennwortlose oder schlüssellose Verbindungen nicht geeignet sind. Bei Vorgängen des lokalen Computers bevorzugen Sie Benutzeridentitäten für kennwortlose oder schlüssellose Verbindungen.
Hier ist ein ActiveMQ-Beispiel aus der Datei application.properties angegeben:
spring.activemq.brokerurl=broker:(tcp://localhost:61616,network:static:tcp://remotehost:61616)?persistent=false&useJmx=true
spring.activemq.user=admin
spring.activemq.password=<password>
Weitere Informationen zur ActiveMQ-Konfiguration finden Sie in der Dokumentation zu Spring Boot-Messaging.
Hier ist ein IBM MQ-Beispiel aus der Datei application.yaml angegeben:
ibm:
mq:
queueManager: qm1
channel: dev.ORDERS
connName: localhost(14)
user: admin
password: <password>
Weitere Informationen zur IBM MQ-Konfiguration finden Sie in der Dokumentation zu IBM MQ Spring-Komponenten.
Identifizieren von externen Caches
Ermitteln Sie alle verwendeten externen Caches. Redis wird häufig über Spring Data Redis verwendet. Informationen zur Konfiguration finden Sie in der Spring Data Redis-Dokumentation.
Ermitteln Sie, ob Sitzungsdaten über Spring Session zwischengespeichert werden. Suchen Sie dazu nach der entsprechenden Konfiguration (in Java oder XML).
Identitätsanbieter
Identifizieren Sie alle Identitätsanbieter, die von Ihrer Anwendung verwendet werden. Informationen zum Konfigurieren von Identitätsanbietern finden Sie in den folgenden Artikeln:
- Informationen zur OAuth2-Konfiguration finden Sie in der Spring Security-Referenz.
- Informationen zur Auth0-Spring Security-Konfiguration finden Sie in der Auth0-Spring Security-Dokumentation.
- Informationen zur PingFederate-Spring Security-Konfiguration finden Sie in der Auth0-PingFederate-Anleitung.
Identifizieren von Clients, die einen nicht standardmäßigen Port verwenden
Azure Container Apps ermöglicht es Ihnen, Ports gemäß ihrer Azure Container Apps-Ressourcenkonfiguration verfügbar zu machen. Eine Spring Boot-Anwendung beispielsweise lauscht standardmäßig auf Port 8080, dies kann aber nach Bedarf mit server.port
oder der Umgebungsvariablen SERVER_PORT
festgelegt werden.
Alle anderen externen Ressourcen
Es würde den Rahmen dieses Leitfadens sprengen, jede mögliche externe Abhängigkeit zu dokumentieren. Vergewissern Sie sich daher nach der Migration, dass alle externen Abhängigkeiten Ihrer Anwendung abgedeckt wurden.
Ermitteln des Bestands an Konfigurationsquellen und Geheimnissen
Ermitteln des Bestands an Kennwörtern und sicheren Zeichenfolgen
Überprüfen Sie alle Eigenschaften und Konfigurationsdateien sowie alle Umgebungsvariablen in den Produktionsbereitstellungen auf Geheimniszeichenfolgen und Kennwörter. In einer Spring Boot-Anwendung befinden sich diese Zeichenfolgen in der Regel in der Datei application.properties oder application.yml.
Inventarisieren von Zertifikaten
Dokumentieren Sie alle Zertifikate, die für öffentliche SSL-Endpunkte oder für die Kommunikation mit Back-End-Datenbanken und anderen Systemen verwendet werden. Sie können alle Zertifikate auf den Produktionsservern anzeigen, indem Sie den folgenden Befehl ausführen:
keytool -list -v -keystore <path to keystore>
Untersuchen der Bereitstellungsarchitektur
Dokumentieren der Hardwareanforderungen für die einzelnen Dienste
Dokumentieren Sie die folgenden Informationen für Ihre Spring Boot-Anwendung:
- Anzahl ausgeführter Instanzen
- Anzahl zugewiesener CPUs für die jeweilige Instanz
- Zugewiesener Arbeitsspeicher für die jeweilige Instanz
Dokumentieren von Georeplikation/Verteilung
Ermitteln Sie, ob die Spring Boot-Anwendungsinstanzen derzeit auf mehrere Regionen oder Rechenzentren verteilt sind. Dokumentieren Sie die Betriebszeitanforderungen/SLA für die zu migrierenden Anwendungen.
Migration
Erstellen einer Azure Container Apps-Umgebung und Bereitstellen von Apps
Stellen Sie eine Azure Container Apps-Instanz in Ihrem Azure-Abonnement bereit. Ihre sichere Hostingumgebung wird gleichzeitig erstellt. Weitere Informationen finden Sie unter Schnellstart: Bereitstellen Ihrer ersten Container-App über das Azure-Portal.
Sicherstellen der Konsolenprotokollierung und Konfigurieren von Diagnoseeinstellungen
Konfigurieren Sie Ihre Protokollierung so, dass alle Ausgaben an die Konsole und nicht in Dateien weitergeleitet werden.
Nach Bereitstellung einer Anwendung in Azure Container Apps können Sie die Protokollierungsoptionen in Ihrer Container Apps-Umgebung konfigurieren, um ein oder mehrere Ziele der Protokolle zu definieren. Zu diesen Zielen können Azure Monitor Log Analytics, Azure Event Hub oder sogar andere Überwachungslösungen von Drittanbietern gehören. Sie haben auch die Möglichkeit, Protokolldaten zu deaktivieren und Protokolle nur zur Laufzeit anzuzeigen. Ausführliche Konfigurationsanweisungen finden Sie unter Protokollspeicherungs- und Überwachungsoptionen in Azure Container Apps.
Konfigurieren von persistentem Speicher
Wenn ein Teil Ihrer Anwendung Daten aus dem lokalen Dateisystem liest oder in das lokale Dateisystem schreibt, müssen Sie beständigen Speicher konfigurieren, um das lokale Dateisystem zu ersetzen. Sie können den Pfad zum Einbinden im Container über die App-Einstellungen angeben und mit dem Pfad abgleichen, den Ihre App verwendet. Weitere Informationen finden Sie unter Verwenden von Speichereinbindungen in Azure Container Apps.
Migrieren aller Zertifikate zu Key Vault
Azure Containers Apps unterstützt eine sichere Kommunikation zwischen Apps. Ihre Anwendung muss den Prozess zum Aufbau einer sicheren Kommunikation nicht verwalten. Sie können das private Zertifikat in Azure Container Apps hochladen oder ein kostenloses verwaltetes Zertifikat verwenden, das von Azure Container Apps bereitgestellt wird. Eine empfohlene Vorgehensweise besteht darin, Zertifikate mithilfe von Azure Key Vault zu verwalten. Weitere Informationen hierzu finden Sie unter Zertifikate in Azure Container Apps.
Konfigurieren von Application Performance Management (APM)-Integrationen
Unabhängig davon, ob Ihre App aus einem Containerimage oder aus Code bereitgestellt wird, beeinträchtigt Azure Container Apps Ihr Image oder Ihren Code nicht. Daher hängt die Integration Ihrer Anwendung mit einem APM-Tool von Ihren eigenen Präferenzen und Ihrer Implementierung ab.
Wenn Ihre Anwendung kein unterstütztes APM verwendet, stellt Azure Application Insights eine Option dar. Weitere Informationen finden Sie unter Verwenden von Azure Monitor Application Insights mit Spring Boot.
Bereitstellen der Anwendung
Stellen Sie die einzelnen migrierten Microservices (ohne Spring Cloud-Konfigurationsserver und Spring Cloud-Dienstregistrierung) bereit, wie unter Bereitstellen von Azure Container Apps mit dem Befehl „az containerapp up“ beschrieben.
Konfigurieren dienstspezifischer Geheimnisse und externalisierter Einstellungen
Konfigurationseinstellungen können den einzelnen Anwendungen als Umgebungsvariablen hinzugefügt werden. Sie können diese Variablen als manuelle Einträge oder als Verweise auf Geheimnisse festlegen. Weitere Informationen zur Konfiguration finden Sie unter Verwalten von Umgebungsvariablen in Azure Container Apps.
Migrieren und Aktivieren des Identitätsanbieters
Sollte für Spring Cloud-Anwendungen eine Authentifizierung oder Autorisierung erforderlich sein, stellen Sie sicher, dass sie für den Zugriff auf den Identitätsanbieter konfiguriert sind:
- Wenn der Identitätsanbieter Microsoft Entra ID ist, sollten keine Änderungen erforderlich sein.
- Handelt es sich bei dem Identitätsanbieter um eine lokale Active Directory-Gesamtstruktur, empfiehlt sich ggf. die Implementierung einer Hybrididentitätslösung mit Microsoft Entra ID. Weitere Informationen finden Sie in der Dokumentation zur Hybrid-Identität.
- Wenn es sich bei dem Identitätsanbieter um eine andere lokale Lösung (beispielsweise PingFederate) handelt, erfahren Sie im Thema Benutzerdefinierte Installation von Microsoft Entra Connect, wie Sie einen Verbund mit Microsoft Entra ID konfigurieren. Alternativ können Sie Spring Security nutzen, um Ihren Identitätsanbieter über OAuth2/OpenID Connect oder SAML zu verwenden.
Verfügbarmachen der Anwendung
Standardmäßig kann über eine Anwendungs-URL auf eine Anwendung zugegriffen werden, die für Azure Container Apps bereitgestellt wird. Wenn Ihre App im Kontext einer verwalteten Umgebung mit einem eigenen virtuellen Netzwerk bereitgestellt wird, müssen Sie die Zugriffsebene der App ermitteln, um den öffentlichen Eingang oder nur den Eingang aus Ihrem virtuellen Netzwerk zuzulassen. Weitere Informationen finden Sie unter Netzwerk in der Azure Container Apps-Umgebung.
Nach der Migration
Nachdem Sie die Migration abgeschlossen haben, überprüfen Sie, ob Ihre Anwendung erwartungsgemäß funktioniert. Mithilfe der folgenden Empfehlungen können Sie Ihre Anwendung anschließend cloudnativer gestalten.
Ziehen Sie in Erwägung, die Anwendung für die Verwendung der Spring Cloud-Registrierung zu aktivieren. Dank dieser Komponente kann Ihre Anwendung von anderen bereitgestellten Spring-Anwendungen und -Clients dynamisch erkannt werden. Weitere Informationen finden Sie unter Konfigurieren von Einstellungen für die Eureka Server für Spring-Komponente in Azure Container Apps. Ändern Sie dann alle Anwendungsclients so, dass sie den Spring Client Load Balancer verwenden. Mit dem Spring Client Load Balancer kann der Client die Adressen aller ausgeführten Instanzen der Anwendung abrufen und eine funktionierende Instanz finden, wenn eine andere Instanz beschädigt wird oder nicht mehr reagiert. Weitere Informationen finden Sie unter Spring Tips: Spring Cloud Load Balancer im Spring Blog.
Anstatt Ihre Anwendung öffentlich zu machen, können Sie wahlweise auch eine Spring Cloud Gateway-Instanz hinzufügen. Spring Cloud Gateway stellt einen einzelnen Endpunkt für alle Anwendungen zur Verfügung, die in Ihrer Azure Container Apps-Umgebung bereitgestellt werden. Wenn bereits ein Spring Cloud Gateway bereitgestellt wurde, stellen Sie sicher, dass eine Routingregel für die Weiterleitung von Datenverkehr an die neu bereitgestellte Anwendung konfiguriert ist.
Fügen Sie gegebenenfalls einen Spring Cloud-Konfigurationsserver hinzu, um die Konfiguration für alle Ihre Spring Cloud-Anwendungen zentral zu verwalten und eine zentrale Versionskontrolle durchzuführen. Erstellen Sie zunächst ein Git-Repository, um die Konfiguration zu speichern, und konfigurieren Sie die App-Instanz dann für die Verwendung dieser Konfiguration. Weitere Informationen finden Sie unter Konfigurieren von Einstellungen für die Config Server für Spring-Komponente in Azure Container Apps. Migrieren Sie dann Ihre Konfiguration mit den folgenden Schritten:
Erstellen Sie im Verzeichnis src/main/resources der Anwendung die Datei bootstrap.yml mit den folgenden Inhalten:
spring: application: name: <your-application-name>
Erstellen Sie im Git-Konfigurationsrepository die Datei <Name-Ihrer-Anwendung>.yml mit demselben Namen für
your-application-name
wie im vorherigen Schritt. Verschieben Sie die Einstellungen aus der Datei application.yml in src/main/resources in die neu erstellte Datei. Wenn die Einstellungen zuvor in einer PROPERTIES-Datei gespeichert waren, müssen sie zunächst in YAML konvertiert werden. Für diese Konvertierung finden Sie Onlinetools oder IntelliJ-Plug-Ins.Erstellen Sie im obigen Verzeichnis die Datei application.yml. Sie können diese Datei verwenden, um Einstellungen und Ressourcen zu definieren, die für alle Anwendungen in der Azure Container Apps-Umgebung freigegeben werden. Diese Einstellungen umfassen in der Regel u. a. Datenquellen, Protokollierungseinstellungen und die Konfiguration des Spring Boot-Aktors.
Commiten und pushen Sie diese Änderungen in das Git-Repository.
Entfernen Sie die Datei application.properties oder application.yml aus der Anwendung.
Fügen Sie gegebenenfalls die verwaltete Komponente Admin für Spring hinzu, um eine Verwaltungsschnittstelle für Spring Boot-Webanwendungen zu aktivieren, die Aktuatorendpunkte verfügbar machen. Weitere Informationen finden Sie unter Konfigurieren der Komponente „Spring Boot Admin“ in Azure Container Apps.
Fügen Sie ggf. eine Bereitstellungspipeline für automatische, konsistente Bereitstellungen hinzu. Es sind Anweisungen für Azure Pipelines und GitHub Actions verfügbar.
Ziehen Sie die Verwendung von Container App-Revisionen, Revisionsbezeichnungen und Gewichtungen für eingehenden Datenverkehr in Betracht, um eine Blau-Grün-Bereitstellung zu ermöglichen. So können Sie Codeänderungen in der Produktion testen, bevor sie für einige oder alle Ihre Endbenutzer verfügbar gemacht werden. Weitere Informationen finden Sie unter Blau-Grün-Bereitstellung in Azure Container Apps.
Fügen Sie ggf. Dienstbindungen hinzu, um Ihre Anwendung mit unterstützten Azure-Datenbanken zu verbinden. Bei Verwendung dieser Dienstbindungen müssten für Ihre Spring Cloud-Anwendungen keine Verbindungsinformationen mehr angegeben werden (auch keine Anmeldeinformationen).
Erwägen Sie die Aktivierung des Java-Entwicklungsstapels zum Sammeln von wichtigen JVM-Metriken für Ihre Anwendungen. Weitere Informationen finden Sie unter Java-Metriken für Java-Apps in Azure Container Apps.
Fügen Sie zur schnellen Erkennung und Behandlung von Anomalien ggf. Azure Monitor-Warnungsregeln und -Aktionsgruppen hinzu. Weitere Informationen finden Sie unter Einrichten von Warnungen in Azure Container Apps.
Erwägen Sie, Ihre App über die Zonen in der Region zu replizieren, indem Sie Azure Container Apps-Zonenredundanz aktivieren. Für den Datenverkehr erfolgt ein Lastenausgleich, und bei einem Zonenausfall wird der Datenverkehr automatisch an Replikate weitergeleitet. Weitere Informationen zu redundanten Einstellungen finden Sie unter Einblick in Azure Container Apps.
Erwägen Sie, Azure Container Apps durch Verwendung von Web Application Firewall in Application Gateway vor häufigen Exploits und Schwachstellen zu schützen. Weitere Informationen finden Sie unter Schützen von Azure Container Apps mit Web Application Firewall in Application Gateway.