DynamoDB MCP 运营(或管理、操作,具体根据上下文确定)
通过利用AWS Bedrock提供的人工智能驱动自然语言接口,以及采用模型上下文协议(MCP)架构,对DynamoDB操作进行全面演示。
🚀 功能特性
核心能力
- MCP建筑事务所(或译为:MCP建筑设计公司)基于模块化工具的DynamoDB操作
- 多表支持5个预配置的表格(用户、产品、订单、评价、库存)
- 自然语言接口使用AWS Bedrock Claude 3 Haiku的AI驱动聊天
- 实时成本追踪监控运营成本和产能利用率
- 动态表单所有操作的特定表格输入表单
DynamoDB 扩展
- 🎯 分区键优化器验证密钥的有效使用
- 📊 能力规划师监控RCU/WCU并推荐计费模式
- 🔄 流事件适配器生成适用于AI的流事件
- 📈 指数顾问检测低效查询并建议使用全局二级索引(GSI)
📋 前提条件
- Python 3.8及以上版本
- 拥有Bedrock访问权限的AWS账户
- AWS CLI 已配置或环境变量已设置
- 所需的Python包(请参见requirements.txt文件)
🛠️ 安装
- 克隆仓库
git clone
cd dynamodb-mcp-operations- 安装依赖项
pip install -r requirements.txt- 配置AWS凭证
aws configure
# OR set environment variables
export AWS_ACCESS_KEY_ID=your_key
export AWS_SECRET_ACCESS_KEY=your_secret
export AWS_DEFAULT_REGION=us-east-1- 启用Bedrock模型访问
- 前往AWS Bedrock控制台 - 请求访问Claude 3 Haiku模型 - 确保为(相关资源/用户)设置IAM权限 bedrock:InvokeModel
🚀 使用方法
运行演示程序
streamlit run enhanced_mcp_demo.py访问接口
- 打开浏览器以
http://localhost:8501 - 选择用于Bedrock的AWS区域
- 从侧边栏选择表格
- 使用标签页来探索不同的功能
自然语言指令
- “获取ID为u001的用户”
- “创建一个名为iPhone的新产品”
- “列出所有状态为待处理的订单”
- “更新用户u002,将其城市设置为波士顿”
- “删除产品p003”
📁 项目结构
dynamodb-mcp-operations/
├── enhanced_mcp_demo.py # Main Streamlit application
├── requirements.txt # Python dependencies
├── README.md # This file
└── .gitignore # Git ignore rules🏗️ 建筑学
💬 Natural Language Input
↓
🤖 AWS Bedrock (Claude 3 Haiku)
↓
🔧 MCP Tools (DynamoDB Operations)
↓
🗄️ Simulated DynamoDB Tables
↓
🚀 Extensions Analysis & Optimization📊 支持的表格
| 表 | 分区键 | 字段 |
|---|---|---|
| 分隔符 | 标题 | 分隔符 |
| 用户 | 用户ID | 姓名、电子邮件、年龄、城市 |
| 产品 | 产品ID | 名称、价格、类别、评分 |
| 订单 | 订单ID | 用户ID, 产品ID, 数量, 总金额, 状态 |
| 评论 | 评论ID | 产品ID,用户ID,评分,评论,日期 |
| 库存 | 物品ID | 产品ID, 仓库, 数量, 最后更新时间 |
- 🔧 MCP 操作(或:MCP 运营)创建表
- 创建新的DynamoDB表\
put_item\翻译成中文是“放置项目”或“添加项目”,具体取决于上下文,但通常指的是在某种数据结构(如数据库、列表、集合等)中添加或放置一个项目 - 插入项目并生成流事件获取物品
- 通过键检索单个项目更新项目/条目
- 修改现有项目删除项目
- 从表格中移除项目查询
- 基于密钥的高效查询与优化分析扫描
全表扫描并带有效率警告
🚀 插件/扩展
- 分区键优化器
- 验证查询效率
- 提醒注意昂贵的扫描操作
建议使用分区键
- 产能规划师
- 追踪RCU/WCU的消耗情况
- 建议采用预配置模式而非按请求付费模式
计算每次操作的平均容量
- 流事件适配器
- 生成类似DynamoDB流的事件
- 创建适用于个性化的人工智能就绪有效载荷
支持实时分析工作流
- 指数顾问
- 检测高扫描比率
- 建议使用全局二级索引(GSI)
提供查询优化建议
- 💰 成本追踪
- 实时运营成本计算
- 每次操作的成本明细
- 总成本和操作次数指标
每次操作的平均成本分析
🔒 安全与权限
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "bedrock:InvokeModel",
"Resource": "arn:aws:bedrock:*::foundation-model/anthropic.claude-3-haiku-20240307-v1:0"
}
]
}所需的IAM权限:
- 🤝 贡献/参与
- 为仓库创建分支(或:克隆仓库)
git checkout -b feature/amazing-feature创建特性分支( - )
git commit -m 'Add amazing feature'提交更改( - )
git push origin feature/amazing-feature推送到分支( - )
打开拉取请求
📝 许可证
此项目采用MIT许可证授权——详情请参见LICENSE文件。
🆘 故障排除
常见问题
- 基岩访问被拒绝
- 确保在Bedrock控制台中已启用模型访问权限
- 检查Bedrock的IAM权限:InvokeModel
验证AWS凭证是否已配置
- 模型不可用
- Claude 3 Haiku 可能在所有地区均不可用
- 尝试使用 us-east-1 或 us-west-2 区域
检查Bedrock服务的可用性
- Streamlit 问题
- 确保所有依赖项都已安装
pip install --upgrade streamlit - 试试
清除浏览器缓存并重新启动
📞 支持
- 对于问题和疑问:
- 创建GitHub问题(或议题)
- 查看故障排除部分
查阅AWS Bedrock文档
- 🎯 未来改进方向
- \[ \] 真实DynamoDB集成
- \[ \] 其他大型语言模型(LLM)提供商
- \[ \] 高级查询优化
- \[ \] 性能基准测试
- \[ \] 导出/导入功能
