Uso de Java y Gradle para crear y publicar una función en Azure
En este artículo se muestra cómo compilar y publicar un proyecto de una función de Java en Azure Functions con la herramienta de línea de comandos de Gradle. Una vez que haya terminado, el código de función se ejecutará en Azure en un plan de hospedaje sin servidor y se desencadenará mediante una solicitud HTTP.
Nota:
Si Gradle no es la herramienta de desarrollo preferida, consulte nuestros tutoriales análogos para desarrolladores de Java con Maven, IntelliJ IDEA y VS Code.
Requisitos previos
Para desarrollar funciones con Java, debe tener instalado lo siguiente:
- Kit para desarrolladores de Java, versión 8, 11, 17 o 21. (Java 21 solo se admite actualmente en versión preliminar en Linux)
- CLI de Azure
- Azure Functions Core Tools, versión 2.6.666 u otra posterior
- Gradle, versión 6.8 y superior
Necesita también una suscripción de Azure activa. Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.
Importante
La variable de entorno JAVA_HOME se debe establecer en la ubicación de instalación del JDK para completar esta guía de inicio rápido.
Preparación de un proyecto de Functions
Use el comando siguiente para clonar el proyecto de ejemplo:
git clone https://github.com/Azure-Samples/azure-functions-samples-java.git
cd azure-functions-samples-java/triggers-bindings
Abra build.gradle
y cambie el valor de appName
en la sección siguiente por un nombre único para evitar conflictos de nombres de dominio al realizar la implementación en Azure.
azurefunctions {
resourceGroup = 'java-functions-group'
appName = 'azure-functions-sample-demo'
pricingTier = 'Consumption'
region = 'westus'
runtime {
os = 'windows'
}
localDebug = "transport=dt_socket,server=y,suspend=n,address=5005"
}
Abra el nuevo archivo Function.java desde la ruta de acceso src/main/java en un editor de texto y revise el código generado. Este código es una función desencadenada por HTTP que devuelve el cuerpo de la solicitud.
Ejecución local de la función
Ejecute el siguiente comando para realizar la compilación y, luego, ejecutar el proyecto de función:
gradle jar --info
gradle azureFunctionsRun
Verá una salida similar a la siguiente desde Azure Functions Core Tools cuando ejecute el proyecto localmente:
... Now listening on: http://0.0.0.0:7071 Application started. Press Ctrl+C to shut down. Http Functions: HttpExample: [GET,POST] http://localhost:7071/api/HttpExample ...
Desencadene la función desde la línea de comandos mediante el comando cURL siguiente en una ventana de terminal nueva:
curl -w "\n" http://localhost:7071/api/HttpExample --data AzureFunctions
El resultado esperado es el siguiente:
Hello, AzureFunctions
Nota:
Si establece authLevel en FUNCTION
o ADMIN
, la clave de acceso no es necesario cuando se ejecuta localmente.
Use Ctrl+C
en el terminal para detener el código de función.
Implementación de la función en Azure
La primera vez que crea una aplicación de funciones, se crea dicha función y los recursos relacionados en Azure. Antes de poder implementar, use el comando az login de la CLI de Azure para iniciar sesión en la suscripción de Azure.
az login
Sugerencia
Si su cuenta puede acceder a varias suscripciones, use az account set para establecer la suscripción predeterminada de esta sesión.
Use el siguiente comando para implementar el proyecto en una nueva aplicación de funciones.
gradle azureFunctionsDeploy
De este modo, se crean los siguientes recursos en Azure, en función de los valores del archivo build.gradle:
- Un grupo de recursos Se le ha asignado el nombre de resourceGroup que proporcionó anteriormente.
- Una cuenta de almacenamiento Necesaria con Functions. El nombre se genera aleatoriamente según los requisitos de nombre de la cuenta de almacenamiento.
- Plan de App Service. El hospedaje del plan de consumo sin servidor de la aplicación de funciones de la región especificada. El nombre se genera aleatoriamente.
- Aplicación de funciones. Una aplicación de funciones es la unidad de implementación y ejecución de las funciones. El nombre es appName, anexado a un número generado de forma aleatoria.
La implementación también empaqueta los archivos de proyecto y los implementa en la nueva aplicación de funciones mediante la implementación de archivos zip, con el modo de ejecución desde el paquete habilitado.
La propiedad authLevel para el desencadenador HTTP en el proyecto de ejemplo es ANONYMOUS
, que omitirá la autenticación. Sin embargo, si usa otra propiedad authLevel como FUNCTION
o ADMIN
, debe obtener la clave de función para llamar al punto de conexión de la función a través de HTTP. La forma más fácil de obtener la clave de función es desde Azure Portal.
Obtención de la dirección URL del desencadenador HTTP
Puede obtener la dirección URL necesaria para desencadenar la función, con la clave de función, en Azure Portal.
Vaya a Azure Portal, inicie sesión, escriba el nombre de appName para la aplicación de funciones en Buscar en la parte superior de la página y presione Entrar.
En la aplicación de funciones, seleccione Funciones, elija la función y, a continuación, haga clic en Obtener la dirección URL de la función en la parte superior derecha.
Seleccione valor predeterminado (clave de función) y seleccione Copiar.
Ahora puede usar la dirección URL copiada para acceder a la función.
Comprobación de la función en Azure
Para comprobar la aplicación de funciones que se ejecuta en Azure mediante cURL
, reemplace la dirección URL del ejemplo siguiente por la dirección URL que copió del portal.
curl -w "\n" http://azure-functions-sample-demo.azurewebsites.net/api/HttpExample --data AzureFunctions
Esto envía una solicitud POST al punto de conexión de la función con AzureFunctions
en el cuerpo de la solicitud. Puede ver la siguiente respuesta.
Hello, AzureFunctions
Pasos siguientes
Ha creado un proyecto de funciones de Java con una función desencadenada por HTTP, lo ha ejecutado en la máquina local y lo ha implementado en Azure. Ahora, amplíe la función como sigue...