Acerca de mi Builder y evangelista del mundo cloud en AWS - Serverless Technical Lead, Ex-Kushki Papá, amante del buen té y café Typescript & Go lover <3 LINO ESPINOZA (HE/HIM)
¿Qué es AWS Lambda? Provee tu código o imagen Paga por milisegundo Empaqueta como un .zip file (250 MB) o como un container image (10 GB) Soporta lenguajes como (Java, Go, Node.js, .NET, Python, Ruby) Sin aprovisionamiento o administración de servidores Escalamiento en milisegundos en respuesta al tráfico ES LA FORMA MÁS RÁPIDA DE CONSTRUIR APLICACIONES MODERNAS CON EL MÁS BAJO COSTO DE OPORTUNIDAD
¿Qué se puede constuir usando AWS Lambda? Automatización Procesamiento de información Aplicaciones Web Aplicaciones basadas en eventos Machine Learning
Anatomía de una función lambda • Función a ejecutarse después de la invocación • Contiene la información enviada durante la invocación de la lambda Event (object) • Metadata para obtener información del runtime (requestId, authorizers, log group, etc) Handler Context (object)
Conceptos de AWS Lambda • Serverless • Escalamiento automático • Pagas por lo que usas • Casos de uso • Procesamientos de data a escala • Web y mobile backends • Cargas de trabajo de Machine Learning • Aplicaciones basadas en eventos (Event Driven Architecture)
Conceptos de AWS Lambda • Basado en memoria, mientras más memoria consumas, lo mismo con el cpu • Considera que un tamaño pequeño de una función lambda, no necesariamente significa menores costos.
AWS SDK para Java DESARROLLAR E IMPLEMENTAR APLICACIONES PARA JAVA, FACILITA EL LLAMADO A SERVICIOS DE AWS CON API DE JAVA IDIOMÁTICAS // pom.xml <dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>bom</artifactId> <version>2.21.37</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> // Import individual modules (in this case API gateway for example) <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>apigateway</artifactId> </dependency>
AWS CloudFormation • Infraestructura como código • Brinda un lenguaje común para describir y provisionar todos los recursos de tu infraestructura en el entorno de la nube. • Puedes provisionar la infraestructura y las aplicaciones, sin tener que ejecutar operaciones manuales o escribir scripts ad-hocs https://aws.amazon.com/cloudformation/
AWS Serverless Application Model (SAM) DESARROLLAR E IMPLEMENTAR APLICACIONES PARA JAVA, FACILITA EL LLAMADO A SERVICIOS DE AWS CON API DE JAVA IDIOMÁTICAS Es un framework opensource para construir aplicaciones serverless en AWS Cuenta con una sintaxis abreviada para declarar funciones, APIs, bases de datos, y mappings de eventos. Basado en YAML, deploy se realiza con AWS CloudFormation https://aws.amazon.com/serverless/sam/ https://github.com/aws/serverless-application-model
Iniciando con AWS SAM CLI sam init - Genera un template pre-configurado de AWS SAM junto con código de ejemplo en el lenguaje de tu preferencia sam package - Empaqueta el codigo de la aplicación junto con las dependencias en un ”deployment package” sam build - Prepara los siguientes pasos para hacer deploy o probar locamente sam deploy - Despliega tu aplicación serverless a la nube de AWS sam local - Prueba el código de tu aplicación localmente sam logs - Obtén los logs generados por tu función lambda desplegada