[JAVA] Spring Boot sur Microsoft Azure

Lors de l'exécution d'applications Web Spring Boot sur PaaS, j'ai principalement utilisé Heroku et Cloud Foundry (PWA, etc.) car ils sont "faciles". Cependant, lorsque j'ai fait des recherches sur Microsoft Azure l'autre jour, j'ai trouvé un document officiel indiquant qu'il peut être facilement déployé sur App Service, alors je l'ai essayé.

https://docs.microsoft.com/ja-jp/java/azure/spring-framework/deploy-spring-boot-java-app-with-maven-plugin

Quand je l'ai essayé, c'était vraiment "facile"! 2018-09-14_23h01_12.png

Je l'ai déployé avec une procédure plus simple que le document ci-dessus, je vais donc le résumer. Les principales différences dans la procédure sont les suivantes.

Cliquez-ici pour le code. https://github.com/kikutaro/AzureSpringBoot

Environnement de développement

procédure

Création de projet Spring Boot

Créez-le à l'aide de "** Spring Initializr Java Support **" dans l'extension Visual Studio Code.

** Sélectionnez "Affichage" ** -> ** "Palette de commandes" ** 2018-09-13_20h52_50.png

La documentation MS est basée sur Maven, alors sélectionnez ** "Spring Initializr: Generate a Maven Project" ** 2018-09-12_23h14_23.png

Sélectionnez Java 2018-09-12_23h14_49.png

Entrez le GroupId. J'ai choisi "tech.kikutaro". 2018-09-14_22h20_39.png

Entrez le ArtifactId. J'ai choisi "azur spring boot". 2018-09-14_22h21_32.png

Sélectionnez 2.0.5 pour Spring Boot 2018-09-12_23h18_40.png

Sélectionnez deux dépendances, Web et DevTools 2018-09-12_23h18_59.png

2018-09-12_23h19_18.png

c'est tout. Après l'enregistrement, la boîte de dialogue suivante s'affiche. Ouvrez-le avec "Open it". 2018-09-12_23h36_28.png

Contrôle de fonctionnement

Avant de déployer sur Azure, écrivez un code simple et vérifiez l'opération en cours. Ici, le code est juste pour retourner "Hello, Azure!" Dans REST GET.

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!";
	}
}

Confirmez le démarrage.

.\mvnw.cmd clean package
.\mvnw.cmd spring-boot:run

C'est OK si vous pouvez accéder à l'environnement local et vérifier le fonctionnement.

2018-09-13_00h10_16.png

Prêt à être déployé sur Azure

Document MS emballage de guerres Nous avons mis au point des moyens de le faire fonctionner avec d'autres servlets tels que jetty, tels que le passage à, l'ajout d'une dépendance tomcat, l'héritage de SpringBootServletInitializer, mais cette fois, nous avons continué sans changer cette zone. ..

En fait, les paramètres suivants ne sont pas obligatoires, mais je les ai ajoutés cette fois pour éviter que l'URL de l'application déployée n'entre en collision.

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>

Ajoutez les paramètres pour azure-webapp-maven-plugin. La documentation dit "<! - Vérifiez la dernière version sur Maven Central->".

De plus, lorsque j'ai essayé d'utiliser 1.1.0 comme premier document et de définir le deploymentType sur jar, une erreur s'est produite. Il semble que deploymentType ne prend pas en charge jar.

2018-09-14_23h16_29.png

Avec la dernière version 1.4.0, j'ai pu spécifier le fichier jar sans aucun problème.

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>

Déployer sur Azure

J'ai installé Azure CLI avant le déploiement.

Lorsque vous vous connectez avec Azure CLI, le navigateur démarre automatiquement et l'écran de connexion s'affiche. Entrez votre nom d'utilisateur et mot de passe pour vous connecter.

python


az login

Tout ce que vous avez à faire est de déployer.

.\mvnw.cmd clean package
.\mvnw.cmd azure-webapp:deploy

Attendez la fin du déploiement. 2018-09-14_23h44_07.png

En cas de succès, ouvrez Azure App Service pour voir l'application déployée.

2018-09-14_23h12_54.png

Après avoir sélectionné l'application, cliquez sur le lien URL affiché en haut à droite pour ouvrir la page créée.

2018-09-14_23h14_45.png

déplacé!

2018-09-14_23h01_12.png

Cela semble long car j'ai écrit la procédure en détail, mais c'était aussi simple que de déployer sur Heroku, etc.

Recommended Posts

Spring Boot sur Microsoft Azure
Essayez Spring Boot sur Mac
gRPC sur Spring Boot avec grpc-spring-boot-starter
Essayez d'exécuter Spring Boot sur Kubernetes
Création d'un environnement de développement Spring Boot dans Vagrant
Configuration minimale pour exécuter l'application Spring Boot sur Azure Web Apps
Mémo de construction de l'environnement Spring Boot sur Mac
Défi Spring Boot
Forme de botte de printemps
Spring Boot Rappelez-vous
gae + botte à ressort
Déployer l'application Spring Boot sur Elastic Beanstalk
Fiche d'apprentissage SPRING BOOT 01
Botte de printemps + Heroku Postgres
Rédaction de mémo de démarrage de printemps (1)
Première botte à ressort (DI)
Fiche d'apprentissage SPRING BOOT 02
Aide-mémoire Spring Boot2
Gestion des exceptions Spring Boot
Connectez-vous aux applications Web Spring Boot sur la plate-forme Microsoft ID
Mappage du servlet Spring Boot
Environnement de développement-développement Spring Boot-
Procédure d'apprentissage Spring Boot
Apprentissage de Spring Boot [Début]
Rédaction de mémos de démarrage de printemps (2)
Résumé du document Spring Boot 2.2
[Spring Boot] DataSourceProperties $ DataSourceBeanCreationException
Disponibilité de l'application Spring Boot 2.3
Tutoriels Spring Boot Sujets
Télécharger avec Spring Boot
Déployer le projet Spring Boot sur Tomcat dans XAMPP
[Spring Boot] Construction de l'environnement (macOS)
Définir le paramètre contextuel dans Spring Boot
Essayez Spring Boot de 0 à 100.
Générer un code à barres avec Spring Boot
Hello World avec Spring Boot
Implémenter GraphQL avec Spring Boot
Calendrier des tâches du didacticiel Spring Boot
Spring 5 et Spring Boot 2 Procédure de préparation pratique
Démarrez avec Spring Boot
Bonjour tout le monde avec Spring Boot!
Multi-projets Spring Boot 2 avec Gradle
[Spring Boot] Création d'applications Web
[Java] Déployer l'application Spring Boot sur Azure App Service
Exécutez LIFF avec Spring Boot
Connexion SNS avec Spring Boot
Paramètres d'échange à chaud Spring Boot
[Java] Thymeleaf Basic (Spring Boot)
Introduction à Spring Boot ① ~ DI ~
Téléchargement de fichiers avec Spring Boot
Spring Boot commençant par copie
Introduction à Spring Boot ② ~ AOP ~
Application Java CICS-Run - (4) Application Spring Boot
Spring Boot à partir de Docker
Spring Boot + Springfox springfox-boot-starter 3.0.0 Utilisation
[Spring Security] Spring Security sur GAE (SE)
Conseils relatifs à Spring Boot DB
Hello World avec Spring Boot
Définir des cookies avec Spring Boot
[Spring Boot] Recette de processus de pagination facile