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
opreflight
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