Tenemos una lista de recursos AWS obtenidos desde diferentes cuentas. Queremos detectar recursos que no cumplan nuestra política de tagging. Todo recurso debe tener los tags owner y environment. Implementa una función que devuelva los recursos no compliant indicando qué tags faltan.
Nota: los datos de recursos AWS son ficticios y no provienen de una cuenta ni API real. El objetivo de esta kata no es AWS en sí, sino practicar el manejo de Python y la creación de funciones y tests unitarios.
resources = [
{"account": "prod", "type": "ec2", "id": "i-123",
"tags": {"owner": "payments", "environment": "prod"}},
{"account": "prod", "type": "s3", "id": "logs-prod",
"tags": {"environment": "prod"}},
{"account": "dev", "type": "ec2", "id": "i-456",
"tags": {"owner": "platform", "environment": "dev"}},
{"account": "dev", "type": "rds", "id": "db-001", "tags": {}},
]-
Docker (requerido): necesario para poder trabajar con el devcontainer del proyecto. Antes de empezar la práctica, comprueba que Docker está en ejecución lanzando:
docker ps
Si el comando falla (no responde o da error de conexión), arranca el demonio de Docker antes de continuar.
Para abrir el proyecto directamente dentro del devcontainer desde VS Code, puedes instalar la extensión Dev Containers:
-
Abre VS Code Quick Open con
Ctrl+P. -
Pega el siguiente comando y pulsa Enter:
ext install ms-vscode-remote.remote-containers
Una vez instalada la extensión, con el proyecto abierto en VS Code:
- Abre la paleta de comandos con
Ctrl+Shift+P. - Busca y selecciona Dev Containers: Reopen in Container.
VS Code reconstruirá (o reutilizará) el devcontainer definido en .devcontainer/ y reabrirá la ventana ya conectada dentro del contenedor.
Este proyecto usa uv para la gestión de dependencias.
uv syncuv run pytestuv run python src/main.pyuv run flake8 .