AWS 发布 AWS Emulator:覆盖 200+ 服务的本地 AWS API 模拟器,代码由 AI 智能体编写
AWS Releases AWS Emulator: A Local Copy of 200+ AWS Services Built by AI Agents
AWS 发布 AWS Emulator,这是一个可在笔记本、开发服务器或 CI 中运行的本地 AWS API 模拟器,无需 AWS 账号且不收费,其代码全部由自主智能体编写和审查。
同一件事,精选收录的是《AWS 发布本地模拟器 AWS Emulator》
AWS 发布了 AWS Emulator,这是一个 AWS API 的本地模拟器。你可以在笔记本电脑、开发服务器或 CI 中运行它。AWS CLI 和 SDK 会与它通信,而不是与 AWS 通信。无需 AWS 账户,也不收取服务费。不同寻常之处在于:自主智能体编写并审查了它的全部代码。对于开发者和编码智能体来说,AWS Emulator 提供了一个针对 AWS 风格 API 的快速、免费的测试循环。
TL;DR
- 规模:基于 438 个 AWS API 模型构建,覆盖 200+ 项服务。每项服务对应一个 Rust crate。
- 运行环境:Linux x86_64/aarch64(RPM 或 Debian),或在 macOS/Windows 上使用 Docker,内存限制为 2 GiB。从源码构建需要 100 GB 可用磁盘空间。
- 性能:在 v1.0.322 版本中,通过 42,857 项计分保真度测试中的 24,243 项(56.6%)。
- 最佳:AWS KMS 达 93.9%(310 项测试中通过 291 项);Amazon SQS 达 89.8%。
- 最差:AWS CloudFormation 为 15.8%(2,612 项测试中通过 414 项)。
什么是 AWS Emulator?
AWS Emulator 是 AWS 推出的一个无头本地程序,提供 AWS API 端点。你通过环境变量让 CLI 或 SDK 指向它。你的代码无需更改。资源存放在内存中,程序停止时即消失。
文档中展示了一个 DynamoDB 示例。使用 2 个字符的名称调用 CreateTable 会失败,并返回与 AWS 相同的 ValidationException 文本。
AI 智能体是如何构建 AWS Emulator 的?
该项目始于向 Kiro 输入的一条提示。它在大约 15 分钟内返回了一个尚可用的 Amazon SQS 模拟器。AWS 随后将工作分配给 3 个智能体团队:
- 测试编写者从公开的 Smithy API 模型中推导出场景,并针对真实 AWS 逐一验证。
- 问题发现者针对模拟器重放这些测试并提交失败项。
- 修复者每人领取 1 个问题并提交补丁。
每个补丁都要通过合并门禁,涵盖构建、代码审查、安全性和保真度。多个安全智能体执行对抗性审查。Matthew Goldberg 报告称,数百个并发智能体每天修复数千个问题。发布流水线运行在 AWS Developer Tools 上,以 CodeCommit 作为智能体的代码仓库。代码最后才到达 GitHub。
AWS Emulator 的准确度如何?
AWS 随每个版本发布一个 scores.json 文件。我们统计了 v1.0.322 文件,评分日期为 2026 年 11 月 11 日。
- 总体:42,857 项计分测试中通过 24,243 项(56.6%);80 项被跳过。
- 步骤级:68,007 个单独步骤中通过 49,810 个(73.2%)。
- 跨服务工作流:6,569 项中通过 2,752 项(41.9%)。
- 核心服务:S3 79.1%,DynamoDB 77.3%,SNS 73.9%,Lambda 46.4%,EC2 41.5%。
根据保真度文档,控制平面 API 与 AWS 的匹配度最高。数据平面、CloudFormation、Terraform 和 CDK 的支持因服务而异。未实现的操作返回 HTTP 501 NotImplemented。测试位于 aws-emulator-evaluation-suite 中,包括失败的测试。
如何运行 AWS Emulator?
根据 README,有 4 种方式:
- Linux:安装 RPM 或 Debian 包并运行
aws-emulator。 - macOS/Windows:使用 AWS 的 Dockerfile 构建容器,内存上限为 2 GiB。
- Rust 嵌入式模式:将其添加为开发依赖,每个测试使用 1 个隔离实例。
- 编码智能体:
aws agent-toolkit add-skill --skill-name aws-emulator,需要 AWS CLI 2.35.0 或更高版本。
源码构建在 127.0.0.1:9297 上使用自签名证书提供 HTTPS 服务。它需要 Rust 工具链、C 编译器以及至少 100 GB 磁盘空间。嵌入式模式在首次 cargo test 时承担相同的构建成本。
它与 LocalStack、Moto 和 Floci 相比如何?
| 功能 | AWS Emulator | LocalStack | Moto | Floci |
|---|---|---|---|---|
| 许可证 | CC0 1.0(vendor/ Apache 2.0) | 商业方案 | Apache-2.0 | MIT |
| 价格 | 免费 | Hobby $0(非商业);Base $39;Ultimate $89 每许可证/月(按年) | 免费 | 免费 |
| 服务覆盖 | 200+ 项服务,438 个 API 模型 | 按方案分为 30+ / 55+ / 110+ | README 中未披露 | README 中未汇总 |
| 是否需要厂商令牌 | 否 | 是(认证令牌) | 否 | 未披露 |
| 默认端点 | HTTPS 127.0.0.1:9297 | 端口 4566 | 端口 5000 | 端口 4566 |
| 进程内测试模式 | Rust 开发依赖 | 未披露 | Python @mock_aws 装饰器 | 未披露 |
| 资源占用 | AWS 指南中 Docker 限制为 2 GiB | 未披露 | 未披露 | 空闲约 13 MiB,启动约 24 ms(自述) |
| 已发布的保真度评分 | 是,每次发布 | 未披露 | 未披露 | 未披露 |
AWS Emulator 有哪些局限?
- 不进行 IAM 评估。 身份和资源策略不会像 AWS 那样被评估。不要将其用于安全测试。
- 1 个区域、1 个账户。 它接受任意 ID,但不会按这些 ID 隔离资源。
- 仅在 us-west-2 中验证,全球性服务在 us-east-1 中检查。
- 内存中运行且生命周期短。 未针对长时间运行或负载测试进行测试。使用
--idle-timeout将其停止。 - 遥测默认开启。 可通过
--telemetry off、EMULATOR_TELEMETRY=off、config.toml或嵌入式 API 将其关闭。
发布节奏很快。版本 v1.0.265 至 v1.0.322 在 11 月 8 日至 11 日之间发布。
关键要点
- AWS Emulator 是一个免费的、CC0 许可的本地副本,涵盖 200+ 项 AWS 服务。
- 所有代码均由智能体编写;人类构建了测试和合并门禁。
- 发布时,它通过了 42,857 项已发布保真度测试中的 56.6%。
- SQS、KMS 和 S3 表现强劲;CloudFormation 和 IoT 落后。
- 将其用于快速的本地和 CI 循环,而非安全或负载测试。
查看 GitHub 仓库、用户指南、保真度测试 以及 工程博文。另外,欢迎在 Twitter 上关注我们,别忘了加入我们的 150k+ ML SubReddit 并订阅 我们的新闻通讯。等等!你在 Telegram 上吗?现在你也可以在 Telegram 上加入我们。
需要与我们合作推广你的 GitHub 仓库、Hugging Face 页面、产品发布或网络研讨会等?联系我们
文章 AWS 发布 AWS Emulator:由 AI 智能体构建的 200+ 项 AWS 服务的本地副本 首次出现在 MarkTechPost。
来源:MarkTechPost · marktechpost.com