Ejecutar y probar una función de Azure de forma local

Completado

En el ejercicio anterior, ha creado un proyecto de Azure Functions mediante un arquetipo de Maven para Azure. Su siguiente tarea consiste en compilar la función y ejecutarla localmente para comprobar que funcione.

En esta unidad, obtendrá información sobre Azure Functions Core Tools, que le ayudará a ejecutar y probar las funciones de forma local. También aprenderá a abrir un puerto HTTP para las pruebas, ejecutar la función en Cloud Shell y probarla en un explorador web.

Acerca de Azure Functions Core Tools

Azure Functions Core Tools es un conjunto de utilidades para compilar y probar funciones de Azure Functions de forma local con un emulador de terminal o mediante el símbolo del sistema. Aunque la función de Azure Functions que ha creado se ejecuta localmente, puede acceder a los servicios activos de Azure durante las pruebas. Cuando complete las pruebas y la función esté lista para publicarse, puede implementar la aplicación de función en su suscripción de Azure.

Actualmente, existen tres versiones de Azure Functions Core Tools. Sin embargo, como regla general, a menos que tenga una necesidad específica de usar una versión anterior, siempre debe usar la más reciente a la hora de desarrollar funciones para implementarlas en Azure. En este módulo, usará Azure Cloud Shell en el espacio aislado de Learn, puesto que cuenta con la versión más reciente de Azure Functions Core Tools.

Nota:

Si ha usado su cuenta personal de Azure en lugar de Cloud Shell en el espacio aislado de Learn, deberá consultar el artículo Uso de Azure Functions Core Tools para obtener descripciones, requisitos e instrucciones de instalación de las distintas versiones de Azure Functions Core Tools.

Configuración del entorno de Cloud Shell para realizar las pruebas

Tiene dos formas diferentes de probar una aplicación web que se ejecuta en Cloud Shell:

  1. Puede usar Cloud Shell para abrir un puerto externo para realizar las pruebas, el cual enruta las solicitudes HTTP al puerto localhost de su instancia de Cloud Shell:

    • Para abrir el puerto 7071 desde Cloud Shell, use el siguiente comando cURL:

      curl -X POST http://localhost:8888/openPort/7071
      
    • Cuando complete las pruebas, use el siguiente comando cURL para cerrar el puerto:

      curl -X POST http://localhost:8888/closePort/7071
      
  2. Puede abrir varias instancias de Cloud Shell para probar la aplicación localmente:

    • Ejecute la aplicación en la primera instancia.

    • Use cURL para probar la aplicación a partir de la segunda instancia.

En el siguiente ejercicio, usará el primer método para abrir un puerto.

Ejecución de la función en Cloud Shell

Una vez que abra un puerto para las pruebas, la siguiente tarea consiste en compilar y ejecutar la función. Para ello, siga estos pasos:

  1. En Cloud Shell, cambie el directorio a la carpeta raíz del proyecto.

  2. Para compilar la aplicación, use el siguiente comando de Maven:

    mvn clean package
    
  3. Para ejecutar la aplicación, use el siguiente comando de Maven:

    mvn azure-functions:run
    

    Aunque Maven se encarga de preparar el entorno de runtime para la función, verá el logotipo de Azure Functions Core Tools:

    Image showing the Azure Function Core tools logo.

  4. Una vez completada la prueba, use el comando CTRL+C desde Azure Cloud Shell para detener el servidor.

Cómo probar la función mediante solicitudes HTTP

En este módulo, usará una única instancia de Cloud Shell. Como resultado, para probar la aplicación, tiene que abrir una nueva pestaña en el explorador web. En la barra de direcciones del explorador, escriba una dirección URL similar a la del ejemplo siguiente:

https://gateway.westus.console.azure.com/n/cc-12345678/cc-12345678/proxy/7071/api/HttpExample?name=Bob

Sin embargo, si usa varias instancias de Cloud Shell, puede usar el siguiente comando cURL para probar la aplicación desde una instancia independiente del shell:

curl http://localhost:7071/api/HttpExample?name=Bob

En el siguiente ejercicio, usará lo que ha aprendido en esta unidad. Abra un puerto de prueba, ejecutar la función en Cloud Shell y determine la dirección URL que necesita para probar la función desde un explorador web.