Ir al contenido
Star
478
Star
478

SQL Writer

Esta guía te muestra cómo construir un escenario de nube híbrida usando LocalStack y una instancia externa de PostgreSQL. Este lab demuestra cómo una AWS Lambda recupera secretos de Secrets Manager e interactúa con una base de datos fuera del entorno AWS.

  1. Configurar el entorno:

    Abre VS Code en la carpeta del proyecto y ejecuta este comando en la Paleta de Comandos:

    Ventana de terminal
    > Dev Containers: Reopen in Container
  2. A continuación, configura el AWS CLI:

    Ventana de terminal
    aws configure set aws_access_key_id test
    aws configure set aws_secret_access_key test
    aws configure set region us-east-1
  3. Desplegar recursos:

    Ventana de terminal
    python package_lambda.py
    terraform init && terraform apply -auto-approve
  4. Ejecutar el ejemplo:

    Ventana de terminal
    aws --endpoint-url=http://localhost:4566 lambda invoke \
    --function-name AddUserFunction \
    --payload '{}' \
    response.json
  1. Verifica con DBeaver: Conecta a la instancia local de PostgreSQL y ejecuta la siguiente consulta:

    • Host: localhost.
    • Port: 5432.
    • Database: mydb.
    • User: myuser.
    • Password: mypassword.
    SELECT * FROM users ORDER BY created_at DESC;
  2. Verifica con AWS CLI:

    • Lista las funciones Lambda:
      Ventana de terminal
      aws --endpoint-url=http://localhost:4566 lambda list-functions
    • Comprueba los secretos:
      Ventana de terminal
      aws --endpoint-url=http://localhost:4566 secretsmanager list-secrets
Ventana de terminal
terraform destroy -auto-approve
docker compose down -v
rm lambda.zip response.json
ProblemaSolución
Conexión rechazadaAsegúrate de que host.docker.internal es accesible desde el contenedor LocalStack. En versiones antiguas de Docker en Linux, añádelo a extra_hosts en docker-compose.yml.
Puerto ya en usoModifica los mapeos de puertos para 4566 o 5432 en docker-compose.yml.