Cómo utilizar las funciones Lambda de Netlify y agregar procesamiento dinámico a los sitios JAMstack
Ya escribí sobre Netlify en mi tutorial sobre Netlify . Lo uso para alojar este blog y es fantástico.
También lo uso para ejecutar otros sitios, y todos se ejecutan en Hugo, lo que hace que mi pila sea 100% JAMstack .
Lo bueno de JAM es que no se limita a sitios estáticos y “tontos”: puedes hacer MUCHAS cosas tan dinámicas como quieras.
La mayor parte de ese poder viene en forma de funciones lambda .
Puede hacer que JavaScript en su sitio (o formularios HTML simples) invoque un punto final de URL, que cuando se lo llama ejecuta un código predeterminado. Diferentes proveedores ofrecen soporte para varios lenguajes. Netlify actualmente es compatible con Node.js y Go.
En este tutorial nos centramos en las funciones lambda escritas en Node.js.
Netlify nos ofrece un generoso límite de nivel gratuito, con hasta 125.000 invocaciones de funciones y un total de 100 horas de tiempo de ejecución cada mes. Las funciones tienen 128 MB de memoria y cada una puede ejecutarse durante hasta 10 segundos. Para necesidades normales, esto es más que suficiente.
Internamente, Netlify ejecuta esta función en AWS Lambda , eliminando toda la complejidad de AWS para usted.
¿Cómo creamos una función? Subimos un archivo JavaScript a la functions
carpeta del sitio.
En este archivo debemos seguir un método llamado handler
:
exports.handler = (event, context, callback) = { //functionality}
Si está familiarizado con AWS Lambda, el código de función le resultará familiar. Si nunca lo ha utilizado, no se preocupe: aquí le presentamos una breve descripción general de los parámetros que recibe nuestro controlador:
event
Es un objeto que contiene datos sobre la solicitud.context
Contiene la información del usuario cuando se utiliza Identidad para la autenticación del usuario.callback
es una función que podemos usar para crear una respuesta
Lo más sencillo que podemos hacer es devolver una respuesta positiva. Para ello, utilizamos el callback()
método: Scifi books reviews
exports.handler = (event, context, callback) = { callback(null, { statusCode: 200, body: 'No worries, all is working fine!' })}
Guarde esto en un functions/test.js
archivo.
Lo único que necesitas hacer para que funcione es configurar la carpeta para las funciones en el netlify.toml
archivo:
[build]functions = "./functions"
Prueba esto: crea el archivo en una carpeta vacía, envíalo a un repositorio de GitHub y crea un nuevo sitio Netlify desde ese repositorio.
Una vez que lo hagas, en el Settings - Functions
menú de Netlify aparecerá un nuevo menú que muestra los detalles del uso de nuestras funciones:
La función, que se almacenó en el functions/test.js
archivo, es accesible en https://YOURSITENAME.netlify.com/.netlify/functions/test .
Para acceder a los parámetros de la solicitud, utilice el event
objeto:
event.path
la ruta de solicitudevent.httpMethod
el método HTTP de solicitudevent.headers
los encabezados de solicitudevent.queryStringParameters
los parámetros de consulta de la solicitudevent.body
El cuerpo de la solicitud en formato JSON
Antes de que usáramos
callback(null, { statusCode: 200, body: 'No worries, all is working fine!'})
para crear una respuesta. También puede agregar un headers
objeto que contenga una matriz asociativa (objeto) con los valores del encabezado.
Este repositorio de Netlify https://github.com/netlify/netlify-functions-example contiene muchos ejemplos de funciones Lambda de Netlify.
Tal vez te puede interesar:
- Introducción a React
- Agregar evento de clic a los elementos DOM devueltos desde querySelectorAll
- Cómo cambiar el valor de un nodo DOM
- Cómo comprobar si un elemento DOM tiene una clase
Tutorial de funciones Lambda de Netlify
Cómo utilizar las funciones Lambda de Netlify y agregar procesamiento dinámico a los sitios JAMstack
programar
es
https://aprendeprogramando.es/static/images/programar-tutorial-de-funciones-lambda-de-netlify-1905-0.jpg
2024-10-29
Si crees que alguno de los contenidos (texto, imagenes o multimedia) en esta página infringe tus derechos relativos a propiedad intelectual, marcas registradas o cualquier otro de tus derechos, por favor ponte en contacto con nosotros en el mail [email protected] y retiraremos este contenido inmediatamente