Desarrollo de aplicaciones de Node.js sin servidor con Azure Functions
Azure Functions proporciona una infraestructura eficaz sin servidor, lo que le permite desarrollar puntos de conexión HTTP escalables y a petición con facilidad. Con JavaScript o TypeScript, puede crear aplicaciones sin servidor que respondan a varios eventos, lo que le permite centrarse en escribir código sin preocuparse por administrar servidores. Esta guía le ayuda a empezar a desarrollar aplicaciones Node.js sin servidor mediante Azure Functions, integrando sin problemas con otros servicios 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 front-end estática (como Angular, React o Vue), que también necesita API sin servidor, use Static Web Apps con funciones para agrupar ambas.
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 al implementar la aplicación de Azure Functions como una aplicación administrada.
Al desarrollar localmente con una aplicación web estática y Azure Functions, la CLI de Azure Static Web Apps 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.
- 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, creas funciones que se activan mediante otros servicios de Azure o que envían salidas a otros servicios de Azure utilizando vinculaciones de activación de .
- Funciones de mucho código: para obtener más control, use los SDK de Azure para coordinar y controlar otros servicios de Azure.