Bienvenida

1

Creaci贸n de Aplicaciones Serverless Avanzadas en AWS

2

Mejorando Proyectos Serverless con Buenas Pr谩cticas y Funcionalidades

Buenas pr谩cticas en serverless

3

Integraci贸n de Servicios AWS en Proyectos Serverless Avanzados

4

Buenas Pr谩cticas con Serverless Framework en AWS

Serverless no es solo lambda

5

Validaci贸n de L贸gica de Negocio con API Gateway y JSON Schema

6

Integraci贸n de Servicios AWS en Arquitecturas Serverless

7

Subida Segura de Archivos a S3 usando URLs Firmadas

8

Creaci贸n y Configuraci贸n de Buckets S3 con CloudFormation

9

Generaci贸n de URLs firmadas con AWS Lambda y API Gateway

Lambda layers

10

Procesador de Im谩genes As铆ncrono con AWS Lambda y S3

11

Optimizaci贸n de Lambda con Layers en AWS y Serverless Framework

12

Automatizaci贸n de Lambda Layers con GitHub Actions y Serverless Framework

Asegurando nuestra app serverless

13

Seguridad en Aplicaciones Serverless con API Gateway y Custom Authorizers

14

Uso de API Keys en Serverless Framework y API Gateway

15

Creaci贸n de Custom Authorizers en AWS con Serverless Framework

16

Autorizaci贸n Personalizada con AWS Lambda y Custom Authorizer

Conectando ApiGateway con SQS

17

Asincronismo y Lambda: Implementaci贸n en AWS Serverless

18

Suma de Likes As铆ncrona con AWS Lambda y SQS

19

Implementaci贸n As铆ncrona de Likes con AWS Lambda y DynamoDB

Bonus

20

Configuraci贸n de Dominios Personalizados en AWS API Gateway

21

Configuraci贸n de Dominios Personalizados con Serverless Framework

22

Experiencias y desaf铆os en el desarrollo con Serverless en AWS

Cierra del curso

23

Resumen del Curso Serverless en AWS

No tienes acceso a esta clase

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

Optimizaci贸n de Lambda con Layers en AWS y Serverless Framework

11/24
Recursos

驴C贸mo optimizar peso usando Lambda Layers en AWS S3?

La optimizaci贸n de recursos en AWS es crucial para mejorar el rendimiento y reducir costos, especialmente al trabajar con funciones Lambda. En esta sesi贸n, abordaremos c贸mo emplear Lambda Layers para optimizar el peso de los microservicios en Amazon Web Services, espec铆ficamente utilizando Node.js. A trav茅s de esta t茅cnica, podemos minimizar la carga de dependencias en nuestras funciones Lambda, asegurando eficacia y funcionalidad sin comprometer la calidad del servicio.

驴C贸mo definir eventos S3 eficientemente?

  • Identificaci贸n de prefijos espec铆ficos: Es vital definir nuestras reglas de eventos S3 para activar cuando los archivos sean cargados en carpetas particulares, como Upload. Esto asegura que nuestras funciones solo se activen cuando y donde lo necesitamos.
  • Comprobaci贸n de la compilaci贸n: Al crear o modificar eventos, siempre es recomendable validar que la configuraci贸n funciona correctamente antes de implementar cambios en producci贸n.

驴Qu茅 es una Lambda Layer y por qu茅 usarla?

Una Lambda Layer es un recurso en AWS que nos permite compartir librer铆as, configuraciones o cualquier contenido entre varias funciones Lambda. Veamos por qu茅 es beneficioso:

  • Reducci贸n del tama帽o de implementaci贸n: Al trasladar las dependencias a una Layer, reducimos el tama帽o del paquete de implementaci贸n de nuestro servicio Lambda.
  • Reutilizaci贸n: Facilita compartir librer铆as entre diferentes funciones Lambda, evitando redundancias.
  • Actualizaci贸n centralizada: Permite actualizar una sola vez las dependencias y reflejar estos cambios en todas las funciones relacionadas.

Creaci贸n de una Lambda Layer paso a paso

Vamos a detallar el proceso de creaci贸n de una Lambda Layer con Node.js y el uso de AWS CLI.

  1. Estructura de directorios:

    • Colocamos las dependencias de Node.js en nodejs/node_modules.
  2. Comandos necesarios:

    • Usamos Bash Scripting para instalar y mover dependencias.
    npm install --only=prod
    mkdir -p nodejs
    mv node_modules nodejs/
    
  3. Compresi贸n a ZIP:

    • Comprimimos todo en un archivo .zip para su carga.
    zip -r nodejs.zip nodejs
    
  4. Publicar la Layer en AWS:

    • Usamos el CLI de AWS para subir y publicar la Layer.
    aws lambda publish-layer-version --layer-name my-first-layer --zip-file fileb://nodejs.zip --compatible-runtimes nodejs14.x
    

Integraci贸n de Lambda Layers con Serverless Framework

Para quienes gestionan sus proyectos con Serverless Framework, integrar las Layers es un proceso que puede simplificarse:

  • Declaraci贸n en serverless.yaml:

    • A帽adir la secci贸n layers especificando compatibilidades de runtime.
    layers:
      base:
        path: nodejs.zip
        compatibleRuntimes:
          - nodejs14.x 
    
  • Referencias a Layers en funciones Lambda:

    • Se puede definir el uso de Layers dentro de cada funci贸n.
    functions:
      myFunction:
        handler: handler.myHandler
        layers:
          - { Ref: MyLayer }
    

Validaci贸n y pruebas finales

Despu茅s de implementar Layers, es esencial validar que todo funciona correctamente:

  1. Pruebas en entorno de desarrollo: Generar URLs firmadas y cargar archivos, asegurando que se crean y visualizan en diferentes tama帽os.
  2. Revisi贸n en consola de AWS: Corroborar desde la consola que las funciones est谩n usando la Layer adecuada.

驴C贸mo automatizar la creaci贸n de Layers con GitHub Actions?

Aunque el proceso manual nos ofrece control detallado, la automatizaci贸n nos permite agilizar el flujo de trabajo y minimizar errores humanos. En pr贸ximas clases, exploraremos c贸mo emplear GitHub Actions para automatizar completamente la creaci贸n y publicaci贸n de Lambda Layers en AWS.

Este enfoque no solo optimiza recursos, sino tambi茅n tiempos de desarrollo y mantenimiento, permitiendo al personal t茅cnico centrarse en tareas m谩s complejas e innovadoras. 隆Sigue adelante y no pierdas la oportunidad de profundizar en estas buenas pr谩cticas para Cloud Computing!

Aportes 2

Preguntas 3

Ordenar por:

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

Les comparto algunos scripts de los comandos que miramos en la clase, y otros links de referencias de la clase, espero que les sirvan!

<h5>Script para crear layer</h5>
#!/bin/bash
npm i --omit=dev
mkdir nodejs/
mv node_modules/ nodejs/
zip -r nodejs-layer.zip nodejs/
rm -rf nodejs/
<h5>Script para subir layer</h5>
#!/bin/bash
aws lambda publish-layer-version --layer-name my-first-layer \
--description "My first layer for lambda with nodejs" \
--license-info "MIT" \
--zip-file fileb://nodejs-layer.zip \
--compatible-runtimes nodejs18.x \
--compatible-architectures x86_64 \
<h5>serverless.yml</h5>
...
package:
  individually: true
  patterns:
    - "!**"
...
functions:
  ...
  signedUrl:
    handler: src/signedUrl/handler.signedUrl
    name: signedUrl
    description: Obtain signedUrl to upload s3 bucket object
    package:
      patterns:
        - src/signedUrl/**/*.js
    layers:
      - !Ref BaseLambdaLayer
    memorySize: 128
    runtime: nodejs18.x
    architecture: x86_64
    timeout: 15
    events:
      - http:
          path: signedUrl
          method: GET
          request:
            parameters:
              querystrings:
                filename: true
...
layers:
  base:
    name: prd-dependencies
    description: layer for nodejs prd dependencies
    licenseInfo: MIT
    compatibleRuntimes:
      - nodejs18.x
    compatibleArchitectures:
      - x86_64
    package:
      artifact: nodejs-layer.zip
<h5>Resources</h5>

Muy importante informaci贸n, excelente.