Beim Ausführen von Spring Boot-Webanwendungen auf PaaS habe ich hauptsächlich Heroku und Cloud Foundry (PWA usw.) verwendet, da diese "einfach" sind. Als ich jedoch neulich nach Microsoft Azure recherchierte, fand ich ein offizielles Dokument, das problemlos für App Service bereitgestellt werden kann. Deshalb habe ich es ausprobiert.
https://docs.microsoft.com/ja-jp/java/azure/spring-framework/deploy-spring-boot-java-app-with-maven-plugin
Als ich es versuchte, war es wirklich "einfach"!
Ich habe es mit einem einfacheren Verfahren als dem obigen Dokument bereitgestellt, daher werde ich es zusammenfassen. Die Hauptunterschiede im Verfahren sind wie folgt.
Klicken Sie hier für den Code. https://github.com/kikutaro/AzureSpringBoot
Erstellen Sie es mit "** Spring Initializr Java Support **" in der Visual Studio Code-Erweiterung.
** Wählen Sie "Ansicht" ** -> ** "Befehlspalette" **
Die MS-Dokumentation basiert auf Maven. Wählen Sie daher ** "Spring Initializr: Generate a Maven Project" **
Wählen Sie Java
Geben Sie die GroupId ein. Ich habe "tech.kikutaro" gewählt.
Geben Sie die Artefakt-ID ein. Ich entschied mich für "Azure Spring Boot".
Wählen Sie 2.0.5 für Spring Boot
Wählen Sie zwei Abhängigkeiten aus, Web und DevTools
das ist alles. Nach dem Speichern wird der folgende Dialog angezeigt. Öffnen Sie es mit "Öffnen".
Schreiben Sie vor der Bereitstellung in Azure einen einfachen Code und überprüfen Sie den vorliegenden Vorgang. Hier soll der Code nur "Hallo, Azure!" In REST GET zurückgeben.
DemoApplication.java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@GetMapping("/hello")
public String hello() {
return "Hello, Azure!";
}
}
Bestätigen Sie den Start.
.\mvnw.cmd clean package
.\mvnw.cmd spring-boot:run
Es ist in Ordnung, wenn Sie auf die lokale Umgebung zugreifen und den Vorgang überprüfen können.
MS-Dokument führt zu einer Kriegsverpackung Wir haben Möglichkeiten entwickelt, wie es mit anderen Servlets wie Jetty funktioniert, z. B. das Wechseln zu, das Hinzufügen von Tomcat-Abhängigkeiten und das Erben von SpringBootServletInitializer. Diesmal haben wir diesen Bereich jedoch nicht geändert. ..
Eigentlich sind die folgenden Einstellungen nicht erforderlich, aber ich habe sie dieses Mal hinzugefügt, um zu verhindern, dass die URL der bereitgestellten Anwendung kollidiert.
pom.xml
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<!-- add from -->
<maven.build.timestamp.format>yyyyMMddHHmm</maven.build.timestamp.format>
<!-- add to -->
</properties>
Fügen Sie die Einstellungen für das Azure-Webapp-Maven-Plugin hinzu. In der Dokumentation steht "<! - Überprüfen Sie die neueste Version auf Maven Central->".
Als ich versuchte, 1.1.0 als erstes Dokument zu verwenden und den DeploymentType auf jar zu setzen, trat außerdem ein Fehler auf. Es scheint, dass DeploymentType JAR nicht unterstützt.
Mit der neuesten Version 1.4.0 konnte ich das Glas problemlos angeben.
pom.xml
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- add from -->
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-webapp-maven-plugin</artifactId>
<version>1.4.0</version>
<configuration>
<resourceGroup>maven-projects</resourceGroup>
<appName>${project.artifactId}-${maven.build.timestamp}</appName>
<region>westus</region>
<javaVersion>1.8</javaVersion>
<deploymentType>jar</deploymentType>
</configuration>
</plugin>
<!-- add to -->
</plugins>
</build>
Ich habe Azure CLI vor der Bereitstellung installiert.
Wenn Sie sich mit der Azure-CLI anmelden, wird der Browser automatisch gestartet und der Anmeldebildschirm angezeigt. Geben Sie Ihren Benutzernamen und Ihr Passwort ein, um sich anzumelden.
python
az login
Sie müssen lediglich bereitstellen.
.\mvnw.cmd clean package
.\mvnw.cmd azure-webapp:deploy
Warten Sie, bis die Bereitstellung abgeschlossen ist.
Öffnen Sie bei Erfolg den Azure App-Dienst, um die bereitgestellte Anwendung anzuzeigen.
Klicken Sie nach Auswahl der Anwendung auf den oben rechts angezeigten URL-Link, um die erstellte Seite zu öffnen.
gerührt!
Es sieht lang aus, weil ich das Verfahren ausführlich geschrieben habe, aber es war so einfach wie die Bereitstellung auf Heroku usw.
Recommended Posts