Introducción a Azure Functions en Visual Studio para Mac

Importante

Visual Studio para Mac está programado para su retirada el 31 de agosto de 31, 2024 de acuerdo con la directiva de ciclo de vida moderno de Microsoft. Aunque puede seguir trabajando con Visual Studio para Mac, hay otras opciones para desarrolladores en Mac, como la versión preliminar de la nueva extensión del Kit de desarrollo de C# para VS Code.

Obtenga más información sobre las escalas de tiempo de soporte técnico y las alternativas.

Azure Functions es una manera de crear y ejecutar fragmentos de código orientados a eventos (funciones) en la nube, sin tener que proporcionar o administrar explícitamente la infraestructura. Para obtener más información sobre Azure Functions, consulte Documentación de Azure Functions.

Requisitos

Las herramientas de Azure Functions se incluyen en Visual Studio para Mac 7.5 y versiones posteriores.

Para crear e implementar funciones también necesita una suscripción de Azure. Si no tiene una cuenta de Azure, puede suscribirse hoy mismo de forma gratuita y recibir 12 meses de servicios gratuitos, 200 USD de crédito gratuito y de más de 25 servicios gratuitos para siempre ->https://azure.com/free.

Crear su primer proyecto de Azure Functions

  1. En Visual Studio para Mac, seleccione Archivo > Nueva solución.

  2. En el cuadro de diálogo Nuevo proyecto, seleccione la plantilla de Azure Functions en Nube > General y haga clic en Siguiente:

    New Project dialog showing Azure Functions option

  3. Seleccione la plantilla inicial de Azure Functions que quiera usar, escriba el nombre de función y haga clic en Siguiente.

    New Project dialog showing Azure Functions templates

    Sugerencia

    Aunque el tiempo de ejecución y las plantillas (CLI) de Azure Functions se mantienen lo más actualizados posible, inevitablemente se quedan obsoletos. Al crear un proyecto de Functions, Visual Studio para Mac comprobará las actualizaciones de la CLI y le notificará tal y como se muestra en la siguiente imagen. Basta con hacer clic en el botón para descargar las plantillas actualizadas. New project dialog showing Azure Functions updates are available

    Según el tipo de función que seleccione, la siguiente página le solicitará que especifique los detalles, como los derechos de acceso, como se muestra en la siguiente imagen:

    New Project dialog showing additional option

    Para más información sobre los distintos tipos de plantillas de Azure Functions y las propiedades de enlace necesarias para configurar cada plantilla, vea la sección Plantillas de función disponibles. Para este ejemplo, se usa un desencadenador HTTP con acceso de derechos definidos como anónimos.

  4. Una vez que haya definido los parámetros, elija la ubicación para el proyecto y haga clic en Crear.

Visual Studio para Mac crea un proyecto de .NET Standard con una función predeterminada incluida. También incluye referencias de NuGet para una variedad de paquetes de AzureWebJobs, así como el paquete Newtonsoft.Json.

Visual Studio for Mac editor displaying a brand new Azure function from template

El nuevo proyecto contiene los siguientes archivos:

  • your-function-name.cs: esta clase contiene código reutilizable para la función que ha seleccionado. Contiene un atributo FunctionName con el nombre de la función y un atributo desencadenador que señala lo que la función desencadena (por ejemplo, una solicitud HTTP). Para obtener más información sobre el método de funciones, consulte el artículo Referencia para desarrolladores de C# de Azure Functions.
  • host.json: este archivo describe las opciones de configuración global para el host de Functions. Para un archivo de ejemplo e información sobre la configuración disponible para este archivo, consulte la Referencia de host.json para Azure Functions.
  • local.settings.json: este archivo contiene toda la configuración para ejecutar las funciones de forma local. Esta configuración se utiliza con las herramientas principales de Azure Functions. Para obtener más información, consulte Archivo de configuración local en el artículo de las herramientas principales de Azure Functions.

Ahora que ha creado un nuevo proyecto de Azure Functions en Visual Studio para Mac, puede probar la función desencadenada HTTP predeterminada desde el equipo local.

Probar la función localmente

Con compatibilidad con Azure Functions en Visual Studio para Mac puede probar y depurar la función en el equipo de desarrollo local.

  1. Para probar la función localmente, presione el botón Ejecutar en Visual Studio para Mac:

    Start debugging button in Visual Studio for mac

  2. Al ejecutar el proyecto se inicia la depuración local en la función de Azure y se abre una nueva ventana de Terminal, tal como se muestra en la siguiente imagen:

    terminal window showing function output

    Copie la dirección URL de la salida.

  3. Pegue la dirección URL de la solicitud HTTP en la barra de direcciones del explorador. Agregue la cadena de consulta ?name=<yourname> al final de la dirección URL y ejecute la solicitud. La siguiente imagen muestra la respuesta en el explorador para la solicitud GET local devuelta por la función:

    HTTP request in browser

Agregar otra función al proyecto

Las plantillas de función permiten crear rápidamente nuevas funciones mediante los desencadenadores y las plantillas más comunes. Para crear otro tipo de función, haga lo siguiente:

  1. Para agregar una nueva función, haga doble clic en el nombre del proyecto y seleccione Agregar > Agregar función...:

    context action for adding new function

  2. Desde el cuadro de diálogo Nueva función de Azure, seleccione la función que necesita:

    new Azure function dialog

    En la sección Plantillas de función disponibles figura una lista de plantillas de funciones de Azure.

Puede usar el procedimiento anterior para agregar más funciones a su proyecto de Function App. Cada función del proyecto puede tener un desencadenador diferente, pero una función no puede tener más de un desencadenador. Para más información, vea Conceptos básicos sobre los enlaces y desencadenadores de Azure Functions.

Publicar en Azure

  1. Haga clic con el botón derecho en el nombre del proyecto y seleccione Publicar > Publicar en Azure: Context menu with Publish > Publish to Azure... option highlighted.

  2. Si ya ha conectado su cuenta de Azure para Visual Studio para Mac, se mostrará una lista de servicios de aplicaciones disponibles. Si aún no ha iniciado sesión, se le pedirá que lo haga.

  3. En el cuadro de diálogo Publicar en Azure App Service, puede seleccionar un servicio de aplicación existente o crear uno nuevo haciendo clic en Nuevo.

  4. En el cuadro de diálogo Crear instancia de App Service, escriba los valores: New App Service dialog, with fields for service name, subscription, resource group, and service plan settings.

    Configuración Descripción
    Nombre de App Service Un nombre único global que identifica la nueva aplicación de funciones.
    Suscripción La suscripción de Azure que se va a usar.
    Grupo de recursos Nombre del grupo de recursos en el que se va a crear la instancia de Function App. Elija + para crear un nuevo grupo de recursos.
    Plan de servicio Elija un plan existente o cree un plan personalizado. Elija una ubicación en una región cerca de usted o cerca de otros servicios a los que acceda la función.
  5. Haga clic en Siguiente para crear una cuenta de almacenamiento. El entorno de ejecución de Functions necesita una cuenta de Azure Storage. Haga clic en Personalizado para crear una cuenta de almacenamiento de propósito general o usar una existente:

    New App Service dialog with prompt for storage account name.

  6. Haga clic en Crear para crear una instancia de Function App y los recursos relacionados en Azure con esta configuración e implementar el código del proyecto de función.

  7. Es posible que aparezca un cuadro de diálogo durante la publicación con el mensaje "Actualizar versión de Functions en Azure". Haga clic en :

    Prompt asking to

Configuración de Function App

Cualquier configuración que agregue en local.settings.json debe agregarse también a Function App en Azure. Esta configuración no se carga automáticamente cuando se publica el proyecto.

Para Tener acceso a la configuración de la aplicación, vaya a Azure Portal en https://ms.portal.azure.com/. En Instancias de Function App, seleccione Instancias de Function App y resalte el nombre de función:

Azure Functions menu

En la pestaña Información general, seleccione Configuración de la aplicación en Características configuradas:

Over tab of Azure function

Desde aquí se puede establecer la configuración de la aplicación para Function App, donde puede agregar la nueva configuración de la aplicación o modificar las existentes:

application settings area of Azure portal

Hay un valor importante que puede que tenga que configurar: FUNCTIONS_EXTENSION_VERSION. Al publicar desde Visual Studio para Mac, este valor debe establecerse en beta.

Plantillas de función disponibles

  • Desencadenador de GitHub: responder a los eventos que se producen en los repositorios de GitHub. Para obtener más información, vea la página Creación de una función desencadenada por Webhook de GitHub

    • Autor del comentario de GitHub: esta función se ejecutará cuando reciba un webhook de GitHub para un problema o solicitud de incorporación de cambios y agregue un comentario.
    • WebHook de GitHub: esta función se ejecutará cuando reciba un WebHook de GitHub.
  • HTTP: desencadena la ejecución del código mediante una solicitud HTTP. Hay plantillas explícitas para los siguientes desencadenadores HTTP:

    • Desencadenador HTTP
    • HTTP GET create, update, read y delete (CRUD)
    • HTTP POST CRUD
    • Desencadenador HTTP con parámetros
  • Temporizador: ejecutar una limpieza u otras tareas de lote en una programación predefinida. Esta plantilla tiene dos campos: un nombre y una programación, que es una expresión de CRON de seis campos. Para más información, consulte el artículo de Azure Functions sobre los temporizadores.

  • Desencadenador de cola: se trata de una función que responderá a los mensajes a medida que llegan a la cola de Azure Queue Storage. Además del nombre de la función, esta plantilla toma una ruta de acceso (el nombre de la cola desde la que se leerá el mensaje) y una cuenta de almacenamiento Conexión (el nombre de la configuración de la aplicación que contiene la cadena de conexión de la cuenta de almacenamiento). Para más información, consulte el artículo de Azure Functions sobre Queue Storage.

  • Desencadenador de blob: procesa blobs de Azure Storage cuando se agregan a un contenedor. Además del nombre de función, esta plantilla también tiene una propiedad de ruta de acceso y de conexión. La propiedad de ruta de acceso es la ruta de acceso dentro de la cuenta de almacenamiento que el desencadenador supervisará. La cuenta de conexión es el nombre de la configuración de aplicación que contiene la cadena de conexión de la cuenta de almacenamiento. Para más información, consulte el artículo de Azure Functions sobre Blob Storage.

  • WebHook genérico: se trata de una función sencilla que se ejecutará cada vez que recibe una solicitud de servicio que admita webhooks. Para más información, consulte el artículo de Azure Functions sobre los webhooks genéricos.

  • Flujos de trabajo de Durable Functions: Durable Functions le permite escribir funciones con estado en un entorno sin servidor. La extensión administra el estado, los puntos de control y los reinicios en su nombre. Para obtener más información, consulte las guías de Durable Functions.

  • Redimensionador de imagen: esta función crea imágenes redimensionadas cada vez que un blob se agrega a un contenedor. La plantilla toma la cadena de conexión y la ruta de acceso para el desencadenador, una salida de imagen pequeña y una salida de imagen media.

  • Token de SAS: esta función genera un token de SAS para un contenedor y nombre de blob de Azure Storage determinados. Además del nombre de función, esta plantilla también tiene una propiedad de ruta de acceso y de conexión. La propiedad de ruta de acceso es la ruta de acceso dentro de la cuenta de almacenamiento que el desencadenador supervisará. La cuenta de conexión es el nombre de la configuración de aplicación que contiene la cadena de conexión de la cuenta de almacenamiento. También se deben establecer los derechos de acceso. El nivel de autorización controla si la función requiere una clave de API y qué clave utilizar; Función usa una tecla de función; Administrador usa la clave de acceso a la cuenta. Para obtener más información, vea el ejemplo Función de Azure en C# Azure para generar tokens de SAS.