Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información. Aceptar

Cómo programar tu primera función para Serverless

Ignacio Millán García
  • Escrito por Ignacio Millán García el 10 de Julio de 2019
  • 2 min de lectura | Desarrollo Web
Cómo programar tu primera función para Serverless
El reproductor de video será cargado en breves instantes.

¿Quieres programar tu primera función para arquitecturas serverless para que se ejecute como servicio en cualquier proveedor Cloud? Aquí te guiamos paso a paso para que lo consigas.

Estructura básica

En este caso vamos a hacer un ejemplo con Firebase, ya que es proveedor que no requiere que se introduzca ningún tipo de método de pago, y con el que se puede empezar simplemente registrándose.

La estructura básica que tiene siempre una función, ya sea en Firebase o en cualquier otro proveedor, es la siguiente:

	const functions = require(‘firebase-functions’);

	exports.helloWorld = functions.https.onRequest((request, reponse) => {

		response.status(200).send(“Hello from Firebase!”);

	});

Como podemos ver, es código JavaScript, y como en cualquier código de JavaScript lo primero que tenemos serían las dependencias.

En este caso solo tenemos una, que sería una librería propia de Firebase, firebase-functions, para facilitar el desarrollo de funciones.

Lo siguiente que se debe definir es una función exportable.

Firebase, una vez se suba esta función a su sistema de Funciones como Servicios, es meterla en un runtime NodeJS, que va a importar esta función y la va a ejecutar siempre que responda un evento. En este caso vamos a verlo con peticiones HTTP.

Hay que definir siempre una función que sea exportable, para que Firebase la pueda importar y ejecutarla cuando corresponda.

En este caso la función se llama helloWorld, y la definimos utilizando functions, la propia librería de Firebase, y utilizamos HTTPS porque queremos responder a eventos HTTP, y onRequest para que responda a los eventos siempre que sea una petición.

En el ejemplo Firebase pasa dos objetos, un objeto que se llama request y otro que se llama response.

En el objeto request vamos a tener toda la información, si es por ejemplo una petición POST vamos a tener toda la información que está mandando el usuario, y i es GET vamos a tener todos los parámetros, es decir, la información típica sobre las peticiones HTTP.

En el objeto response, que es el que tenemos que modificar para dar la respuesta que se quiera a esas peticiones.

En este caso lo único que va a hacer esta función es modificar el objeto response, le colocamos un status 200, que significa que ha ido todo bien, y con la función send vamos a enviar el mensaje que queremos, que aquí es “Hello from Firebase”.

Esta sería la respuesta al evento, devolver ese objeto response personalizado.

Este es el ejemplo más típico, es el ejemplo por defecto que da Firebase, pero siempre se puede personalizar esta función, y se debe hacer cuando se desarrolla este tipo arquitecturas.

Función personalizada

Vamos a añadir un poco más de complicación con otro ejemplo, en el que vamos a leer un parámetro de la petición, que va a ser el parámetro llamado message, y nuestra función va a devolver ese mensaje en el navegador.

	const functions = require(‘firebase-functions’);

	exports.helloWorld = functions.https.onRequest((request, reponse) => {

		var message = request.query.message

		response.status(200).send(message);

	});

Esto lo hacemos simplemente leyendo ese parámetro con request.query, donde tenemos almacenados todos los parámetros de URL de nuestra petición, y con .message para coger el parámetro que se corresponda con ese con ese nombre.

Después lo modificamos y lo enviamos con la variable .send, en lugar de enviar el texto “Hello from Firebase” como hicimos en el ejemplo anterior.

Otra función personalizada

Podemos incluir aún más funcionalidades. En este caso vamos a hacer una validación, y si no tiene ese objeto message va a devolver un error 400, y si lo tiene, devuelve una petición con código de estado 200.

	const functions = require(‘firebase-functions’);

	exports.helloWorld = functions.https.onRequest((request, reponse) => {

		var message = request.query.message

		if(¡message){
			response.status(400).send(‘ERROR: No message found’);
		}

		response.status(200).send(message);

	});

Lo hacemos simplemente evaluando la variable message, y si no está definida vamos a responder con un status 400 y con un mensaje de error indicando que no se ha encontrado ningún mensaje en esta petición.

¿Qué puedes hacer en funciones?

En estas funciones se pueden implementar casi todo tipo de funcionalidades:

  • Conectar con servicios de autenticación, como Google, Facebook, LinkedIn, Spotify, a través de una función serverless con todas las ventajas que tiene este tipo arquitectura.
  • Leer y actualizar bases de datos. Una vez que un usuario quiera introducir alguna entrada nueva en la BBDD o quiera recoger información de esa base datos, también lo podemos hacer a través de serverless para responder a peticiones HTTP o cualquier otro tipo de eventos.
  • Subida de archivos.
  • Recepción de formularios.
  • Responder a chatbots, para leer el mensaje que ha escrito el usuario y devolver una respuesta de acuerdo con eso. Toda esa funcionalidad puede ir dentro de una función serverless.
  • Los asistentes por voz, que por defecto tienen aplicaciones que son también con Funciones como Servicios serverless.
  • Procesar datos en streaming, algo que cada vez se utiliza más, y que podemos implementar fácilmente dentro de funciones que son ejecutadas como servicio.

Relacionado

Te dejamos una selección de cursos, carreras y artículos

Programador Java Web

Programador Java Web

carrera

Incluye 8 cursos:

  • Curso de Git
  • Curso de Java 8 desde cero
  • Java 8 para programadores Java

y 5 cursos más!

Duración: 46 horas y 15 minutos

Proveedores gratuitos para comenzar con Serverless

Proveedores gratuitos para comenzar con Serverless

Desarrollo Web

09 de Julio de 2019

Descubre qué proveedores puedes utilizar para comenzar a trabajar con arquitecturas serverless sin coste alguno, con esta detallada comparativa que realizamos entre ellos.

Curso de Serverless

Curso de Serverless

curso

Con este curso aprenderás:

  • Entenderás qué es Serverless y a qué necesidades responde.
  • Aprenderás cómo crear funciones.
  • Verás como desplegarlas de la forma más sencilla.

Duración: 3 horas y 26 minutos

Estas son algunas de las empresas que ya confían en OpenWebinars

Profesores y profesionales

Nuestros docentes son profesionales que trabajan día a día en la materia que imparten

Conviértete en profesor de OpenWebinars