Uso de Azure Functions para desarrollar soluciones sin servidor Node.js

Azure Functions proporciona infraestructura de código sin servidor, lo que le permite crear puntos de conexión HTTP a petición y con capacidad de respuesta. Las aplicaciones sin servidor se componen de código JavaScript o TypeScript que se ejecuta en respuesta a varios eventos.

Las funciones proporcionan lo siguiente:

  • Abstracción del servicio web: se centra en el código, no en la infraestructura.

  • Integración con servicios de Azure: desencadenamiento del trabajo en un servicio de Azure o fuera de ellos con eventos

  • Integración con paquetes de JavaScript: use los paquetes de npm favoritos con el código sin servidor.

  • Biblioteca de ejemplos de la comunidad de desarrollo sin servidor de Azure

¿Qué es un recurso de función?

Un recurso de Azure Functions es una unidad lógica para todas las funciones relacionadas en una única ubicación geográfica de Azure. El recurso puede contener una sola función o muchas funciones, que pueden ser independientes entre sí o relacionadas con enlaces de entrada o salida. Puede seleccionar entre muchas funciones comunes o crear las suyas propias.

La configuración de recursos de función incluye configuraciones típicas sin servidor, como variables de entorno, autenticación, registro y CORS.

Funciones duraderas y con estado

Las funciones de Durable Functions conservan el estado o administran funciones de ejecución prolongada en Azure. Creación de su primera función durable en JavaScript.

Las aplicaciones web estáticas incluyen funciones

Al desarrollar una aplicación cliente de front-end estática (como Angular, React o Vue), que también necesita API sin servidor, use aplicaciones web estáticas con funciones para agruparlas juntas.

Proxy de la aplicación cliente a la API

Si piensa implementar la API con la aplicación web estática, no es necesario proxy de las llamadas API de la aplicación cliente. El proxy se establece para usted, incluido el desarrollo local y remoto.

Al desarrollar localmente con una aplicación web estática y Azure Functions, la CLI de Azure Static Web App proporciona el proxy local.

Opciones de seguridad comunes que debe configurar para Azure Functions

Se deben configurar las siguientes opciones comunes para proteger la instancia de Azure Functions:

  • Configuración
    • Parámetros de configuración: cree la configuración de la aplicación para los parámetros que no afectan a la seguridad.
    • Secretos y claves: para cualquier configuración que afecte a la seguridad, cree una instancia de Azure Key Vault y extraiga esa configuración de Key Vault.
    • Estado de FTP en los parámetros de plataforma: de forma predeterminada, se permiten todos. Tiene que seleccionar Solo FTPS o deshabilitar FTP por completo para mejorar la seguridad.
  • API CORS: configure los dominios de cliente. No use *, lo que indica todos los dominios.
  • Configuración de TLS/SSL para HTTPS: de forma predeterminada, la API acepta solicitudes HTTP y HTTPS. Habilite Solo HTTPS en la configuración de TLS/SSL. Dado que la aplicación de funciones se hospeda en un subdominio seguro, puede usarlo inmediatamente (con https) y retrasar la compra de un nombre de dominio y usar un certificado para el dominio hasta que esté listo.
  • Ranuras de implementación: cree una ranura de implementación, como stage o preflight e insértela en esa ranura. Cambie esta ranura de fase a producción cuando esté listo. No tengas el hábito de insertar manualmente en producción. El código base debe ser capaz de indicar la versión o confirmación que se encuentra en una ranura.

Requisitos previos para desarrollar Azure Functions

Función de JavaScript simple para solicitudes HTTP

Una función es una función asincrónica exportada con información de la solicitud y el contexto. La siguiente captura de pantalla parcial de Azure Portal muestra el código de la función.

import { app, HttpRequest, HttpResponseInit, InvocationContext } from "@azure/functions";

export async function status(request: HttpRequest, context: InvocationContext): Promise<HttpResponseInit> {
    context.log(`Http function processed request for url "${request.url}"`);

    return {
        status: 200,
        jsonBody: {
            env: process.env
        }
    };
};

app.http('status', {
    route: "status",
    methods: ['GET'],
    authLevel: 'anonymous',
    handler: status
});

Desarrollo local de funciones con Visual Studio Code y extensiones

Cree su primera función mediante Visual Studio Code. Visual Studio Code simplifica muchos de los detalles con la extensión de Azure Functions.

Esta extensión le ayuda a crear funciones de JavaScript y TypeScript con plantillas comunes.

Integración con otros servicios de Azure

Las funciones sin servidor eliminan gran parte de la configuración y administración del servidor, para que pueda centrarse solo en el código que necesita.

  • Funciones de poco código: con Azure Functions, puede crear funciones desencadenadas por otros servicios de Azure o que se generan para otro servicio de Azure mediante enlaces de desencadenador.
  • Funciones de mucho código: para obtener más control, use los SDK de Azure para coordinar y controlar otros servicios de Azure.

Pasos siguientes

Use la tabla siguiente para obtener más información sobre Azure Functions con Node.js

Aprender Ejemplo
¿Qué es Contoso Real Estate? Bienes raíces de Contoso
Compilación de API sin servidor con Azure Functions MicrosoftDocs/mslearn-build-api-azure-functions
Refactorización de Node.js API de Express en API de Azure Functions sin servidor MicrosoftDocs/mslearn-module-shifting-nodejs-express-apis-to-serverless
Cargar y analizar un archivo con Azure Functions y blob Storage Azure-Samples/msdocs-storage-bind-function-service