Conexión y Configuración de Lambda con AWS y Postgres
Clase 21 de 30 • Curso de Ciberseguridad para Desarrollo Web
Contenido del curso
- 11

Integración de GitHub Webhooks y AWS para Gestión de Commits
02:24 - 12

Gestión de Infraestructura como Código con Terraform en AWS
09:34 - 13

Infraestructura como Código con Terraform y Makefiles
17:44 - 14

Automatización de Infraestructura con Terraform: Roles y Políticas en AWS
06:03 - 15

Implementación de buckets y funciones Lambda con Terraform y AWS S3
16:44 - 16

Configuración de Bases de Datos en AWS con VPC y Seguridad IP
14:10 - 17

Configuración de Lambdas en VPC usando Terraform
12:29 - 18

Configuración de API Gateway para Lambdas en AWS
05:42
- 19

Configuración de Autenticación con Auth0 en Aplicaciones Web
07:14 - 20

Implementación de Authorizer con Auth0 en AWS Lambda
16:56 - 21

Conexión y Configuración de Lambda con AWS y Postgres
13:35 - 22

Configuración de Endpoints y Políticas en AWS con Terraform
11:27 - 23

Validación de Webhooks desde GitHub usando User Agent
12:08 - 24

Validación de Webhooks de GitHub con AWS Secrets Manager
14:32
¿Cómo configurar la conexión a la base de datos al desarrollar una función Lambda?
Cuando estás desarrollando funciones Lambda, especialmente para aplicaciones en AWS, una de las partes más críticas es configurar correctamente la conexión a tu base de datos. En este caso en particular, discutiremos cómo establecer una conexión a una base de datos Postgres desde una función Lambda, asegurándonos de hacerlo de manera eficiente y segura.
¿Cómo crear la estructura del proyecto?
-
Configura el directorio y los archivos necesarios:
- Crea un nuevo directorio
databasedentro de tu proyecto de seguimiento de GitHub (GitHub Tracker). - Dentro de este directorio, crea un archivo
database.go.
- Crea un nuevo directorio
-
Implementación de lógica de conexión:
- El paquete de
databasedebe incluir la lógica necesaria para conectarse a una base de datos. Aunque es transversal a todas las bases de datos, este ejemplo se centrará en Postgres.
- El paquete de
-
Define el método de conexión:
- Usa un método
Connectque reciba un objetocontexty devuelva una conexión SQL. - Utiliza
syncMuteren una variabledbOncepara garantizar que la conexión se realice solo una vez.
- Usa un método
¿Cómo obtener credenciales con el Cliente de Secrets Manager?
- Configuración de las variables de entorno:
- Extrae información como host, puerto, usuario y un
secret IDde las variables de entorno.
- Extrae información como host, puerto, usuario y un
- Manipulación con AWS Secrets Manager:
- Crea un cliente para Secrets Manager para acceder al API y obtener el
secret ID. - Desempaque el secreto que viene como un mapa de JSON a un mapa de strings.
- Crea un cliente para Secrets Manager para acceder al API y obtener el
¿Cómo añadir dependencias y sincronizarlas?
-
Incluir el driver de Postgres:
- Asegúrate de tener el driver de Postgres entre tus dependencias para garantizar la conexión correcta.
-
Descarga dependencias con Go:
- Utiliza
go getpara obtener librerías necesarias, incluidasconfigy el SDK de AWS.
- Utiliza
-
Sincroniza con el archivo vendor:
- Usa
go mod vendorpara asegurar que todas las dependencias estén correctamente alineadas ygo mod digpara validarlas.
- Usa
¿Cómo configurar la función Lambda getMetrix?
-
Estructura de la respuesta:
- Define la respuesta que devolverá la Lambda, la cual incluirá autor, número de commits y detalles de cada commit.
-
Validar parámetros de entrada:
- Extrae y valida el email desde los
path parametersdel request. Si falta, retorna unbadRequest.
- Extrae y valida el email desde los
-
Conexión a la base de datos:
- Utiliza la lógica de conexión configurada previamente para establecer la comunicación con la base de datos y manejar posibles errores.
-
Manipulación de datos:
- Con los commits obtenidos, utiliza una función
parseResponsepara transformarlos en un objeto de respuesta que pueda ser enviado por el API Gateway.
- Con los commits obtenidos, utiliza una función
-
Conversión a JSON:
- Empaquétalos utilizando marshall para transformar la respuesta a un JSON y ajusta los headers a
application/json.
- Empaquétalos utilizando marshall para transformar la respuesta a un JSON y ajusta los headers a
¿Qué más considerar antes de probar la función Lambda?
-
Datos en la base de datos:
- Inserta registros dummy en la base de datos usando herramientas como
pgAdminpara garantizar que haya datos al probar la Lambda.
- Inserta registros dummy en la base de datos usando herramientas como
-
Configuración en AWS:
- Asegúrate de que la función Lambda tenga permisos para acceder al API de Secrets mediante la configuración en Terraform y verifica los grupos de seguridad para conexiones IP.
Este proceso asegura que tu función Lambda no solo se conecte de manera eficiente a tu base de datos, sino que también maneje de manera segura y lógica cualquier posible error en el proceso. ¡No hay mejor momento para poner en práctica estos conocimientos y seguir experimentando para optimizar tus soluciones en AWS!