Übung: Bereitstellen der Spring Boot Redis-Anwendung in Azure
Da nun alles lokal ausgeführt wird, können Sie die Anwendung in der Cloud bereitstellen und ihr Verhalten in der Produktion testen.
Erstellen einer Azure App Service-Instanz
Erstellen Sie eine Azure App Service-Instanz, um die Anwendung zu hosten. Verwenden Sie den folgenden Azure CLI-Code zum Erstellen eines einfachen App Service-Plans unter Linux, und fügen Sie dann eine Instanz von Java on App Service zu diesem Plan hinzu.
Um Java 11 oder Java 17 anstelle von Java 8 zu verwenden, nutzen Sie "JAVA|<version>-java<version>"
anstelle von "JAVA|8-jre8"
als Webanwendungsruntime.
az appservice plan create \
--resource-group $AZ_RESOURCE_GROUP \
--name $AZ_REDIS_NAME-webapp-plan \
--is-linux \
--sku B1
az webapp create \
--resource-group $AZ_RESOURCE_GROUP \
--name $AZ_REDIS_NAME-webapp \
--runtime "JAVA|8-jre8" \
--plan $AZ_REDIS_NAME-webapp-plan
Hinweis
Im vorherigen Code wird die Variable $AZ_REDIS_NAME
wiederverwendet, um den App Service-Plan und die App Service-Instanz zu benennen. Sie können jedoch verschiedene Namen verwenden. Der Name der App Service-Instanz ist Teil der URL, die für Azure eindeutig sein muss.
Sie können den nächsten Schritt ausführen, während diese Bereitstellung abgeschlossen wird.
Bereitstellen der Spring Boot-Anwendung in Azure App Service
Fügen Sie der Datei pom.xml Ihres Projekts im Abschnitt
<plugins>
das folgende neue Plug-In hinzu:<plugin> <groupId>com.microsoft.azure</groupId> <artifactId>azure-webapp-maven-plugin</artifactId> <version>2.11.0</version> <configuration> <schemaVersion>V2</schemaVersion> <resourceGroup>${env.AZ_RESOURCE_GROUP}</resourceGroup> <appName>${env.AZ_REDIS_NAME}-webapp</appName> <deployment> <resources> <resource> <directory>${project.basedir}/target</directory> <includes> <include>*.jar</include> </includes> </resource> </resources> </deployment> </configuration> </plugin>
Hinweis
In der obigen Konfiguration verwenden Sie die Umgebungsvariablen, die Sie zuvor konfiguriert haben. Damit diese Konfiguration funktioniert, müssen die Variablen
$AZ_RESOURCE_GROUP
und$AZ_REDIS_NAME
korrekt eingerichtet sein.Führen Sie nach Abschluss der App Service-Bereitstellung den folgenden Befehl aus, um Ihre Anwendung zu packen und in Azure bereitzustellen:
./mvnw package azure-webapp:deploy
Wenn die Bereitstellung erfolgreich abgeschlossen wurde, wird die folgende Zeile zurückgegeben:
Successfully deployed the artifact to https://<redisName>-webapp.azurewebsites.net
Notieren Sie sich die URL Ihrer ausgeführten Anwendung, wie in der vorherigen Ausgabe gezeigt, um sie im nächsten Abschnitt zu verwenden.
Testen der Anwendung in Azure
Verwenden Sie Ihre Anwendungs-URL, um die gleichen Client-URL-Befehle (cURL) in der Cloud auszuführen, die Sie auf Ihrem lokalen Server genutzt haben.
Führen Sie den folgenden Befehl aus, um ein Datenelement hinzuzufügen:
curl -d '{"description":"another description", "details":"some more details"}' -H "Content-Type: application/json" -X POST https://$AZ_REDIS_NAME-webapp.azurewebsites.net
Führen Sie Folgendes aus, um Daten abzurufen:
curl https://$AZ_REDIS_NAME-webapp.azurewebsites.net
Führen Sie den folgenden Befehl mehrmals aus, um Ihre Sitzung zu erhöhen:
curl -b cookie.txt -c cookie.txt https://$AZ_REDIS_NAME-webapp.azurewebsites.net/session
Der lokale Server und der Clouddienst verwenden dieselbe Redis-Instanz, um geclustert zu sein. Daten, die Sie in eine Instanz schreiben, sind in der anderen Instanz ebenfalls verfügbar. Der Clouddienst kann auch aufskaliert werden, indem weitere Knoten hinzugefügt werden, die alle dieselbe Redis-Instanz verwenden, um sowohl Unternehmensdaten als auch Sitzungsdaten zu speichern.