Cuarenta formularios al día
Una inmobiliaria de Málaga tiene un formulario en su web: "Quiero visitar este piso". Llegan unos 40 al día. Cada uno tarda dos segundos en procesarse y avisar a un agente.
Para eso tiene un servidor encendido las 24 horas, todos los días. Trabaja menos de dos minutos al día. El resto del tiempo espera, y se paga igual.
Al final de esta lección
Nota
Puedo decir para qué tipo de trabajo sirve el código sin servidor.
Palabras clave
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| Sin servidor | código que el proveedor ejecuta solo cuando hace falta | |
| Función | trozo de código que recibe algo y devuelve algo | |
| Evento | algo que pasa y pone en marcha la función | un formulario enviado |
| Ejecución | cada vez que la función se ejecuta | |
| Arranque en frío | retraso de la primera ejecución tras un rato parada | |
| Tiempo límite | lo máximo que puede durar una ejecución |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Una función corre cuando llega un evento
Con el código sin servidor, no alquilas una máquina. Subes una función y dices qué evento la pone en marcha.
Cuando alguien envía el formulario, el proveedor arranca la función, le pasa los datos y la para al terminar. Los servidores existen, pero los gestiona el proveedor y tú no los ves. Si no llega ningún evento, no se ejecuta nada.
Prueba: una función que recibe un evento
# Una función sin servidor recibe un evento y devuelve una respuesta.
# El proveedor la llama cada vez que alguien envía el formulario.
def manejar(evento):
nombre = evento["nombre"]
piso = evento["piso"]
# Aquí iría el envío del aviso a la agencia
return "Aviso enviado: " + nombre + " pregunta por " + piso
# Simulamos dos envíos del formulario
print(manejar({"nombre": "Lucía", "piso": "ático en El Palo"}))
print(manejar({"nombre": "Andrés", "piso": "bajo en Teatinos"}))
# Añade un tercer envío con tu nombre y un piso en Huelin.
Pagas por cada ejecución
El proveedor cobra por ejecución y por el tiempo que dura, medido en milisegundos. Cada mes suele regalar un millón de ejecuciones.
Para la inmobiliaria, 40 formularios al día son unos 1.200 al mes. Eso no llega ni a la parte gratuita. Con mucho tráfico constante, la cuenta cambia: un servidor siempre ocupado sale más barato.
Ejemplo: servidor fijo o función, al mes
| Caso | Servidor siempre encendido | Función sin servidor |
|---|---|---|
| 40 peticiones al día | 15 euros | 0 euros, dentro de lo gratuito |
| 20.000 peticiones al día | 15 euros | unos 2 euros |
| 5 millones al día, todo el día | 60 euros, con más servidores | más de 300 euros |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
No sirve para todo
Una función tiene un tiempo límite, normalmente 15 minutos. Convertir un vídeo de una hora no cabe.
Además, tras un rato sin uso, la primera ejecución tarda algo más: es el arranque en frío. En un formulario no se nota. En un juego en línea que debe responder al instante, sí. Elígela para trabajos cortos, que llegan a ratos y reaccionan a algo.
Un error frecuente
Advertencia
Mucha gente cree que "sin servidor" significa que no hay servidores. Sí los hay. La diferencia es que los gestiona el proveedor y solo pagas cuando tu código se ejecuta. Por eso un fallo del proveedor también puede parar tus funciones.