Implementación de una aplicación web de archivo JAR de Spring Boot en Azure App Service en LinuxDeploy a Spring Boot JAR file web app to Azure App Service on Linux

En este artículo se muestra cómo usar el complemento de Maven para Azure App Service Web Apps para implementar una aplicación de Spring Boot empaquetada como un archivo JAR de Java SE en Azure App Service en Linux.This article demonstrates using the Maven Plugin for Azure App Service Web Apps to deploy a Spring Boot application packaged as a Java SE JAR to Azure App Service on Linux. Puede optar por la implementación de Java SE en lugar de Tomcat y archivos WAR cuando desee consolidar las dependencias, el entorno de ejecución y la configuración de la aplicación en un único artefacto implementable.Choose Java SE deployment over Tomcat and WAR files when you want to consolidate your app's dependencies, runtime, and configuration into a single deployable artifact.

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.If you don’t have an Azure subscription, create a free account before you begin.

Requisitos previosPrerequisites

Para realizar los pasos de este tutorial, necesitará tener instalado y configurado lo siguiente:To complete the steps in this tutorial, you'll need to have the following installed and configured:

Instalación e inicio de sesión en la CLI de AzureInstall and sign in to Azure CLI

La manera más sencilla y fácil de obtener el complemento Maven para implementar la aplicación de Spring Boot es con la CLI de Azure.The simplest and easiest way to get the Maven Plugin deploying your Spring Boot application is by using Azure CLI.

Inicie sesión en la cuenta de Azure mediante la CLI de Azure:Sign into your Azure account by using the Azure CLI:

az login

Siga las instrucciones para completar el proceso de inicio de sesión.Follow the instructions to complete the sign-in process.

Clonación de la aplicación de ejemploClone the sample app

En esta sección, va a clonar una aplicación de Spring Boot terminada y a probarla de forma local.In this section, you will clone a completed Spring Boot application and test it locally.

  1. Abra el símbolo del sistema o una ventana de terminal, cree un directorio local para alojar la aplicación de Spring Boot y cambie a dicho directorio, por ejemplo:Open a command prompt or terminal window and create a local directory to hold your Spring Boot application, and change to that directory; for example:

    md C:\SpringBoot
    cd C:\SpringBoot
    

    -- o ---- or --

    md ~/SpringBoot
    cd ~/SpringBoot
    
  2. Clone el proyecto de ejemplo Primeros pasos de Spring Boot en el directorio que creó, por ejemplo:Clone the Spring Boot Getting Started sample project into the directory you created; for example:

    git clone https://github.com/spring-guides/gs-spring-boot
    
  3. Cambie de directorio al del proyecto finalizado, por ejemplo:Change directory to the completed project; for example:

    cd gs-spring-boot/complete
    
  4. Compile el archivo JAR con Maven, por ejemplo:Build the JAR file using Maven; for example:

    mvn clean package
    
  5. Cuándo se haya creado la aplicación web, iníciela con Maven. Por ejemplo:When the web app has been created, start the web app using Maven; for example:

    mvn spring-boot:run
    
  6. Pruebe la aplicación web. Para ello, navegue a ella localmente mediante un explorador web.Test the web app by browsing to it locally using a web browser. Por ejemplo, puede utilizar el siguiente comando si dispone de curl:For example, you could use the following command if you have curl available:

    curl http://localhost:8080
    
  7. Debería ver el mensaje siguiente mostrado: Greetings from Spring Boot!You should see the following message displayed: Greetings from Spring Boot!

Configuración del complemento de Maven para Azure App ServiceConfigure Maven Plugin for Azure App Service

En esta sección, configurará el proyecto de Spring Boot pom.xml para que Maven pueda implementar la aplicación en Azure App Service en Linux.In this section, you will configure the Spring Boot project pom.xml so that Maven can deploy the app to Azure App Service on Linux.

  1. Abra pom.xml en un editor de código.Open pom.xml in a code editor.

  2. En la sección <build> del archivo pom.xml, agregue la siguiente entrada <plugin> dentro de la etiqueta <plugins>.In the <build> section of the pom.xml, add the following <plugin> entry inside the <plugins> tag.

    <plugin>
     <groupId>com.microsoft.azure</groupId>
     <artifactId>azure-webapp-maven-plugin</artifactId>
     <version>1.6.0</version>
    </plugin>
    
  3. Después, puede configurar la implementación, ejecutar el comando mvn azure-webapp:config de Maven en el símbolo del sistema y usar el número para elegir estas opciones en el símbolo del sistema:Then you can configure the deployment, run the maven command mvn azure-webapp:config in the Command Prompt and use the number to choose these options in the prompt:

    • OS: linuxOS: linux
    • javaVersion: jre8javaVersion: jre8
    • runtimeStack: jre8runtimeStack: jre8

Cuando llegue al mensaje Confirm (Y/N) [Confirmar (S/N)], presione y y la configuración se realiza.When you get the Confirm (Y/N) prompt, press 'y' and the configuration is done.

~@Azure:~/gs-spring-boot/complete$ mvn azure-webapp:config
[INFO] Scanning for projects...
[INFO]
[INFO] -----------------< org.springframework:gs-spring-boot >-----------------
[INFO] Building gs-spring-boot 0.1.0
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- azure-webapp-maven-plugin:1.6.0:config (default-cli) @ gs-spring-boot ---
[WARNING] The plugin may not work if you change the os of an existing webapp.
Define value for OS(Default: Linux):
1. linux [*]
2. windows
3. docker
Enter index to use:
Define value for javaVersion(Default: jre8):
1. jre8 [*]
2. java11
Enter index to use:
Define value for runtimeStack(Default: TOMCAT 8.5):
1. TOMCAT 9.0
2. jre8
3. TOMCAT 8.5 [*]
4. WILDFLY 14
Enter index to use: 2
Please confirm webapp properties
AppName : gs-spring-boot-1559091271202
ResourceGroup : gs-spring-boot-1559091271202-rg
Region : westeurope
PricingTier : Premium_P1V2
OS : Linux
RuntimeStack : JAVA 8-jre8
Deploy to slot : false
Confirm (Y/N)? : Y
  1. Agregue la sección <appSettings> a la sección <configuration> de <azure-webapp-maven-plugin> para escuchar en el puerto 80.Add the <appSettings> section to the <configuration> section of <azure-webapp-maven-plugin> to listen on the 80 port.

    <plugin>
       <groupId>com.microsoft.azure</groupId>
       <artifactId>azure-webapp-maven-plugin</artifactId>
       <version>1.6.0</version>
       <configuration>
          <schemaVersion>V2</schemaVersion>
          <resourceGroup>gs-spring-boot-1559091271202-rg</resourceGroup>
          <appName>gs-spring-boot-1559091271202</appName>
          <region>westeurope</region>
          <pricingTier>P1V2</pricingTier>
    
          <!-- Begin of App Settings  -->
          <appSettings>
             <property>
                   <name>JAVA_OPTS</name>
                   <value>-Dserver.port=80</value>
             </property>
          </appSettings>
          <!-- End of App Settings  -->
          ...
         </configuration>
    </plugin>
    

Implementación de la aplicación en AzureDeploy the app to Azure

Una vez que haya configurado todas las opciones en las secciones anteriores de este artículo, estará listo para implementar la aplicación web en Azure.Once you have configured all of the settings in the preceding sections of this article, you are ready to deploy your web app to Azure. Para ello, siga estos pasos:To do so, use the following steps:

  1. En el símbolo del sistema o la ventana de terminal que usó anteriormente, vuelva a compilar el archivo JAR con Maven si ha realizado algún cambio en el archivo pom.xml; por ejemplo:From the command prompt or terminal window that you were using earlier, rebuild the JAR file using Maven if you made any changes to the pom.xml file; for example:

    mvn clean package
    
  2. Implemente la aplicación web en Azure mediante Maven; por ejemplo:Deploy your web app to Azure by using Maven; for example:

    mvn azure-webapp:deploy
    

Maven implementará la aplicación web en Azure; si la aplicación web o el plan de la aplicación web no existen, se crearán.Maven will deploy your web app to Azure; if the web app or web app plan does not already exist, it will be created for you.

Cuando se haya implementado la web, podrá administrarla mediante Azure Portal.When your web has been deployed, you will be able to manage it through the Azure portal.

  • La aplicación web aparecerá en App Services:Your web app will be listed in App Services:

    Aplicación web en la lista de App Services de Azure Portal

  • Y la dirección URL de la aplicación web se mostrará en la sección de información general de la aplicación web:And the URL for your web app will be listed in the Overview for your web app:

    Determinar la dirección URL de la aplicación web

Compruebe que la implementación se realizó correctamente mediante el mismo comando de cURL utilizado antes, utilizando la dirección URL de la aplicación web del portal en lugar de localhost.Verify that the deployment was successful by using the same cURL command as before, using your web app URL from the Portal instead of localhost. Debería ver el mensaje siguiente mostrado: Greetings from Spring Boot!You should see the following message displayed: Greetings from Spring Boot!

Pasos siguientesNext steps

Para más información acerca de Spring y Azure, vaya al centro de documentación de Azure.To learn more about Spring and Azure, continue to the Spring on Azure documentation center.

Recursos adicionalesAdditional Resources

Para más información acerca de las diferentes tecnologías que se tratan en este artículo, consulte los artículos siguientes:For more information about the various technologies discussed in this article, see the following articles: