Introducción al Serverless Framework: Uso Principal

Introducción al Serverless Framework: Uso Principal

¿Qué es el Serverless Framework?

Serverless Framework – Now, Full Lifecycle

El Serverless Framework es una herramienta de código abierto que simplifica la creación y despliegue de aplicaciones sin servidores (serverless) en plataformas como AWS, Azure, Google Cloud, entre otras.

Este framework abstrae la complejidad de configurar servicios manualmente, permitiendo a los desarrolladores centrarse en la lógica del negocio en lugar de preocuparse por la infraestructura.

Principales Usos del Serverless Framework

  1. Aplicaciones Web y APIs: Creación de backend con AWS Lambda, API Gateway y DynamoDB.
  2. Automatización de Tareas: Funciones ejecutadas en eventos programados (cron jobs).
  3. Procesamiento de Datos: Manejo de grandes volúmenes de datos en tiempo real.
  4. IoT: Gestión y procesamiento de datos de dispositivos conectados.
  5. Aplicaciones de Tiempo Real: Servicios como chatbots o procesamiento de eventos.

Ventajas del Serverless Framework

  • Despliegue Automatizado: Configura y despliega toda la infraestructura con un único comando.
  • Escalabilidad Automática: Aprovecha la capacidad de los servicios serverless para escalar dinámicamente según la demanda.
  • Eficiencia de Costos: Paga solo por las solicitudes procesadas, sin costos de infraestructura permanente.
  • Interfaz Intuitiva: Archivos de configuración YAML fáciles de entender y personalizar.

Ejemplo Práctico: Crear una API RESTful con Serverless Framework

En este ejemplo, crearemos una API REST para gestionar tareas (to-do list) usando AWS Lambda como backend, API Gateway para las rutas HTTP, y DynamoDB para el almacenamiento.

1. Configurar el Proyecto

1. Instalar el Serverless Framework:

				
					npm install -g serverless

				
			

2. Crear un Nuevo Proyecto:

				
					serverless create --template aws-nodejs --path to-do-api
cd to-do-api

				
			

3. Instalar Dependencias:

				
					npm init -y
npm install aws-sdk
				
			

2. Crear Funciones Lambda

Archivo createTask.js: Crear una Tarea
				
					const AWS = require('aws-sdk');
const dynamoDb = new AWS.DynamoDB.DocumentClient();

module.exports.handler = async (event) => {
  const data = JSON.parse(event.body);
  const params = {
    TableName: 'TasksTable',
    Item: {
      taskId: data.taskId,
      title: data.title,
      completed: data.completed || false,
    },
  };

  try {
    await dynamoDb.put(params).promise();
    return {
      statusCode: 201,
      body: JSON.stringify({ message: 'Tarea creada', task: params.Item }),
    };
  } catch (error) {
    return {
      statusCode: 500,
      body: JSON.stringify({ error: 'Error al crear la tarea' }),
    };
  }
};
				
			
Archivo getTasks.js: Obtener Tareas
				
					module.exports.handler = async () => {
  const params = {
    TableName: 'TasksTable',
  };

  try {
    const result = await dynamoDb.scan(params).promise();
    return {
      statusCode: 200,
      body: JSON.stringify(result.Items),
    };
  } catch (error) {
    return {
      statusCode: 500,
      body: JSON.stringify({ error: 'Error al obtener tareas' }),
    };
  }
};
				
			

3. Configurar el Archivo serverless.yml

Este archivo define la infraestructura que será desplegada:

				
					service: to-do-api  

provider:  
  name: aws  
  runtime: nodejs18.x  
  region: us-east-1  

resources:  
  Resources:  
    TasksTable:  
      Type: AWS::DynamoDB::Table  
      Properties:  
        TableName: TasksTable  
        AttributeDefinitions:  
          - AttributeName: taskId  
            AttributeType: S  
        KeySchema:  
          - AttributeName: taskId  
            KeyType: HASH  
        BillingMode: PAY_PER_REQUEST  

functions:  
  createTask:  
    handler: createTask.handler  
    events:  
      - http:  
          path: tasks  
          method: post  

  getTasks:  
    handler: getTasks.handler  
    events:  
      - http:  
          path: tasks  
          method: get  

				
			

4. Desplegar el Proyecto

Para desplegar la infraestructura y las funciones:

				
					serverless deploy
				
			

Esto generará URLs de las rutas para interactuar con las funciones Lambda.

5. Probar la API

Utiliza herramientas como Postman o cURL para probar las rutas:

  • Crear una tarea:

				
					curl -X POST https://<API_GATEWAY_URL>/tasks \
-H "Content-Type: application/json" \
-d '{"taskId": "1", "title": "Aprender Serverless Framework"}'

				
			
  • Obtener todas las tareas:
				
					curl https://<API_GATEWAY_URL>/tasks
				
			

Conclusión

El Serverless Framework simplifica enormemente el desarrollo de aplicaciones sin servidores, permitiendo a los desarrolladores enfocarse en la funcionalidad de sus proyectos sin preocuparse por la administración de infraestructura.

En este ejemplo práctico, vimos cómo implementar una API RESTful con AWS Lambda, DynamoDB y API Gateway de manera eficiente y escalable, mostrando el poder y la versatilidad de este framework.

Referencias:

Facebook
X
LinkedIn
Reddit
Pinterest
Threads

Post relacionados

Post recientes

Search