AWS SAM: Guía Básica para Aplicaciones Serverless

published on 27 November 2024

AWS SAM te permite crear aplicaciones serverless de forma sencilla en AWS. Con este framework, puedes definir funciones Lambda, APIs, bases de datos y más usando plantillas YAML o JSON. Además, el SAM CLI facilita el desarrollo, pruebas locales y despliegues automáticos. Aquí tienes lo esencial:

  • ¿Qué es AWS SAM? Un framework para manejar infraestructura como código mediante plantillas simples basadas en CloudFormation.
  • Ventajas principales:
    • Menos configuración manual gracias a una sintaxis clara.
    • Pruebas locales con comandos como sam local invoke.
    • Despliegues guiados y automatizados con sam deploy --guided.
  • Herramientas clave: SAM CLI para desarrollo y pruebas, AWS X-Ray para depuración, y SAM Accelerate para ciclos rápidos de desarrollo.

Si buscas crear aplicaciones serverless sin complicaciones, AWS SAM es una opción ideal. ¡Empieza con sam init y simplifica tu flujo de trabajo!

Video relacionado de YouTube

Core Features of AWS SAM

AWS SAM

Understanding SAM Templates

Las plantillas SAM hacen más fácil definir recursos serverless y mantener tu infraestructura bajo control. Están escritas en YAML y te permiten describir recursos como funciones Lambda, API Gateway y tablas DynamoDB sin complicaciones.

Mira este ejemplo básico de una plantilla SAM:

AWSTemplateFormatVersion: '2010-09-09'
Transform: 'AWS::Serverless-2016-10-31'

Resources:
  MiFuncion:
    Type: 'AWS::Serverless::Function'
    Properties:
      Handler: index.handler
      Runtime: nodejs14.x
      CodeUri: .

¿Qué hace especiales a las plantillas SAM? Te dejan conectar recursos entre sí - por ejemplo, puedes vincular una función Lambda con API Gateway en pocos pasos. Y con funciones como !Ref o !Sub, personalizar tus recursos es pan comido.

Using the SAM CLI

El SAM CLI es tu mejor amigo cuando desarrollas apps serverless. Es una herramienta que hace el trabajo pesado por ti, con comandos que son fáciles de recordar:

  • sam init: Te arma un proyecto listo para usar
  • sam build: Prepara todo para el despliegue
  • sam deploy: Sube tu app a AWS
  • sam local start-api: Prueba API Gateway en tu máquina
  • sam local invoke: Ejecuta funciones Lambda localmente

¿Quieres desplegar tu app? Es tan simple como escribir:

sam deploy --guided

Este comando te guía paso a paso, preguntándote lo básico como el nombre del stack y dónde quieres desplegarlo.

Lo mejor del CLI es que puedes probar todo localmente. Encuentra errores antes de gastar dinero en AWS. Y si usas SAM Accelerate, tus ciclos de desarrollo serán aún más rápidos.

¿Trabajas con CI/CD? El CLI se lleva bien con Jenkins y GitHub Actions, así que puedes automatizar todo el proceso.

sbb-itb-03dc61e

Cómo Construir una Aplicación Serverless con AWS SAM

Iniciar un Nuevo Proyecto

Empezar con AWS SAM es más fácil de lo que piensas. Todo comienza con el comando sam init, que te ayuda a configurar tu proyecto paso a paso. Es como tener un asistente personal que te guía en la creación de tu aplicación serverless.

¿Qué necesitas decidir? Tres cosas básicas:

  • El lenguaje de programación (Node.js, Python, Java o Go)
  • Cómo empaquetar tu app (ZIP para proyectos pequeños o Docker para los más complejos)
  • Una plantilla base que se ajuste a lo que quieres crear

¿Quieres ver lo fácil que es? Aquí tienes un ejemplo para crear un proyecto con Node.js 14.x:

sam init --runtime nodejs14.x --package-type Zip --name mi-app-serverless

¡Y listo! SAM crea toda la estructura del proyecto por ti, incluyendo el archivo template.yaml y las carpetas que necesitas.

Compilar y Empaquetar la Aplicación

Cuando tengas tu código listo, es hora de prepararlo para AWS. Es tan simple como ejecutar:

sam build

Este comando hace todo el trabajo pesado: compila tu código, maneja las dependencias y prepara cada función Lambda por separado. No tienes que preocuparte por nada - SAM se encarga de todo.

Desplegar tu Aplicación

El momento de la verdad: poner tu aplicación en la nube. SAM hace que esto sea pan comido con:

sam deploy --guided

Este comando te hará algunas preguntas (como dónde quieres desplegar tu app y cómo quieres llamarla) y luego se encarga de todo el proceso de despliegue en AWS.

Fase Comando ¿Qué hace?
Inicio sam init Crea tu proyecto desde cero
Preparación sam build Empaqueta todo para AWS
Lanzamiento sam deploy --guided Pone tu app en la nube

Y así de simple es construir una aplicación serverless con AWS SAM. No necesitas ser un experto en la nube - SAM hace que todo el proceso sea directo y manejable. Ahora puedes concentrarte en escribir código genial mientras SAM se encarga de la infraestructura.

Tips para Usar AWS SAM de Forma Efectiva

Organiza tu Código

¿Cómo manejas funciones Lambda complejas? La clave está en dividirlas en tareas específicas. Imagina una tienda online: en lugar de tener una función gigante, separa el procesamiento de pagos y la gestión de inventarios. Así, cuando algo falla, sabrás exactamente dónde buscar.

El secreto está en mantener el orden: pon tu infraestructura en las plantillas SAM y tu código en carpetas separadas. Es como tener una cocina bien organizada - los ingredientes (código) van en la alacena, y las recetas (plantillas) en su propio libro.

Los nombres de tus recursos son como las etiquetas en esa cocina. Usa prefijos claros:

  • dev- para recursos de desarrollo
  • prod- para producción
  • ecommerce- para identificar la aplicación

Por ejemplo: ecommerce-orders-table o ecommerce-payment-function. Cuando todo tiene su nombre claro, es más fácil encontrar lo que buscas.

Herramientas para Pruebas y Depuración

Para construir aplicaciones serverless sólidas, necesitas las herramientas correctas. Es como tener un buen juego de herramientas para reparar tu casa - cada una tiene su propósito específico.

sam local es tu banco de pruebas personal. Prueba tus funciones Lambda en tu computadora antes de lanzarlas al mundo real. Es como hacer un ensayo general antes del gran estreno.

AWS X-Ray es tu detective privado. Te muestra dónde está el problema: ¿es tu función la que tarda mucho o es ese servicio externo que está respondiendo lento?

CloudWatch es tu sistema de alarma. Te avisa cuando algo no va bien, como cuando tu función Lambda empieza a comportarse de forma extraña.

SAM Accelerate es tu atajo inteligente. ¿Por qué esperar minutos para ver un cambio cuando puedes verlo casi al instante?

¿Buscas más información en español? El blog Dónde Aprendo AWS tiene guías y ejemplos prácticos creados por la comunidad hispanohablante de AWS.

Conclusiones y Siguientes Pasos

Puntos Principales

AWS SAM hace más simple crear aplicaciones serverless usando código para definir tu infraestructura. Los desarrolladores pueden centrarse en escribir código que aporte valor al negocio, en lugar de perder tiempo configurando recursos manualmente. Con el SAM CLI, puedes probar tu código localmente y desplegarlo más rápido, lo que ayuda a detectar problemas antes de que lleguen a producción.

Una gran ventaja de AWS SAM es que funciona perfectamente con sistemas CI/CD, lo que te permite desplegar código de forma segura y repetible. Y si necesitas hacer algo más específico, AWS SAM es lo bastante flexible para manejar recursos personalizados y arquitecturas más complejas.

Recursos para Seguir Aprendiendo

¿Quieres saber más sobre AWS SAM? Aquí tienes los mejores recursos para continuar tu aprendizaje:

  • La Documentación oficial de AWS SAM tiene todo lo que necesitas para empezar, desde guías básicas hasta consejos avanzados
  • En la Comunidad AWS encontrarás videos útiles y ejemplos reales. El repositorio de GitHub de AWS SAM está lleno de proyectos que puedes estudiar o mejorar
  • El blog Dónde Aprendo AWS ofrece contenido en español sobre AWS SAM y desarrollo serverless, perfecto si prefieres aprender en tu idioma

Con estos recursos podrás dominar AWS SAM y crear mejores aplicaciones serverless.

Related posts

Read more