S3 Garage
Esta guía te muestra cómo trabajar con AWS S3 usando Garage como emulador local. Este lab demuestra un pipeline de datos usando Boto3, PyArrow y Delta Lake (delta-rs).
Prerrequisitos
Sección titulada «Prerrequisitos»- Docker instalado y en ejecución.
- Dev Containers extension instalada (opcional).
Cómo ejecutar
Sección titulada «Cómo ejecutar»-
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- Inicia la infraestructura: Lanza los contenedores necesarios.
Ventana de terminal docker compose up -d - Ejecuta el script de configuración para instalar herramientas y dependencias.
Ventana de terminal scripts/setup.sh
- Inicia la infraestructura: Lanza los contenedores necesarios.
-
Ejecutar el ejemplo:
Ventana de terminal python main.py
Cómo depurar
Sección titulada «Cómo depurar»-
main.py:
- Abre: Abre
main.py. - Breakpoints: Coloca breakpoints en el código.
- Ejecuta: Pulsa
F5para iniciar la depuración.
- Abre: Abre
-
Tests:
- Abre: Abre un fichero de test (p. ej.,
tests/components/test_s3_boto.py). - Breakpoints: Coloca breakpoints en el código del test.
- Ejecuta: Usa la pestaña Testing de VS Code y haz clic en el icono Debug Test junto al test que quieras depurar.
- Abre: Abre un fichero de test (p. ej.,
Cómo testear
Sección titulada «Cómo testear»- Individualmente: Ejecuta los tests individualmente desde la pestaña Testing de VS Code.
- Todos los tests: Ejecuta el script automatizado:
Ventana de terminal scripts/run_tests.sh
Validar resultados
Sección titulada «Validar resultados»- Verifica los buckets: Comprueba que se crearon los buckets
bronzeysilver.Ventana de terminal aws s3 ls --profile garageVentana de terminal mise exec -- aws s3 ls --profile garage - Verifica el contenido: Comprueba los archivos en el bucket silver.
Ventana de terminal aws s3 ls s3://silver --recursive --profile garageVentana de terminal mise exec -- aws s3 ls s3://silver --recursive --profile garage
- Lanza la interfaz gráfica de Rclone:
Ventana de terminal scripts/rclone-gui.sh - Abre en tu navegador:
Ventana de terminal http://127.0.0.1:5572 - Inicia sesión: Si te pide usuario y contraseña, escribe cualquier cosa, se acepta cualquier valor.
Limpieza
Sección titulada «Limpieza»docker compose down -vSolución de problemas
Sección titulada «Solución de problemas»| Problema | Solución |
|---|---|
| API de Garage no lista | Asegúrate de que el contenedor garage está en ejecución y espera unos segundos a que la API se inicialice. Revisa los logs con docker logs garage. |
| Puerto 3900 en uso | Detén cualquier otro servicio que use el puerto 3900 o cambia el mapeo en docker-compose.yml. |