Slide 1

Slide 1 text

© 2023, Amazon Web Services, Inc. or its affiliates. Construyendo un app serverless en java con AWS SAM CLI Lino Espinoza (he/him)

Slide 2

Slide 2 text

© 2023, Amazon Web Services, Inc. or its affiliates. 2 Builder [noun] A person who constructs something by putting parts or material together over a period of time

Slide 3

Slide 3 text

© 2023, Amazon Web Services, Inc. or its affiliates. 3 Cloud Advocate Never stop learning from the community

Slide 4

Slide 4 text

© 2023, Amazon Web Services, Inc. or its affiliates. 4 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)

Slide 5

Slide 5 text

© 2023, Amazon Web Services, Inc. or its affiliates. 5 Agenda AWS Lambda 101 Tipos de aplicaciones lambda y patrones de invocación AWS SDK Java AWS SAM 101 AWS SAM Workshop

Slide 6

Slide 6 text

© 2023, Amazon Web Services, Inc. or its affiliates. 6 AWS Lambda 101

Slide 7

Slide 7 text

© 2023, Amazon Web Services, Inc. or its affiliates. 7 ¿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

Slide 8

Slide 8 text

© 2023, Amazon Web Services, Inc. or its affiliates. 8 ¿Qué se puede constuir usando AWS Lambda? Automatización Procesamiento de información Aplicaciones Web Aplicaciones basadas en eventos Machine Learning

Slide 9

Slide 9 text

© 2023, Amazon Web Services, Inc. or its affiliates. 9 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)

Slide 10

Slide 10 text

© 2023, Amazon Web Services, Inc. or its affiliates. 10 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)

Slide 11

Slide 11 text

© 2023, Amazon Web Services, Inc. or its affiliates. 11 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.

Slide 12

Slide 12 text

© 2023, Amazon Web Services, Inc. or its affiliates. 12 Ciclo de vida de una función lambda

Slide 13

Slide 13 text

© 2023, Amazon Web Services, Inc. or its affiliates. 13 Ciclo de vida de una función lambda QUE PUEDO Y NO PUEDO OPTIMIZAR

Slide 14

Slide 14 text

© 2023, Amazon Web Services, Inc. or its affiliates. 14 Tipos de invocación de una function lambda

Slide 15

Slide 15 text

© 2023, Amazon Web Services, Inc. or its affiliates. 15 Tipos de invocación de una función lambda SÍNCRONA, ASÍNCRONA Y BASADA EN EVENTOS

Slide 16

Slide 16 text

© 2023, Amazon Web Services, Inc. or its affiliates. 16 AWS SDK para Java

Slide 17

Slide 17 text

© 2023, Amazon Web Services, Inc. or its affiliates. 17 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 software.amazon.awssdk bom 2.21.37 pom import // Import individual modules (in this case API gateway for example) software.amazon.awssdk apigateway

Slide 18

Slide 18 text

© 2023, Amazon Web Services, Inc. or its affiliates. 18 Infraestructura como Código (IAC)

Slide 19

Slide 19 text

© 2023, Amazon Web Services, Inc. or its affiliates. 19 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/

Slide 20

Slide 20 text

© 2023, Amazon Web Services, Inc. or its affiliates. 20 AWS Serverless Application Model (SAM)

Slide 21

Slide 21 text

© 2023, Amazon Web Services, Inc. or its affiliates. 21 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

Slide 22

Slide 22 text

© 2023, Amazon Web Services, Inc. or its affiliates. 22 AWS SAM template AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: GetHelloWorldFunction: Type: AWS::Serverless::Function Properties: Handler: index.handler Runtime: java20 CodeUri: s3://my-bucket/my-jar.jar Policies: DynamoDBReadPolicy Events: GetTodo: Type: Api Properties: Path: /todo/{id} Method: GET SimpleTable: Type: AWS::Serverless::SimpleTable SAM template transform Creates: • Lambda function • Runtime • Execution Policy • Code • Hander • API Gateway • API Endpoint • Permissions Create DynamoDB table with some defaults

Slide 23

Slide 23 text

© 2023, Amazon Web Services, Inc. or its affiliates. 23 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

Slide 24

Slide 24 text

© 2023, Amazon Web Services, Inc. or its affiliates. 24 AWS SAM Workshop

Slide 25

Slide 25 text

© 2023, Amazon Web Services, Inc. or its affiliates. 25 AWS SAM Workshop https://bit.ly/481EsJV https://catalog.workshops.aws/complete-aws-sam/es-US