Creación de una función de Azure con el arquetipo de Maven

Completado

Los arquetipos de Maven proporcionan a los desarrolladores los bloques de creación básicos para crear proyectos. Hay varios arquetipos disponibles, y cada uno proporciona una funcionalidad específica que los desarrolladores pueden usar para desarrollar sus aplicaciones. Teniendo esto en cuenta, Microsoft lanzó el arquetipo azure-functions-archetype que permite trabajar con Azure Functions.

En esta unidad, aprenderá lo que necesita para empezar a trabajar con los arquetipos de Maven. Verá cómo usar el azure-functions-archetype con Maven y explorará la creación de una función de ejemplo.

Introducción a los arquetipos de Maven y a Azure Functions

Uso de Maven para automatizar la creación de aplicaciones web de Java

Maven es la herramienta de compilación de Java más usada para compilar y administrar cualquier proyecto basado en Java. Ayuda a simplificar los procesos de cómo los desarrolladores compilan proyectos de Java proporcionando una manera estándar de compilar los proyectos. Este estándar incluye una definición clara de en qué consiste el proyecto, una manera sencilla de publicar información del proyecto y una manera de compartir JAR en varios proyectos. Los objetivos de Maven son los siguientes:

  • Facilitar el proceso de compilación
  • Realizar migraciones de forma transparente a nuevas características
  • Proporcionar un sistema de compilación uniforme
  • Implementar directrices sobre procedimientos recomendados en el desarrollo

Como desarrollador de Java, ya está familiarizado con el uso de Maven para crear y compilar aplicaciones. A la hora de configurar su entorno de desarrollo, probablemente usa las versiones más recientes de Maven. En este módulo, completará los ejercicios mediante Azure Cloud Shell en el espacio aislado de Learn. Cloud Shell en el espacio aislado de Learn tiene todas las partes necesarias para compilar aplicaciones de Java con Maven que están listas para implementarse en Azure.

Nota:

Si usa su cuenta personal de Azure en lugar de Cloud Shell en el espacio aislado de Learn, deberá asegurarse de que tiene los siguientes elementos instalados:

Elemento Versión
Java JDK 17
Maven 3.0 o superior
Azure Functions Core Tools 2.7 o superior

¿Qué es la arquitectura de complementos de Maven?

Maven es un marco para la ejecución de una serie de complementos. Cada complemento de Maven tiene comportamientos específicos controlados por los parámetros que proporcionan los desarrolladores. Por ejemplo, los complementos controlan si se debe crear un archivo de aplicación web (WAR) o un archivo Java (JAR), cómo se compila el código y cómo se ejecutan las pruebas unitarias. Casi todas las acciones se pueden implementar a través de un complemento de Maven.

Los complementos definen las tareas como objetivos, y un complemento puede tener varios objetivos. Por ejemplo, el complemento de limpieza de Maven tiene un objetivo, que consiste en quitar el directorio de destino del proyecto.

Un archivo de modelo de objetos de proyecto (POM) de Maven es un archivo de configuración basado en XML que forma parte de los archivos del proyecto de la aplicación. Los archivos POM se llaman pom.xml y contienen las definiciones de cada uno de los complementos que necesita la aplicación, incluidos los parámetros necesarios para cada complemento.

Al compilar o implementar una función de Azure con Maven, debe asegurarse de incluir el complemento azure-functions-maven-plugin en su archivo pom.xml. Las instrucciones para agregar ese complemento a su archivo pom.xml se encuentran en la sección Uso de arquetipos de forma interactiva de esta unidad.

¿Qué son los arquetipos de Maven?

En muchos sentidos, los arquetipos de Maven son análogos a las plantillas. Un arquetipo es un modelo, o un patrón, que se puede usar para acelerar el proceso de desarrollo. Los arquetipos se pueden personalizar mediante parámetros específicos de un proyecto, los cuales se proporcionan durante el proceso de generación. Cada arquetipo se crea en torno a los procedimientos recomendados que se pueden configurar para satisfacer los requisitos de la organización.

Uso de arquetipos de forma interactiva

Para usar el arquetipo de Microsoft para Azure Functions con el fin de generar un proyecto, puede usar el comando mvn archetype:generate, el cual entra en el modo interactivo que le solicita los valores. Por ejemplo:

mvn archetype:generate \
  -DarchetypeGroupId="com.microsoft.azure" \
  -DarchetypeArtifactId="azure-functions-archetype"

Donde:

Parámetro Descripción
archetype:generate Indica a Maven que genere un proyecto a partir de un arquetipo.
-DarchetypeGroupId Especifica el identificador de grupo del arquetipo, que suele ser el creador del arquetipo.
-DarchetypeArtifactId Especifica el identificador del arquetipo, que es el arquetipo de Azure Functions en este ejemplo.
-DjavaVersion=17 Use -DjavaVersion=11 si quiere que las funciones se ejecuten en Java 11.

Cuando cree un proyecto con el comando mvn archetype:generate, Maven crea una carpeta para el proyecto, y la carpeta raíz contiene el archivo pom.xml del proyecto.

Si especifica el arquetipo azure-functions-archetype al ejecutar el comando mvn archetype:generate, el archivo pom.xml del proyecto tiene una sección que contendrá la información necesaria para el complemento de Azure Functions. Por ejemplo:

<project>
  . . .
  <build>
    . . .
    <plugins>
      . . .
        <plugin>
            <groupId>com.microsoft.azure</groupId>
            <artifactId>azure-functions-maven-plugin</artifactId>
            <version>${azure.functions.maven.plugin.version}</version>
            <configuration>
                <!-- function app name -->
                <appName>${functionAppName}</appName>
                <!-- function app resource group -->
                <resourceGroup>java-functions-group</resourceGroup>
                <!-- function app service plan name -->
                <appServicePlanName>java-functions-app-service-plan</appServicePlanName>
             . . .
         </configuration>
      </plugin>
    </plugins>
  </build>
</project>

Creación de una función básica mediante Azure Cloud Shell

Puede crear una función básica de Azure Functions directamente desde Azure Cloud Shell. Azure garantiza que todas las bibliotecas necesarias están disponibles para crear y compilar el proyecto, incluido Maven y el complemento de Azure Functions.

En los pasos siguientes se muestra el proceso básico para crear una función de Azure Functions mediante Cloud Shell:

  1. En Cloud Shell, ejecute el comando mvn archetype:generate y especifique el azure-functions-archetype.

  2. Maven le pide que escriba el identificador de grupo (groupId) de la aplicación, que se escribe en formato de nombre de dominio inverso; por ejemplo: com.microsoft.example.

  3. Maven le solicita también que escriba el nombre del identificador de artefacto (artifactId) de la aplicación, que debe ser una referencia única al proyecto; por ejemplo: myapp.

  4. Maven podría pedirle otros parámetros, y puede aceptar los valores predeterminados presionando la tecla Entrar del equipo. Por ahora solo necesita especificar los elementos groupId y artifactId.

  5. Maven crea automáticamente un proyecto local de Azure Functions. Una vez completado el comando mvn archetype:generate, tiene un proyecto de Java sencillo que está listo para personalizar y compilar.

En el siguiente ejercicio, usará esta información para crear una función de Azure Functions con Maven.