Einrichten einer Stagingumgebung in Azure Spring Apps
Hinweis
Die Pläne Basic, Standard und Enterprise gelten ab Mitte März 2025 als veraltet und werden über einen Zeitraum von drei Jahren eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie in der Ankündigung zur Einstellung von Azure Spring Apps.
Der Plan Standardverbrauch und dediziert gilt ab dem 30. September 2024 als veraltet und wird nach sechs Monaten vollständig eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie unter Migrieren des Plans „Standardverbrauch und dediziert“ von Azure Spring Apps zu Azure Container Apps.
Dieser Artikel gilt für: ✔️ Java ❌ C#
Dieser Artikel gilt für:❌ Basic ✔️ Standard ✔️ Enterprise
In diesem Artikel wird erläutert, wie Sie unter Verwendung des Blau-Grün-Bereitstellungsmusters in Azure Spring Apps eine Stagingbereitstellung einrichten. Die Blau-Grün-Bereitstellung ist ein Azure DevOps-Muster für Continuous Delivery, bei dem eine vorhandene Version (blau) live bleibt, während eine neue Version (grün) bereitgestellt wird. In diesem Artikel wird außerdem gezeigt, wie Sie diese Stagingbereitstellung in die Produktion überführen, ohne die Produktionsbereitstellung zu ändern.
Voraussetzungen
- Eine vorhandene Azure Spring Apps-Instanz im Standardtarif.
- Azure-Befehlszeilenschnittstelle.
In diesem Artikel wird eine Anwendung verwendet, die mit Spring Initializr erstellt wurde. Wenn Sie für dieses Beispiel eine andere Anwendung verwenden möchten, nehmen Sie am öffentlichen Teil der Anwendung eine Änderung vor, um die Staging- von der Produktionsbereitstellung zu unterscheiden.
Tipp
Azure Cloud Shell ist eine kostenlose interaktive Shell, mit der Sie die Anweisungen in diesem Artikel ausführen können. Sie verfügt über allgemeine vorinstallierte Azure-Tools, u. a. die aktuellen Versionen von Git, JDK, Maven und der Azure-Befehlszeilenschnittstelle. Wenn Sie bei Ihrem Azure-Abonnement angemeldet sind, starten Sie Ihre Cloud Shell-Instanz. Weitere Informationen finden Sie in der Übersicht über Azure Cloud Shell.
Befolgen Sie die Anweisungen in den nächsten Abschnitten, um die Blau-Grün-Bereitstellungen in Azure Spring Apps einzurichten.
Installieren der Azure CLI-Erweiterung
Führen Sie den folgenden Befehl aus, um die Azure Spring Apps-Erweiterung für die Azure CLI zu installieren:
az extension add --name spring
Vorbereiten der App und der Bereitstellungen
Führen Sie die folgenden Schritte aus, um die Anwendung zu erstellen:
Generieren Sie den Code für die Beispiel-App mithilfe von Spring Initializr mit dieser Konfiguration.
Laden Sie den Code herunter.
Fügen Sie folgende Quelldatei HelloController.java dem Ordner „*\src\main\java\com\example\hellospring“ hinzu:
package com.example.hellospring; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RequestMapping; @RestController public class HelloController { @RequestMapping("/") public String index() { return "Greetings from Azure Spring Apps!"; } }
Erstellen Sie die JAR-Datei:
mvn clean package -DskipTests
Erstellen Sie die App in Ihrer Azure Spring Apps-Instanz:
az spring app create \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-instance-name> \ --name demo \ --runtime-version Java_17 \ --assign-endpoint
Stellen Sie die App in Azure Spring Apps bereit:
az spring app deploy \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-instance-name> \ --name demo \ --artifact-path target\hellospring-0.0.1-SNAPSHOT.jar
Ändern Sie den Code für die Stagingbereitstellung:
package com.example.hellospring; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RequestMapping; @RestController public class HelloController { @RequestMapping("/") public String index() { return "Greetings from Azure Spring Apps! THIS IS THE GREEN DEPLOYMENT"; } }
Erstellen Sie die JAR-Datei neu:
mvn clean package -DskipTests
Erstellen Sie die Grün-Bereitstellung:
az spring app deployment create \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-instance-name> \ --app demo \ --name green \ --runtime-version Java_17 \ --artifact-path target\hellospring-0.0.1-SNAPSHOT.jar
Anzeigen von Apps und Bereitstellungen
Führen Sie die folgenden Schritte aus, um bereitgestellte Apps anzuzeigen.
Wechseln Sie im Azure-Portal zu Ihrer Azure Spring Apps-Instanz.
Öffnen Sie im Navigationsbereich den Bereich Apps, um die Apps für Ihre Dienstinstanz anzuzeigen.
Wählen Sie eine App aus, um Details anzuzeigen.
Öffnen Sie Bereitstellungen, um alle Bereitstellungen der App anzuzeigen. Das Raster zeigt die Produktions- und Stagingbereitstellungen.
Klicken Sie auf die URL, um die aktuell bereitgestellte Anwendung zu öffnen.
Klicken Sie in der Spalte Zustand auf Produktion, um die Standard-App anzuzeigen.
Klicken Sie in der Spalte Zustand auf Staging, um die Staging-App anzuzeigen.
Tipp
Vergewissern Sie sich, dass der Testendpunkt mit einem Schrägstrich (/) endet, um sicherzustellen, dass die CSS-Datei richtig geladen wird. Wenn Sie zum Anzeigen der Seite Anmeldeinformationen im Browser eingeben müssen, verwenden Sie URL-Decodierung, um den Testendpunkt zu decodieren. Die URL-Decodierung gibt eine URL im Format https://\<username>:\<password>@\<cluster-name>.test.azuremicroservices.io/demo/green
zurück. Verwenden Sie dieses Format für den Zugriff auf Ihren Endpunkt. Wenn Sie die Standardauthentifizierung für Ihren Testendpunkt deaktivieren möchten, führen Sie den folgenden Azure CLI-Befehl aus: az spring app update --resource-group <resource-group-name> --service <Azure-Spring-Apps-instance-name> --name demo --disable-test-endpoint-auth true
Hinweis
Die Konfigurationsservereinstellungen gelten sowohl für Ihr Stagingumgebung als auch für Ihre Produktionsumgebung. Wenn Sie beispielsweise für den Kontextpfad (server.servlet.context-path) für Ihr App-Demo im Konfigurationspfad somepath festlegen, wird der Pfad zu Ihrer grünen Bereitstellung in https://\<username>:\<password>@\<cluster-name>.test.azuremicroservices.io/demo/green/somepath/...
geändert.
Wenn Sie jetzt die öffentliche App Demo-Instanz aufrufen, wird die alte Seite ohne die Änderung angezeigt.
Festlegen der grünen Bereitstellung als Produktionsumgebung
Nachdem Sie die Änderung in Ihrer Stagingumgebung überprüft haben, können Sie sie in die Produktion überführen. Wählen Sie auf der Seite Apps>Bereitstellungen die Anwendung aus, die sich derzeit in der Produktion befindet.
Klicken Sie auf die Auslassungspunkte nach dem Registrierungsstatus der grünen Bereitstellung, und klicken Sie dann auf Als Produktion festlegen.
Stellen Sie sicher, dass die URL der App Ihre Änderungen widerspiegelt.
Hinweis
Sobald die grüne Bereitstellung als Produktionsumgebung festgelegt wurde, wird die vorherige Bereitstellung zur Stagingbereitstellung.
Ändern der Stagingbereitstellung
Wenn Sie mit Ihrer Änderung nicht zufrieden sind, können Sie Ihren Anwendungscode ändern, ein neues JAR-Paket erstellen und dieses mithilfe der Azure CLI in Ihre grüne Bereitstellung hochladen:
az spring app deploy \
--resource-group <resource-group-name> \
--service <service-instance-name> \
--name demo \
--deployment green \
--artifact-path demo.jar
Löschen der Stagingbereitstellung
Rufen Sie die Seite für Ihre Stagingbereitstellung auf, und klicken Sie auf Löschen, um Ihre Stagingbereitstellung über das Azure-Portal zu löschen.
Alternativ können Sie die Stagingbereitstellung über die Azure CLI löschen, indem Sie den folgenden Befehl ausführen:
az spring app deployment delete \
--resource-group <resource-group-name> \
--service <service-instance-name> \
--name <staging-deployment-name> \
--app demo