Desmitificar la DX para funciones Lambda

Rate this content
Bookmark

En esta sesión, comparto contigo cómo AWS CDK y AWS Toolkit pueden simplificar la experiencia del desarrollador para ejecutar cargas de trabajo sin servidor en la nube

Una sesión sin diapositivas, solo un IDE y una CLI para implementar una API en la nube, actualizarla rápidamente y recuperar registros sin salir de tu IDE favorito!

FAQ

El AWS Cloud Development Kit, o CDK, es una herramienta de infraestructura como código ofrecida por AWS que permite a los desarrolladores escribir en su lenguaje favorito y generar automáticamente plantillas de CloudFormation para el despliegue y aprovisionamiento de código e infraestructura.

Para desplegar una carga de trabajo en AWS usando CDK, simplemente tienes que ejecutar el comando 'cdk deploy' en tu terminal y seleccionar el perfil de configuración adecuado para tu región e información necesaria.

AWS CDK permite probar funciones Lambda localmente utilizando SAM (Serverless Application Model), una CLI que se puede ejecutar con el comando 'SAM local start API' para probar APIs en un entorno local.

Para obtener una retroalimentación rápida, puedes utilizar la opción 'hot swap' con el comando 'CDK deploy'. Esto permite actualizar el código de la función Lambda sin pasar por un nuevo despliegue de CloudFormation, acelerando significativamente el proceso de desarrollo.

AWS Lambda Power Tool es una herramienta que facilita la operacionalización de la observabilidad de las aplicaciones en AWS. Proporciona funcionalidades como la adición de trazas, métricas y registros, que generalmente están disponibles en CloudWatch.

Puedes invocar funciones Lambda directamente desde tu IDE utilizando el AWS Toolkit. Esta herramienta permite ejecutar funciones directamente, sin necesidad de usar comandos de CLI como curl, proporcionando una integración directa con eventos y visualización de resultados.

Amazon Q es una herramienta en vista previa que permite hacer preguntas sobre partes específicas del código y recibir sugerencias de optimización. Por ejemplo, puede sugerir métodos más eficientes para realizar operaciones de base de datos, como usar 'copy' en lugar de insertar registros individualmente.

Luca Mezzalira
Luca Mezzalira
30 min
15 Feb, 2024

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Bienvenido a esta sesión sobre la Experiencia del Desarrollador de Lambda. Aprende sobre cómo usar AWS Cloud Development Kit (CDK) para escribir código en tu lenguaje favorito y generar automáticamente plantillas de CloudFormation. Prueba localmente con SAM CLI e implementa con CDK. Acelera las pruebas y actualizaciones con las banderas de CDK. Usa AWS Toolkit para invocar funciones Lambda, analizar registros y generar código con Application Composer.

1. Introducción a la Experiencia del Desarrollador de Lambda

Short description:

Bienvenido a esta sesión sobre la Experiencia del Desarrollador de Lambda. Descubre herramientas para desarrollar adecuadamente cargas de trabajo sin servidor utilizando la función Lambda directamente con Visual Studio Code o IntelliJ.

Hola, y bienvenido a esta sesión sobre la Experiencia del Desarrollador de Lambda. ¿Con qué frecuencia te has encontrado desplegando tu carga de trabajo de Node.js en la nube y tienes que esperar a que CloudFormation o Terraform o cualquier otra cosa despliegue todo tu código cada vez, a pesar de que solo cambies una línea de código? El ciclo de retroalimentación que tienes que esperar para el despliegue es bastante largo. A veces sales a tomar un café, tal vez pierdes el impulso, y por lo tanto, hoy quiero mostrarte cuáles son las herramientas disponibles para desarrollar adecuadamente una carga de trabajo sin servidor utilizando la función Lambda, tu servicio de cómputo favorito, directamente con Visual Studio Code o IntelliJ porque todo lo que te voy a mostrar hoy será válido para VS Code.

2. Usando AWS Cloud Development Kit (CDK)

Short description:

AWS Cloud Development Kit (CDK) es una herramienta de infraestructura como código proporcionada por AWS. Te permite escribir código en tu lenguaje favorito y genera automáticamente una plantilla de CloudFormation para el despliegue. Veamos un ejemplo: una aplicación simple de Hola Mundo utilizando ESM con nodos y CDK. CDK te permite escribir TypeScript y extender la función Lambda con capacidades adicionales como opciones de empaquetado utilizando ESBuild. Desplegar la solución es tan simple como ejecutar 'cdk deploy' y elegir el perfil con la información necesaria. CDK se encargará del despliegue, incluyendo la creación de una API HTTP que actúa como proxy a través de API Gateway. Una vez desplegado, puedes acceder a la API utilizando la URL proporcionada.

así como IntelliJ. Así que empecemos. En primer lugar, lo que vamos a usar hoy es el AWS Cloud Development Kit, o CDK como todos lo llaman, es una de las herramientas de infraestructura como código que se ofrecen por AWS y te permite escribir en tu lenguaje favorito y luego automáticamente, detrás de escena, cuando estamos construyendo nuestro artefacto, lo que sucede es que estamos generando una plantilla de CloudFormation que luego se utilizará para el despliegue y aprovisionamiento de tu código e infraestructura. Ahora, intentemos ver un ejemplo. He preparado un par de ejemplos para que podamos empezar a ver eso. Así que el primer ejemplo aquí es sobre un ejemplo muy simple de Hola Mundo. He creado esta plantilla para usar ESM con nodos y usar CDK para definir mi infraestructura. Como puedes ver aquí, la belleza de CDK es que estoy escribiendo TypeScript, que en este caso es mi lenguaje favorito para escribir CDK. Y aquí tengo un constructo de alto nivel como una función de node.js que extiende la función Lambda. Como puedes ver aquí, está extendiendo este constructo, este constructo de bajo nivel que se llama función Lambda y está agregando nuevas capacidades como la posibilidad de agregar opciones de empaquetado. Por defecto, CDK te ofrece la posibilidad de usar ESBuild y, por lo tanto, ¿por qué no aprovechar eso para hacer que el tamaño de nuestro paquete sea más pequeño? Como puedes ver aquí, uso el empaquetado con una serie de configuraciones que me permiten tener la posibilidad de usar módulos ESM, así como otras capacidades como el esperar en el nivel superior, por ejemplo. Y ahora, si queremos desplegar esta solución en una cuenta de AWS, es tan simple como escribir aquí cdk deploy y luego decido qué perfil que configuré múltiples perfiles en mi máquina quiero usar, donde tengo la región, tengo mi información necesaria para desplegar esta carga de trabajo en la nube. Ahora es la primera vez que lo hago. Como puedes ver, CDK me está diciendo, oh, por cierto, hay algunas cosas que necesitas desplegar, que son todas las cosas en verde. Como puedes ver aquí, eso será necesario para tener esta API funcionando dentro de mi sistema. Así que, está bien, esto es tan simple como una función lambda con una API HTTP que actúa como proxy que muestra como API Gateway la posibilidad de exponer tu API. En un minuto, esto estará funcionando y disponible en la nube. Y mientras tanto, podemos ver que aquí tenemos la definición de mi hola ESM lambda. Luego tenemos una definición de API HTTP que puedes hacer fácilmente con CDK. Solo creo la integración que básicamente te permite tener todos los roles y configuraciones necesarios para enlazar en una ruta específica tu función lambda. Y aquí tienes la ruta que es la ruta raíz, el método con el que puedes invocar esta función lambda específica. Y eso es básicamente lo que obtienes. Y al final, vamos a tener también este constructo, esta salida de CFN, básicamente resalta dentro de tu línea de comandos, la URL donde puedes encontrar esta API. Tan simple como eso. Así que ahora hemos desplegado todo. Como puedes ver, tenemos una URL que es útil. Así que si todo va bien, deberíamos tener nuestra API funcionando. Y aquí estamos. Tenemos hola nodo.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

AWS Lambda bajo el capó
Node Congress 2023Node Congress 2023
22 min
AWS Lambda bajo el capó
Top Content
En esta charla explico cómo funciona el servicio AWS Lambda, explicando la arquitectura, cómo escala y cómo un desarrollador debería pensar cuando diseñan su software utilizando funciones Lambda
Optimización del rendimiento de AWS Lambda
Node Congress 2024Node Congress 2024
25 min
Optimización del rendimiento de AWS Lambda
¿Alguna vez te has preguntado cómo obtener lo mejor de tus funciones Lambda?Si es así, esta charla revelará los entresijos de uno de los servicios sin servidor más populares y te brindará una guía paso a paso para optimizar tus funciones.En esta sesión, te guiaré a través de la mentalidad para reducir el tiempo de ejecución de tus funciones Lambda. En el ejemplo presentado, pude reducir el tiempo de ejecución en un 95% para el inicio en caliente y más del 50% en los inicios en frío, mejorando también las transacciones por segundo atendidas con esta API.
Construyendo APIs GraphQL sin servidor en tiempo real en AWS con TypeScript y CDK
React Summit 2020React Summit 2020
25 min
Construyendo APIs GraphQL sin servidor en tiempo real en AWS con TypeScript y CDK
CDK (Cloud development kit) permite a los desarrolladores construir infraestructura en la nube utilizando lenguajes de programación populares como Python, TypeScript o JavaScript. CDK es una abstracción de nivel superior en infraestructura como código, lo que permite a los desarrolladores que tradicionalmente no estaban familiarizados con la computación en la nube construir APIs y servicios web escalables utilizando sus habilidades existentes, y hacerlo en solo unas pocas líneas de código.
En esta charla, aprenderás cómo utilizar la versión de TypeScript de CDK para construir una API en tiempo real altamente escalable con GraphQL, Lambda, DynamoDB y AWS AppSync. Al final de la charla, codificaré en vivo una API desde cero en solo un par de minutos y luego probaré consultas, mutaciones y suscripciones.
Al final de la charla, deberías tener una buena comprensión de GraphQL, AppSync y CDK y estar listo para construir una API en tu próximo proyecto utilizando TypeScript y CDK.
Automatizar Despliegues de Sitios React desde GitHub a S3 y CloudFront
DevOps.js Conf 2021DevOps.js Conf 2021
33 min
Automatizar Despliegues de Sitios React desde GitHub a S3 y CloudFront
En esta masterclass, demostraré cómo crear un pipeline de CI/CD para una aplicación React en AWS. Extraeremos el código fuente de GitHub y ejecutaremos pruebas contra la aplicación antes de desplegarla en un bucket de S3 para alojamiento de sitios estáticos. Luego, distribuiremos el sitio utilizando CloudFront, que apuntará al bucket de S3. Toda la infraestructura se construirá utilizando Terraform. Además, utilizaré Terragrunt para mostrar cómo crear esta configuración para múltiples entornos.
Infraestructura como Código para Aplicaciones React en AWS Escritas en TypeScript
React Advanced Conference 2021React Advanced Conference 2021
30 min
Infraestructura como Código para Aplicaciones React en AWS Escritas en TypeScript
Consideramos qué es IaC (Infraestructura como Código) y por qué deberíamos invertir nuestro tiempo/dinero en ello. Será una charla estilo masterclass y al finalizar, tendrás una infraestructura completa como código para una aplicación React en AWS escrita en TypeScript
Construyendo un sofisticado CodePipeline con CDK en una configuración de Monorepo
DevOps.js Conf 2024DevOps.js Conf 2024
8 min
Construyendo un sofisticado CodePipeline con CDK en una configuración de Monorepo
Muchas empresas están adoptando completamente AWS y, por lo tanto, están adoptando su conjunto completo de herramientas de código para sus procesos de CI/CD. Sin embargo, aunque CodePipeline es la plataforma para este proceso, puede que no sea la más fácil de usar. En una configuración de Monorepo, es típico crear múltiples pipelines de CI/CD para cada paquete. Sin embargo, hay varias precauciones que debes tener en cuenta. Por ejemplo, es posible que te encuentres con escenarios en los que se activan múltiples pipelines incluso si solo modificaste un archivo, o puedes cuestionar la necesidad de crear múltiples ramas para cada pipeline. En esta charla, proporcionamos consejos valiosos para construir un sofisticado CodePipeline utilizando CDK en un entorno de Monorepo. Las técnicas discutidas en esta charla también son aplicables a otras herramientas de CI/CD.

Workshops on related topic

Construyendo Aplicaciones Serverless en AWS con TypeScript
Node Congress 2021Node Congress 2021
245 min
Construyendo Aplicaciones Serverless en AWS con TypeScript
Workshop
Slobodan Stojanović
Slobodan Stojanović
Este masterclass te enseña los conceptos básicos del desarrollo de aplicaciones serverless con TypeScript. Comenzaremos con una función Lambda simple, configuraremos el proyecto y la infraestructura como código (AWS CDK) y aprenderemos cómo organizar, probar y depurar una aplicación serverless más compleja.
Tabla de contenidos:        - Cómo configurar un proyecto serverless con TypeScript y CDK        - Cómo escribir una función Lambda testeable con arquitectura hexagonal        - Cómo conectar una función a una tabla DynamoDB        - Cómo crear una API serverless        - Cómo depurar y probar una función serverless        - Cómo organizar y hacer crecer una aplicación serverless


Materiales mencionados en el masterclass:
https://excalidraw.com/#room=57b84e0df9bdb7ea5675,HYgVepLIpfxrK4EQNclQ9w
Blog de DynamoDB de Alex DeBrie: https://www.dynamodbguide.com/
Excelente libro para DynamoDB: https://www.dynamodbbook.com/
https://slobodan.me/workshops/nodecongress/prerequisites.html
Masterclass de Frontend en la Nube Hecho Fácil - Un Taller de ReactJS + AWS
DevOps.js Conf 2024DevOps.js Conf 2024
59 min
Masterclass de Frontend en la Nube Hecho Fácil - Un Taller de ReactJS + AWS
Workshop
Eyal Keren
Eyal Keren
Este taller te permite aprender cómo desarrollar aplicaciones React y luego desplegarlas en la nube (o construirlas en la consola) junto con un backend completamente abstracto, sin una configuración de backend compleja, simplificando la construcción y el despliegue de aplicaciones frontend y web en la nube.