Die zuvor entwickelte Java-Anwendung soll nun in der Azure Cloud bereitgestellt (deployt) werden. Anstatt wie bisher ĂĽber das Azure-Portal zu arbeiten, erfolgt die gesamte Einrichtung ĂĽber die Azure CLI. Dabei werden Ressourcen erstellt, konfiguriert und mit der Datenbank verbunden.
1
Registrierung des Resource Providers
Damit Azure weiss, welche Dienste im Abonnement verfügbar sein sollen, muss der benötigte Resource Provider (Microsoft.Web) registriert werden. Dies ist notwendig, um z. B. Web-Apps oder App Services erstellen zu können:
2
App Service Plan erstellen
Ein App Service Plan dient als Container fĂĽr Web-Anwendungen und legt Skalierungsoptionen fest. Er wird mit folgendem Befehl erstellt:
az appservice plan create \
--name <app-service-name> \
--resource-group <resource-group-name> \
--sku B1 --is-linux
3
Web App erstellen
Darauf basierend wird die Web App (Java-Anwendung) angelegt:
Die Konsole zeigt eine URL (z. B. https://<app-name>.azurewebsites.net) – unter dieser wird die Anwendung später erreichbar sein.
4
Deployen der Java-Anewndung
Die Anwendung wird mittels .jar-Datei auf die Web App geladen:
az webapp deploy \
--resource-group <resource-group-name> \
--name <app-name> \
--src-path <path-to-jar-file> \
--type jar
Falls der erste Versuch fehlschlägt, liegt dies oft an falschen Datenbankverbindungen.
5
Fehleranalyse
Bei Problemen hilft das Live-Loggen der Anwendung:
az webapp log tail -g <resource-group-name> -n <app-name>
Ein typischer Fehler: Die Anwendung versucht, lokal auf eine Datenbank zuzugreifen (localhost:3306), obwohl sie in der Cloud läuft.
6
Konfiguration der Datenbankverbindung
Die Anwendung muss mit der Azure-Datenbank verbunden werden. Dazu werden die Verbindungsdaten als Umgebungsvariablen gesetzt:
az webapp config appsettings set \
--resource-group <resource-group-name> \
--name <app-name> \
--settings \
SPRING_DATASOURCE_URL= \
SPRING_DATASOURCE_USERNAME=<username> \
SPRING_DATASOURCE_PASSWORD=<password>
7
TLS deaktivieren
Standardmässig verlangt Azure MySQL eine verschlüsselte Verbindung. Für diesen Auftrag wird TLS deaktiviert:
az mysql flexible-server parameter set \
--resource-group <resource-group-name> \
--server-name <mysql-server-name> \
--name require_secure_transport \
--value OFF
In Produktivsystem niemals TLS deaktivieren
8
Anwendung erneut deployen
Nach erfolgreicher Konfiguration wird die .jar-Datei nochmals deployed. Wenn alles korrekt ist, ist die Anwendung über die angegebene URL erreichbar – zum Beispiel via Swagger-UI.