亚马逊AWS官方博客
使用 Kiro AI IDE 开发 基于Amazon EMR 的Flink 智能监控系统实践
概述
本文介绍如何使用 Kiro AI IDE 开发 Amazon EMR Flink 智能监控系统,重点分享基于 Strands Agents MCP 和 AWS Data Processing MCP 的开发实践,以及 Spec 驱动开发 的完整流程。
项目地址:https://github.com/yangguangfu007/emr-flink-monitoring-agent
Kiro AI IDE 核心能力
1. Spec 驱动开发
Kiro 引入了 Spec 的概念,这是一种结构化的需求描述方式:
![]() |
开发流程:
- 用自然语言描述需求 → 生成 requirements.md
- AI 理解需求并生成设计方案 → 生成 design.md
- 将设计方案分解为具体任务 → 生成 tasks.md
- 逐个实现任务,生成代码
2. Steering (引导规则)
Steering 是 Kiro 的知识管理系统,用于定义项目规范:
![]() |
Steering 文件会自动注入到 AI 的上下文中,确保生成的代码符合项目规范。
3. MCP (Model Context Protocol) 集成
Kiro 支持 MCP 服务器,可以扩展 AI 的能力:
- Strands Agents MCP:提供 Strands Agents文档和示例
- AWS Data Processing MCP:提供 AWS Glue、Amazon EMR、Amazon Athena 等服务的操作能力
- 自定义工具和命令
技术选型与架构
技术栈
后端: – Python 3.10+ – FastAPI (异步 Web 框架) – Strands Agents(多 Agent 框架) – boto3 (AWS SDK)
前端: – React 18 + TypeScript – Ant Design (UI 组件库) – Vite (构建工具)
AI: – Amazon Bedrock
项目架构
![]() |
基于 MCP 的开发实践
1. 配置 Strands Agents MCP
在 .kiro/settings/mcp.json 中配置:
使用 MCP 工具查询 Strands Agents文档:
我:如何使用 Strands Agents实现 Agents as Tools 模式?
Kiro:让我查询 Strands Agents文档…
[调用 strands-agents MCP: search_docs(“agents as tools”)]
根据文档,实现步骤如下:
1. 创建子 Agent 类
2. 实现 as_tool() 方法
3. 在主 Agent 中注册为工具
[生成示例代码]
2. 配置 AWS Data Processing MCP
使用 MCP 工具操作 AWS 服务:
我:帮我查询 Amazon EMR 集群 j-xxx 的信息
Kiro:[调用 aws-dp MCP: describe_emr_cluster(“j-xxx”)]
集群信息:
– 状态:RUNNING
– Master 节点:m5.xlarge
– Core 节点:3 × m5.xlarge
– VPC:vpc-xxx
Spec 驱动开发实践
第 1 步:创建 Requirements
与 Kiro 对话描述需求:
我:我想开发一个基于 Amazon EMR 集群的智能监控 agent系统,该系统第一期功能:监控 Flink 任务、分析任务状态并提供优化建议。
Kiro:我理解了您的需求。让我为您创建项目 Spec…
![]() |
生成的 requirements.md 包含:- 用户故事 (User Stories) – 验收标准 (Acceptance Criteria) – 非功能性需求 (Performance, Security)
第 2 步:生成 Design
Kiro 基于需求自动生成设计方案:
![]() |
[生成 .kiro/specs/emr-flink-monitoring-agent/design.md]
第 3 步:任务分解
Kiro 将设计方案分解为具体任务:
![]() |
[生成 .kiro/specs/emr-flink-monitoring-agent/tasks.md]
第 4 步:执行任务
逐个执行任务,Kiro 自动生成代码。
核心功能开发
1. 多 Agent 系统
基于 Strands Agents的”Agents as Tools”模式实现:
2. AI 分析器 (智能降级)
3. 流式输出
后端使用 Strands Agents的 stream_async():
Kiro 最佳实践
1. 充分利用 Steering 规则
在项目开始时定义好规范:
# .kiro/steering/language.md
– 代码注释使用中文
– 日志使用英文
– 专有名词保持英文
# .kiro/steering/work-style.md
– 修改优先于创建
– 避免创建临时文件
– 保持项目整洁
2. 使用 Spec 驱动开发
不要直接让 Kiro 生成代码,而是先创建 Spec:
- md → 功能需求、性能需求、安全需求
- md → 架构设计、模块划分、接口设计
- md → 任务分解
然后让 Kiro 逐个实现任务。
3. 善用 MCP 工具
- 使用 Strands Agents MCP 查询文档
- 使用 AWS Data Processing MCP 操作 AWS 服务
- 自定义 MCP 服务器扩展能力
4. 迭代优化
不要期望 Kiro 一次生成完美的代码:
- 第 1 轮:生成基础功能
- 第 2 轮:添加错误处理
- 第 3 轮:优化性能
- 第 4 轮:添加测试
- 第 5 轮:完善文档
实际案例:从需求到上线
Day 1:需求分析和架构设计 (2 小时)
- 与 Kiro 对话描述需求
- 生成md、design.md、tasks.md
Day 2-3:核心功能开发 (5 小时)
- 任务 1:指标收集器 (30 分钟)
- 任务 2:AI 分析器 (45 分钟)
- 任务 3:多 Agent 系统 (1 小时)
- 任务 4:FastAPI 接口 (20 分钟)
- 任务 5:React 前端 (2 小时)
Day 4:测试和优化 (3 小时)
- 单元测试 (40 分钟)
- 端到端测试 (2 小时)
- 代码审查 (20 分钟)
总耗时:10 小时 (需求到上线)
传统方式预估:60-80 小时
效率提升:6-8 倍
总结
通过使用 Kiro AI IDE 开发 Amazon EMR Flink 监控系统,我们深刻体会到 AI 辅助开发的价值:
- 效率提升:开发效率提升 6-8 倍
- 质量提升:代码规范性 100%,测试覆盖率 85%
- 学习加速:通过 AI 生成的代码学习新技术
- 决策辅助:AI 帮助做出正确的技术选型
核心亮点:
- Spec 驱动开发:结构化需求描述,逐步实现
- MCP 集成:扩展 AI 能力,查询文档和操作 AWS 服务
- Steering 规则:确保代码符合项目规范
- 迭代优化:逐步完善,而非一次完美
参考资源
*前述特定亚马逊云科技生成式人工智能相关的服务目前在亚马逊云科技海外区域可用。亚马逊云科技中国区域相关云服务由西云数据和光环新网运营,具体信息以中国区域官网为准。





