No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Probar y debuggear en local y en la nube

11/25
Recursos

驴C贸mo probar aplicaciones serverless localmente?

Si est谩s trabajando con aplicaciones serverless, puede ser un desaf铆o probar localmente funciones que est谩n dise帽adas para funcionar en la nube. Afortunadamente, existen herramientas que facilitan este proceso, permiti茅ndote emular y verificar el funcionamiento de tu aplicaci贸n antes de desplegarla. Veamos c贸mo puedes hacerlo eficientemente.

驴C贸mo hacer la aplicaci贸n m谩s din谩mica?

Para a帽adir dinamismo a una API y asegurarte de que responda con datos cambiantes, puedes jugar con variables como la hora, los minutos y los segundos. Aqu铆 tienes un ejemplo de c贸mo implementar esto en tu aplicaci贸n:

const hora = new Date().getHours();
const minuto = new Date().getMinutes();
const segundo = new Date().getSeconds();

// Concatenar para mostrar en el body de la respuesta
const mensaje = `Hora: ${hora}:${minuto}:${segundo}`;

As铆, cada solicitud GET a tu funci贸n lambda te mostrar谩 una hora distinta, logrando un comportamiento m谩s reactivo y menos est谩tico.

驴C贸mo invocar funciones localmente con Serverless Framework?

Una ventaja del framework serverless es la capacidad de probar tus funciones localmente. Aqu铆 te mostramos c贸mo:

  1. Uso del comando invoke local:

    Este comando te permite ejecutar funciones localmente sin necesidad de desplegar tu aplicaci贸n en la nube. Espec铆ficamente, utiliza:

    sls invoke local --function nombreDeFunci贸n
    

    Reemplaza nombreDeFunci贸n con el nombre espec铆fico de la funci贸n lambda que deseas probar, como est谩 definido en tu archivo serverless.yaml.

驴Qu茅 es y c贸mo se instala el plugin Serverless Offline?

El plugin Serverless Offline es una herramienta imprescindible para emular un entorno AWS local. Permite simular el comportamiento de AWS Lambda y API Gateway. Para instalarlo:

  1. Instalaci贸n con npm:

    Ejecuta el siguiente comando en tu terminal:

    npm install serverless-offline
    
  2. Configuraci贸n en serverless.yaml:

    A帽ade la secci贸n de plugins en tu archivo de configuraci贸n para incluir el plugin:

    plugins:
      - serverless-offline
    

驴C贸mo probar la aplicaci贸n con Serverless Offline?

Despu茅s de configurar e instalar el plugin, puedes iniciar tu aplicaci贸n en un entorno simulado local:

  1. Ejecutar el servidor offline:

    Usa el comando siguiente para arrancar la aplicaci贸n simulando AWS API Gateway:

    sls offline start
    
  2. Acceso a la funci贸n:

    La aplicaci贸n correr谩 en localhost en el puerto 3000. Puedes verificar su funcionamiento en tu navegador visitando la URL mostrada, t铆picamente algo como: http://localhost:3000/dev/hello.

Con estas herramientas, puedes ahorrar tiempo y recursos al poder desarrollar y probar diferentes l贸gicas y funcionalidades de manera eficaz antes de llevar tu aplicaci贸n a producci贸n.

驴Por qu茅 usar Serverless Framework y sus plugins?

Usar Serverless Framework junto con plugins como Serverless Offline te otorga flexibilidad y control sobre el proceso de desarrollo. El uso de estos recursos te ayudar谩 a evitar el ciclo ineficaz de despliegue y prueba en entornos en la nube, acelerando significativamente tu flujo de trabajo.

Estos pasos aseguran no solo que tu c贸digo funcione correctamente antes de implementarlo, sino que tambi茅n te da la oportunidad de explorar y familiarizarte con otros plugins que la comunidad ofrece, enriqueciendo a煤n m谩s el alcance y las capacidades de tus proyectos serverless. 隆An铆mate a experimentar con ellos y lleva tus desarrollos al siguiente nivel!

Aportes 7

Preguntas 2

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

Hola, si quieren que detecte los cambios y no estar corriendo el comando de nuevo pueden usar la opcion --reloadHandler

serverless offline start --reloadHandler

De esta manera cada que hagan cambios y guarden dentro de su funci贸n la recargar谩 automaticamente.

sls invoke local --function hello-world

Podemos acortar un poco el comando, en vez de ejecutar:

serverless invoke local --function hello-world
or
serverless offline start

Podr铆amos usar:

sls invoke local -f hello-world
or
sls offline start

Algo que me gusta de los profesores y que es muy distinto de otros que he visto dentro de platzi, es que te dicen y ense帽an de donde ellos saben como remover o desplegar algo basado en las funciones propias de sls framework, me gusta mucho como explican y los felicito; asi es como se debe ense帽ar y no dar todo por entendido.

You can also install the plugin with the following command so you don't have to user NPM `sudo sls plugin install --name serverless-offline` This will install the node dependencies.
## ecomendaciones 1. **Nombres de buckets** deben ser 煤nicos a nivel global. Si recibes error al desplegar, cambia `bucket-serverless-course-123213` por otro 煤nico. 2. **Acceso p煤blico** en S3: si esto es solo para pruebas o archivos est谩ticos (como im谩genes o PDFs), est谩 bien. Pero **en producci贸n** te recomiendo limitar los permisos o usar CloudFront. 3. Para **crear tablas m谩s complejas** en DynamoDB (por ejemplo, con 铆ndices secundarios o TTL), puedes extender `AttributeDefinitions` y `GlobalSecondaryIndexes`.
**Tips** Para obtener el --help de cualquier comando, se puede tipear `command --help`, es decir, si deseamos ver la ayuda del comando `start`, hacemos `sls offline start --help` y nos mostrar谩 toda la ayuda. Lo mismo se puede aplicar con cualquier otro comando que se desee saber su ayuda.