Inicio rápido: Creación de una aplicación de Java en Azure App Service

En esta guía de inicio rápido se muestra cómo usar el complemento de Maven para Azure App Service Web Apps para implementar una aplicación web de Java en un servidor Tomcat de Linux en Azure App Service. App Service proporciona un servicio de hospedaje de aplicaciones web muy escalable y con aplicación de revisiones en modo automático. Use las pestañas para cambiar entre Tomcat, JBoss o las instrucciones del servidor insertado (Java SE).

Screenshot of Maven Hello World web app running in Azure App Service.

Si Maven no es su herramienta de desarrollo preferida, consulte nuestros tutoriales análogos para desarrolladores de Java:

Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.

1: Uso de Azure Cloud Shell

En Azure se hospeda Azure Cloud Shell, un entorno de shell interactivo que puede utilizar mediante el explorador. Puede usar Bash o PowerShell con Cloud Shell para trabajar con los servicios de Azure. Puede usar los comandos preinstalados de Cloud Shell para ejecutar el código de este artículo sin tener que instalar nada en su entorno local.

Para iniciar Azure Cloud Shell:

Opción Ejemplo o vínculo
Seleccione Pruébelo en la esquina superior derecha de un bloque de código o de comandos. Solo con seleccionar Pruébelo no se copia automáticamente el código o comando en Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
Vaya a https://shell.azure.com o seleccione el botón Iniciar Cloud Shell para abrir Cloud Shell en el explorador. Button to launch Azure Cloud Shell.
Seleccione el botón Cloud Shell en la barra de menús de la esquina superior derecha de Azure Portal. Screenshot that shows the Cloud Shell button in the Azure portal

Para usar Azure Cloud Shell:

  1. Inicie Cloud Shell.

  2. Seleccione el botón Copiar en un bloque de código (o bloque de comandos) para copiar el código o comando.

  3. Pegue el código o comando en la sesión de Cloud Shell. Para ello, seleccione Ctrl+Mayús+V en Windows y Linux, o bien seleccione Cmd+Mayús+V en macOS.

  4. Seleccione Enter para ejecutar el código o comando.

2. Creación de una aplicación Java

Ejecute el siguiente comando de Maven en el símbolo del sistema de Cloud Shell para crear una aplicación denominada helloworld:

mvn archetype:generate "-DgroupId=example.demo" "-DartifactId=helloworld" "-DarchetypeArtifactId=maven-archetype-webapp" "-DarchetypeVersion=1.4" "-Dversion=1.0-SNAPSHOT"

A continuación, cambie el directorio de trabajo a la carpeta del proyecto:

cd helloworld

3. Configuración del complemento Maven

El proceso de implementación en Azure App Service usa sus credenciales de Azure desde la CLI de Azure automáticamente. El complemento Maven se autentica con OAuth o el inicio de sesión del dispositivo si la CLI de Azure no está instalada localmente. Para más información, consulte Autenticación con los complementos de Maven.

Ejecute el siguiente comando de Maven para configurar la implementación. Este comando le ayuda a configurar el sistema operativo de App Service, la versión de Java y la versión de Tomcat.

mvn com.microsoft.azure:azure-webapp-maven-plugin:2.12.0:config
  1. En Crear nueva configuración de ejecución, escriba Y y, a continuación, presione Entrar.

  2. En Definir valor para el sistema operativo, escriba 1 para Windows o 2 para Linux y, a continuación, presione Entrar.

  3. En Definir valor para javaVersion, escriba 3 para Java 17 y, a continuación, presione Entrar.

  4. En Definir valor para webContainer, escriba 1 para Tomcat 10.0 y, a continuación, presione Entrar.

  5. En Definir valor para pricingTier, escriba 9 para P1v2 y, a continuación, presione Entrar.

  6. En Confirmar, escriba Y y, a continuación, presione Entrar.

    Please confirm webapp properties
    AppName : helloworld-1690440759246
    ResourceGroup : helloworld-1690440759246-rg
    Region : centralus
    PricingTier : P1v2
    OS : Linux
    Java Version: Java 17
    Web server stack: Tomcat 10.0
    Deploy to slot : false
    Confirm (Y/N) [Y]: 
    [INFO] Saving configuration to pom.
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  13.069 s
    [INFO] Finished at: 2023-07-27T06:52:48Z
    [INFO] ------------------------------------------------------------------------
    

Una vez que haya confirmado las opciones, el complemento agregará el elemento del complemento anterior y la configuración necesaria al archivo pom.xml del proyecto que configura la aplicación web para que se ejecute en Azure App Service.

La parte pertinente del archivo pom.xml debe ser similar al ejemplo siguiente.

<build>
    <plugins>
        <plugin>
            <groupId>com.microsoft.azure</groupId>
            <artifactId>>azure-webapp-maven-plugin</artifactId>
            <version>x.xx.x</version>
            <configuration>
                <schemaVersion>v2</schemaVersion>
                <resourceGroup>your-resourcegroup-name</resourceGroup>
                <appName>your-app-name</appName>
            ...
            </configuration>
        </plugin>
    </plugins>
</build>           

Las configuraciones de App Service se pueden modificar directamente en el archivo pom.xml. Algunas configuraciones comunes se enumeran en la tabla siguiente:

Propiedad Obligatorio Descripción Versión
<schemaVersion> false Especifique la versión del esquema de configuración. Los valores admitidos son: v1, v2. 1.5.2
<subscriptionId> false Especifique el identificador de suscripción. 0.1.0+
<resourceGroup> true Grupo de recursos de Azure para la aplicación web. 0.1.0+
<appName> true El nombre de la aplicación web. 0.1.0+
<region> false Especifica la región para hospedar la aplicación web; el valor predeterminado es centralus. Todas las regiones válidas en la sección Regiones admitidas. 0.1.0+
<pricingTier> false El plan de tarifa de la aplicación web. El valor predeterminado es P1V2 para cargas de trabajo de producción, mientras que B2 es el mínimo recomendado para desarrollo y pruebas de Java. Para más información, consulte Precios de App Service 0.1.0+
<runtime> false Configuración del entorno en runtime. Para obtener más información, consulte Detalles de configuración. 0.1.0+
<deployment> false Configuración de implementación. Para obtener más información, consulte Detalles de configuración. 0.1.0+

Para obtener la lista completa de configuraciones, consulte la documentación de referencia del complemento. Todos los complementos de Azure Maven comparten un conjunto común de configuraciones. Para ver estas configuraciones, consulte Configuraciones comunes. Para conocer las configuraciones específicas de App Service, consulte Aplicación web de Azure: Detalles de configuración.

Tenga cuidado con los valores de <appName> y <resourceGroup> (helloworld-1690440759246 y helloworld-1690440759246-rg en la demostración). Usará estos valores más adelante.

4. Implementación de la aplicación

Con toda la configuración lista en el archivo pom.xml, puede implementar la aplicación de Java en Azure con un solo comando.

mvn package azure-webapp:deploy

Una vez finalizada la implementación, la aplicación está lista en http://<appName>.azurewebsites.net/ (http://helloworld-1690440759246.azurewebsites.net en la demostración). Abra la dirección URL con un explorador web local; debería ver

Screenshot of Maven Hello World web app running in Azure App Service.

¡Enhorabuena! Ha implementado su primera aplicación Java en App Service.

5 - Limpieza de los recursos

En los pasos anteriores, creó recursos de Azure en un grupo de recursos. Si no va a necesitar estos recursos en el futuro, elimine el grupo de recursos del portal, para lo que debe ejecutar el siguiente comando en Cloud Shell:

az group delete --name <your resource group name; for example: helloworld-1690440759246-rg> --yes

Este comando puede tardar varios segundos en ejecutarse.

En esta guía de inicio rápido se muestra cómo usar el complemento de Maven para Azure App Service Web Apps para implementar una aplicación web de Java en un servidor insertado en Azure App Service. App Service proporciona un servicio de hospedaje de aplicaciones web muy escalable y con aplicación de revisiones en modo automático. Use las pestañas para cambiar entre Tomcat, JBoss o las instrucciones del servidor insertado (Java SE).

En este inicio rápido se implementa una aplicación de Spring Boot, Tomcat insertado o Quarkus usando el complemento azure-webapp-maven-plugin.

Nota:

App Service puede hospedar aplicaciones de Spring. En el caso de las aplicaciones de Spring que requieren todos los servicios de Spring, pruebe Azure Spring Apps en su lugar.

Si Maven no es su herramienta de desarrollo preferida, consulte nuestros tutoriales análogos para desarrolladores de Java:

Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.

1: Uso de Azure Cloud Shell

En Azure se hospeda Azure Cloud Shell, un entorno de shell interactivo que puede utilizar mediante el explorador. Puede usar Bash o PowerShell con Cloud Shell para trabajar con los servicios de Azure. Puede usar los comandos preinstalados de Cloud Shell para ejecutar el código de este artículo sin tener que instalar nada en su entorno local.

Para iniciar Azure Cloud Shell:

Opción Ejemplo o vínculo
Seleccione Pruébelo en la esquina superior derecha de un bloque de código o de comandos. Solo con seleccionar Pruébelo no se copia automáticamente el código o comando en Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
Vaya a https://shell.azure.com o seleccione el botón Iniciar Cloud Shell para abrir Cloud Shell en el explorador. Button to launch Azure Cloud Shell.
Seleccione el botón Cloud Shell en la barra de menús de la esquina superior derecha de Azure Portal. Screenshot that shows the Cloud Shell button in the Azure portal

Para usar Azure Cloud Shell:

  1. Inicie Cloud Shell.

  2. Seleccione el botón Copiar en un bloque de código (o bloque de comandos) para copiar el código o comando.

  3. Pegue el código o comando en la sesión de Cloud Shell. Para ello, seleccione Ctrl+Mayús+V en Windows y Linux, o bien seleccione Cmd+Mayús+V en macOS.

  4. Seleccione Intro para ejecutar el código o comando.

2- Obtener la aplicación de ejemplo

  1. Descargue y extraiga la plantilla predeterminada de aplicación web de Spring Boot. Este repositorio se clona para usted cuando ejecuta el comando de la CLI de Springspring boot new my-webapp.

    git clone https://github.com/rd-1-2022/rest-service my-webapp
    
  2. Cambie el directorio de trabajo a la carpeta del proyecto:

    cd my-webapp
    

3. Configuración del complemento Maven

El proceso de implementación en Azure App Service usa sus credenciales de Azure desde la CLI de Azure automáticamente. El complemento Maven se autentica con OAuth o el inicio de sesión del dispositivo si la CLI de Azure no está instalada localmente. Para más información, consulte Autenticación con los complementos de Maven.

Ejecute el siguiente comando de Maven para configurar la implementación. Este comando le ayuda a configurar el sistema operativo de App Service, la versión de Java y la versión de Tomcat.

mvn com.microsoft.azure:azure-webapp-maven-plugin:2.13.0:config
  1. En Crear nueva configuración de ejecución, escriba Y y, a continuación, presione Entrar.

  2. En Definir valor para el sistema operativo, escriba 2 para Linux y, a continuación, presione Entrar.

  3. En Definir valor para javaVersion, escriba 1 para Java 17 y, a continuación, presione Entrar.

  4. En Definir valor para pricingTier, escriba 9 para P1v2 y, a continuación, presione Entrar.

  5. En Confirmar, escriba Y y, a continuación, presione Entrar.

    Please confirm webapp properties
    AppName : <generated-app-name>
    ResourceGroup : <generated-app-name>-rg
    Region : centralus
    PricingTier : P1v2
    OS : Linux
    Java Version: Java 17
    Web server stack: Java SE
    Deploy to slot : false
    Confirm (Y/N) [Y]: y
    [INFO] Saving configuration to pom.
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  8.139 s
    [INFO] Finished at: 2023-07-26T12:42:48Z
    [INFO] ------------------------------------------------------------------------
    

Después de confirmar las opciones, el complemento agrega el elemento de complemento anterior y la configuración necesaria al archivo pom.xml del proyecto que configura la aplicación web para que se ejecute en Azure App Service.

La parte pertinente del archivo pom.xml debe ser similar al ejemplo siguiente.

<build>
    <plugins>
        <plugin>
            <groupId>com.microsoft.azure</groupId>
            <artifactId>>azure-webapp-maven-plugin</artifactId>
            <version>x.xx.x</version>
            <configuration>
                <schemaVersion>v2</schemaVersion>
                <resourceGroup>your-resourcegroup-name</resourceGroup>
                <appName>your-app-name</appName>
            ...
            </configuration>
        </plugin>
    </plugins>
</build>           

Las configuraciones de App Service se pueden modificar directamente en el archivo pom.xml. Algunas configuraciones comunes se enumeran en la tabla siguiente:

Propiedad Obligatorio Descripción Versión
<schemaVersion> false Especifique la versión del esquema de configuración. Los valores admitidos son: v1, v2. 1.5.2
<subscriptionId> false Especifique el identificador de suscripción. 0.1.0+
<resourceGroup> true Grupo de recursos de Azure para la aplicación web. 0.1.0+
<appName> true El nombre de la aplicación web. 0.1.0+
<region> false Especifica la región para hospedar la aplicación web; el valor predeterminado es centralus. Todas las regiones válidas en la sección Regiones admitidas. 0.1.0+
<pricingTier> false El plan de tarifa de la aplicación web. El valor predeterminado es P1V2 para cargas de trabajo de producción, mientras que B2 es el mínimo recomendado para desarrollo y pruebas de Java. Para más información, consulte Precios de App Service 0.1.0+
<runtime> false Configuración del entorno en runtime. Para obtener más información, consulte Detalles de configuración. 0.1.0+
<deployment> false Configuración de implementación. Para obtener más información, consulte Detalles de configuración. 0.1.0+

Para obtener la lista completa de configuraciones, consulte la documentación de referencia del complemento. Todos los complementos de Azure Maven comparten un conjunto común de configuraciones. Para ver estas configuraciones, consulte Configuraciones comunes. Para conocer las configuraciones específicas de App Service, consulte Aplicación web de Azure: Detalles de configuración.

Tenga cuidado con los valores de <appName> y <resourceGroup>. Usará estos valores más adelante.

4. Implementación de la aplicación

Con toda la configuración lista en el archivo pom.xml, puede implementar la aplicación de Java en Azure con un solo comando.

  1. Compile el archivo JAR mediante el siguiente comando:

    mvn clean package
    
  2. Implemente en Azure con el comando siguiente:

    mvn azure-webapp:deploy
    

    Si la implementación se realiza correctamente, verá la siguiente salida:

    [INFO] Successfully deployed the artifact to https://<app-name>.azurewebsites.net
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  02:20 min
    [INFO] Finished at: 2023-07-26T12:47:50Z
    [INFO] ------------------------------------------------------------------------
    

Una vez finalizada la implementación, la aplicación está lista en http://<appName>.azurewebsites.net/. Abra la dirección URL http://<appName>.azurewebsites.net/greeting con el explorador web local (anote la ruta de acceso /greeting) y debería ver:

Screenshot of Spring Boot Hello World web app running in Azure App Service.

Felicidades. Ha implementado su primera aplicación Java en App Service.

5 - Limpieza de los recursos

En los pasos anteriores, creó recursos de Azure en un grupo de recursos. Si no va a necesitar estos recursos en el futuro, elimine el grupo de recursos del portal, para lo que debe ejecutar el siguiente comando en Cloud Shell:

az group delete --name <your resource group name; for example: quarkus-hello-azure-1690375364238-rg> --yes

Este comando puede tardar un par de minutos en ejecutarse.

En esta guía de inicio rápido se muestra cómo usar el complemento de Maven para Azure App Service Web Apps para implementar una aplicación web de Java en un servidor JBoss EAP de Linux en Azure App Service. App Service proporciona un servicio de hospedaje de aplicaciones web muy escalable y con aplicación de revisiones en modo automático. Use las pestañas para cambiar entre Tomcat, JBoss o las instrucciones del servidor insertado (Java SE).

Screenshot of Maven Hello World web app running in Azure App Service.

Si Maven no es su herramienta de desarrollo preferida, consulte nuestros tutoriales análogos para desarrolladores de Java:

Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.

1: Uso de Azure Cloud Shell

En Azure se hospeda Azure Cloud Shell, un entorno de shell interactivo que puede utilizar mediante el explorador. Puede usar Bash o PowerShell con Cloud Shell para trabajar con los servicios de Azure. Puede usar los comandos preinstalados de Cloud Shell para ejecutar el código de este artículo sin tener que instalar nada en su entorno local.

Para iniciar Azure Cloud Shell:

Opción Ejemplo o vínculo
Seleccione Pruébelo en la esquina superior derecha de un bloque de código o de comandos. Solo con seleccionar Pruébelo no se copia automáticamente el código o comando en Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
Vaya a https://shell.azure.com o seleccione el botón Iniciar Cloud Shell para abrir Cloud Shell en el explorador. Button to launch Azure Cloud Shell.
Seleccione el botón Cloud Shell en la barra de menús de la esquina superior derecha de Azure Portal. Screenshot that shows the Cloud Shell button in the Azure portal

Para usar Azure Cloud Shell:

  1. Inicie Cloud Shell.

  2. Seleccione el botón Copiar en un bloque de código (o bloque de comandos) para copiar el código o comando.

  3. Pegue el código o comando en la sesión de Cloud Shell. Para ello, seleccione Ctrl+Mayús+V en Windows y Linux, o bien seleccione Cmd+Mayús+V en macOS.

  4. Seleccione Enter para ejecutar el código o comando.

2. Creación de una aplicación Java

Clone la aplicación de demostración Pet Store (Tienda para mascotas).

git clone https://github.com/Azure-Samples/app-service-java-quickstart

Cambie el directorio al proyecto de tienda de mascotas completado y créelo.

Sugerencia

El ejemplo petstore-ee7 requiere Java 11 o posterior. El proyecto de ejemplo booty-duke-app-service requiere Java 17. Si la versión instalada de Java es inferior a 17, ejecute la compilación desde el directorio petstore-ee7, en lugar de en el nivel superior.

cd app-service-java-quickstart
git checkout 20230308
cd petstore-ee7
mvn clean install

Si ve un mensaje acerca de estar en estado HEAD desasociado, este mensaje es seguro de omitir. Dado que no realizará ninguna confirmación de Git en este inicio rápido, el estado HEAD desasociado es adecuado.

3. Configuración del complemento Maven

El proceso de implementación en Azure App Service usa sus credenciales de Azure desde la CLI de Azure automáticamente. El complemento Maven se autentica con OAuth o el inicio de sesión del dispositivo si la CLI de Azure no está instalada localmente. Para más información, consulte Autenticación con los complementos de Maven.

Ejecute el siguiente comando de Maven para configurar la implementación. Este comando le ayuda a configurar el sistema operativo de App Service, la versión de Java y la versión de Tomcat.

mvn com.microsoft.azure:azure-webapp-maven-plugin:2.12.0:config
  1. En Crear nueva configuración de ejecución, escriba Y y, a continuación, presione Entrar.

  2. En Definir valor para el sistema operativo, escriba 2 para Linux y, a continuación, presione Entrar.

  3. En Definir valor para javaVersion, escriba 2 para Java 11 y, a continuación, presione Entrar.

  4. Para la opción webContainer, escriba 1 para Jbosseap 7 y, a continuación, presione Entrar.

  5. En Definir valor para pricingTier, escriba 1 para P1v3 y, a continuación, presione Entrar.

  6. En Confirmar, escriba Y y, a continuación, presione Entrar.

    Please confirm webapp properties
    AppName : petstoreee7-1690443003536
    ResourceGroup : petstoreee7-1690443003536-rg
    Region : centralus
    PricingTier : P1v3
    OS : Linux
    Java Version: Java 11
    Web server stack: Jbosseap 7
    Deploy to slot : false
    Confirm (Y/N) [Y]: 
    [INFO] Saving configuration to pom.
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  19.914 s
    [INFO] Finished at: 2023-07-27T07:30:20Z
    [INFO] ------------------------------------------------------------------------
    

Una vez que haya confirmado las opciones, el complemento agregará el elemento del complemento anterior y la configuración necesaria al archivo pom.xml del proyecto que configura la aplicación web para que se ejecute en Azure App Service.

La parte pertinente del archivo pom.xml debe ser similar al ejemplo siguiente.

<build>
    <plugins>
        <plugin>
            <groupId>com.microsoft.azure</groupId>
            <artifactId>>azure-webapp-maven-plugin</artifactId>
            <version>x.xx.x</version>
            <configuration>
                <schemaVersion>v2</schemaVersion>
                <resourceGroup>your-resourcegroup-name</resourceGroup>
                <appName>your-app-name</appName>
            ...
            </configuration>
        </plugin>
    </plugins>
</build>           

Las configuraciones de App Service se pueden modificar directamente en el archivo pom.xml. Algunas configuraciones comunes se enumeran en la tabla siguiente:

Propiedad Obligatorio Descripción Versión
<schemaVersion> false Especifique la versión del esquema de configuración. Los valores admitidos son: v1, v2. 1.5.2
<subscriptionId> false Especifique el identificador de suscripción. 0.1.0+
<resourceGroup> true Grupo de recursos de Azure para la aplicación web. 0.1.0+
<appName> true El nombre de la aplicación web. 0.1.0+
<region> false Especifica la región para hospedar la aplicación web; el valor predeterminado es centralus. Todas las regiones válidas en la sección Regiones admitidas. 0.1.0+
<pricingTier> false El plan de tarifa de la aplicación web. El valor predeterminado es P1V2 para cargas de trabajo de producción, mientras que B2 es el mínimo recomendado para desarrollo y pruebas de Java. Para más información, consulte Precios de App Service 0.1.0+
<runtime> false Configuración del entorno en runtime. Para obtener más información, consulte Detalles de configuración. 0.1.0+
<deployment> false Configuración de implementación. Para obtener más información, consulte Detalles de configuración. 0.1.0+

Para obtener la lista completa de configuraciones, consulte la documentación de referencia del complemento. Todos los complementos de Azure Maven comparten un conjunto común de configuraciones. Para ver estas configuraciones, consulte Configuraciones comunes. Para conocer las configuraciones específicas de App Service, consulte Aplicación web de Azure: Detalles de configuración.

Tenga cuidado con los valores de <appName> y <resourceGroup> (petstoreee7-1690443003536 y petstoreee7-1690443003536-rg en la demostración). Usará estos valores más adelante.

4. Implementación de la aplicación

Con toda la configuración lista en el archivo pom.xml, puede implementar la aplicación de Java en Azure con un solo comando.

# Disable testing, as it requires Wildfly to be installed locally.
mvn package azure-webapp:deploy -DskipTests

Una vez finalizada la implementación, la aplicación está lista en http://<appName>.azurewebsites.net/ (http://petstoreee7-1690443003536.azurewebsites.net en la demostración). Abra la dirección URL con un explorador web local; debería ver

Screenshot of Maven Hello World web app running in Azure App Service.

¡Enhorabuena! Ha implementado su primera aplicación Java en App Service.

5 - Limpieza de los recursos

En los pasos anteriores, creó recursos de Azure en un grupo de recursos. Si no va a necesitar estos recursos en el futuro, elimine el grupo de recursos del portal, para lo que debe ejecutar el siguiente comando en Cloud Shell:

az group delete --name <your resource group name; for example: petstoreee7-1690443003536-rg> --yes

Este comando puede tardar varios segundos en ejecutarse.

Pasos siguientes