# 🚀 AWS Resource Scanner - 快速启动指南 ## 项目概述 AWS Resource Scanner 是一个用于扫描和报告AWS资源的Web应用程序,包含: - **Backend**: Python Flask API服务 - **Frontend**: React + TypeScript Web界面 ## 环境要求 ### Backend - Python 3.8+ - pip (Python包管理器) - Redis (必需,用于Celery任务队列) ### Frontend - Node.js 18+ - npm/yarn (包管理器) ## 快速启动 ### 1. 安装Redis #### Windows (推荐使用Chocolatey) ```bash choco install redis-64 redis-server --service-install redis-server --service-start ``` #### Docker (跨平台) ```bash docker run -d --name redis -p 6379:6379 redis:alpine ``` #### Linux/macOS ```bash # Ubuntu/Debian sudo apt-get install redis-server sudo systemctl start redis-server # macOS (Homebrew) brew install redis brew services start redis ``` ### 2. 启动Backend ```bash # 进入backend目录 cd backend # Windows: 运行设置脚本 setup.bat # Unix/Linux/macOS: 运行设置脚本 chmod +x setup.sh ./setup.sh # 激活虚拟环境 # Windows: activate_venv.bat # Unix/Linux/macOS: source activate_venv.sh # 初始化数据库 python init_db.py # 启动Flask应用 python run.py ``` Backend将运行在: http://localhost:5000 ### 3. 启动Celery Worker ```bash # 新开一个终端,进入backend目录 cd backend # 激活虚拟环境 activate_venv.bat # Windows # 或 source activate_venv.sh # Unix/Linux # 启动Celery Worker celery -A celery_worker.celery_app worker --loglevel=info --pool=solo ``` **注意**: Celery Worker是必需的,用于处理AWS资源扫描任务。如果Redis未运行,创建任务时会返回错误。 ### 4. 启动Frontend ```bash # 新开一个终端,进入frontend目录 cd frontend # Windows: 运行设置脚本 setup.bat # Unix/Linux/macOS: 运行设置脚本 chmod +x setup.sh ./setup.sh # 启动开发服务器 yarn dev ``` Frontend将运行在: http://localhost:3000 ### 5. 访问应用 - **Web界面**: http://localhost:3000 - **API文档**: http://localhost:5000/api - **默认管理员**: `admin` / `admin123` ## 项目结构 ``` cloud-reporter/ ├── backend/ # Python Flask后端 │ ├── app/ # 应用代码 │ ├── config/ # 配置文件 │ ├── migrations/ # 数据库迁移 │ ├── tests/ # 测试文件 │ ├── venv/ # Python虚拟环境 │ ├── requirements.txt # Python依赖 │ ├── setup_venv.py # 环境设置脚本 │ ├── init_db.py # 数据库初始化 │ └── run.py # 应用入口 ├── frontend/ # React前端 │ ├── src/ # 源代码 │ ├── node_modules/ # Node.js依赖 │ ├── package.json # 项目配置 │ ├── vite.config.ts # 构建配置 │ └── setup.bat/sh # 环境设置脚本 └── sample-reports/ # 示例报告文件 ``` ## 开发工作流 ### Backend开发 ```bash cd backend # 激活虚拟环境 activate_venv.bat # Windows source activate_venv.sh # Unix/Linux # 启动开发服务器 python run.py # 运行测试 pytest # 数据库操作 python init_db.py --reset # 重置数据库 python init_db.py --with-demo # 创建示例数据 ``` ### Frontend开发 ```bash cd frontend # 启动开发服务器 yarn dev # 构建生产版本 yarn build # 运行测试 yarn test # 代码检查 yarn lint ``` ## 功能特性 ### 已实现功能 - ✅ 用户认证和授权 - ✅ AWS凭证管理 - ✅ 资源扫描任务 - ✅ 报告生成和下载 - ✅ 任务日志和监控 - ✅ 响应式Web界面 - ✅ ACM证书全局扫描(当未选择us-east-1时自动在us-east-1扫描) ### 核心模块 - **认证系统**: JWT令牌认证 - **凭证管理**: AWS访问密钥和角色管理 - **扫描引擎**: 多服务AWS资源扫描 - **报告生成**: Word文档报告生成 - **任务队列**: Celery异步任务处理 ## 环境配置 ### Backend环境变量 (.env) ```env FLASK_ENV=development SECRET_KEY=your-secret-key JWT_SECRET_KEY=your-jwt-secret-key DATABASE_URL=sqlite:///dev.db CELERY_BROKER_URL=redis://localhost:6379/0 CELERY_RESULT_BACKEND=redis://localhost:6379/1 ENCRYPTION_KEY=your-encryption-key ``` ### Frontend环境变量 (.env.local) ```env VITE_API_BASE_URL=http://localhost:5000 VITE_APP_TITLE=AWS Resource Scanner VITE_DEBUG=true ``` ## 故障排除 ### Backend问题 1. **虚拟环境问题** ```bash # 重新创建虚拟环境 python setup_venv.py --clean ``` 2. **数据库问题** ```bash # 重置数据库 python init_db.py --reset ``` 3. **Redis连接失败** ```bash # 检查Redis是否运行 redis-cli ping # 应该返回: PONG # 如果Redis未运行,启动它 # Windows: redis-server --service-start # Linux: sudo systemctl start redis-server ``` 4. **Celery Worker问题** ```bash # 确保使用正确的启动命令 celery -A celery_worker.celery_app worker --loglevel=info --pool=solo ``` ### Frontend问题 1. **依赖安装失败** ```bash # 清理并重新安装 yarn cache clean rm -rf node_modules yarn.lock yarn install ``` 2. **端口冲突** ```bash # 使用不同端口 yarn dev --port 3001 ``` ## 验证安装 ### Backend验证 ```bash cd backend python verify_setup.py ``` ### Frontend验证 ```bash cd frontend node verify_setup.js ``` --- 🎉 **环境设置完成,开始开发吧!**