Storage Writer
Esta guía te muestra cómo construir una función AWS Lambda que sube archivos a S3 localmente usando LocalStack. Este lab demuestra múltiples métodos de despliegue — Terraform, CloudFormation y Boto3.
Prerrequisitos
Sección titulada «Prerrequisitos»- Docker instalado y en ejecución.
- Dev Containers extension instalada (opcional).
- AWS Toolkit para VS Code (opcional, incluido en el Dev Container).
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 LocalStack:
Ventana de terminal docker compose up -d localstack - Configura el entorno (instala mise, Python, AWS CLI, Terraform y sincroniza dependencias):
Ventana de terminal scripts/setup-mve.sh - Instala el AWS Toolkit: Instala la extensión AWS Toolkit y conecta usando el perfil
localstackconfigurado por el script de instalación. - Despliega los recursos:
Ventana de terminal scripts/boto3/deploy.sh
- Inicia LocalStack:
-
Ejecutar el ejemplo:
Ventana de terminal python main.py- Selecciona el perfil
localstacken el AWS Toolkit. - Haz clic derecho en la función
upload-to-s3y selecciona Invoke Lambda….
- Selecciona el perfil
Métodos de despliegue
Sección titulada «Métodos de despliegue»Hay otros métodos de despliegue que puedes usar en este lab.
scripts/terraform/deploy.shscripts/cloudformation/deploy.shscripts/boto3/deploy.shValidar resultados
Sección titulada «Validar resultados»- Comprueba el bucket S3:
Ventana de terminal aws s3 ls s3://test-bucket/ --profile localstack - Consulta los logs de Lambda:
Ventana de terminal aws logs tail /aws/lambda/upload-to-s3 --profile localstack
- S3: Despliega la sección S3 para ver los archivos subidos.
- CloudWatch: Despliega la sección Logs para ver la salida de ejecución de Lambda.
Limpieza
Sección titulada «Limpieza»Para eliminar únicamente los recursos desplegados, ejecuta el script de destrucción del método que usaste:
scripts/terraform/destroy.shscripts/cloudformation/destroy.shscripts/boto3/destroy.shPara eliminar también todos los contenedores y volúmenes:
docker compose down -vSolución de problemas
Sección titulada «Solución de problemas»| Problema | Solución |
|---|---|
| Timeout de Lambda | Asegúrate de que LocalStack tiene suficientes recursos de memoria y CPU. |
| Conexión rechazada | Asegúrate de que LocalStack está en ejecución y espera el mensaje Ready. en los logs. |