AWS 推出 AI 全程编写的云模拟器,本地就能测

AWS 开源了完全由 AI 智能体编写的云模拟器 AWS Emulator,不用账号就能在本地测试。小编梳理用法、开发方式,以及目前不支持的功能和安全提醒。

开发 AWS 应用时,每次测试都得真的在云上建资源,又慢又花钱,您是不是也烦过?AWS 最近开源了一个叫 AWS Emulator 的云模拟器,可以在自己电脑或 CI 环境里模拟 AWS 服务,本地测试不需要 AWS 账号,也没有额外服务费。更特别的是,据 AWS 介绍,这个软件是由成千上万个自主 AI 智能体写出来的,没有人工审查代码。

简单讲:它适合做日常开发和功能测试,但不能完全替代真实的 AWS,尤其是权限、故障和安全方面。下面小编按用法、原理和限制三块来讲。

AWS Emulator 能做什么

它支持 AWS API,可以配合现有的 SDK、命令行工具和 AI 编程智能体使用。应用通过本地 HTTPS 端点访问模拟器,用的还是跟连接 AWS 时一样的 API。

您可以照常用现有命令创建和管理模拟资源,比如 Amazon S3 存储桶和 DynamoDB 表。据 AWS 说法,本地请求可以在毫秒级返回,不用等云资源创建。每个模拟器实例会生成自己的凭证,资源放在内存里,所以 CI 里的不同测试任务互不干扰。

它用 Rust 编写,参照 AWS API 模型还原服务行为,包括预期响应和报错信息,并且支持 Kiro、Claude Code 这类 AI 编程智能体做本地测试:智能体可以创建模拟资源、跑测试、找错误、改代码,不必反复部署到 AWS。

Broadcom 的高级站点可靠性工程师 Advait Patel 向 InfoWorld 表示,本地测试能减少 AI 智能体反复“写、测、改”时等待云资源的时间,“团队能更快拿到反馈,遗留的测试资源更少,开发账号的账单也更小”。

安装方面,Linux 可以用 RPM 或 Debian 包,macOS 和 Windows 通过 Docker 运行;另外还有面向 AWS SDK for Rust 的嵌入模式,测试可以直接在应用进程内运行。源码已按 CC0 协议发布在 GitHub 上。

如果您也在关注 AWS 的 AI 开发工具,可以顺带看看小编之前写的 AWS TorchNeuron:PyTorch 代码几乎不改就能跑 Trainium。

AWS 是怎么让 AI 智能体写出这个模拟器的

据 AWS 高级首席工程师 Matthew Goldberg 介绍,项目起初只是个实验:用 Kiro 生成 Amazon SQS 的实现。他让智能体先根据 AWS 命令行操作写测试,用真实 AWS 服务验证,再写出能通过这些测试的内存实现。第一版 SQS 大约 15 分钟就做出来了,不过功能有限。

后来 AWS 又生成了一个 Web 服务器,能接收由 438 个 AWS API 模型定义的请求,只是里面还没有真正的服务逻辑,这部分交给自主智能体去补。最终形成了三组智能体分工的体系:

  • 第一组:根据 AWS API 模型写“保真度测试”,并拿真实云服务验证结果,累计有数万个测试。
  • 第二组:在模拟器上跑这些测试,找出和 AWS 响应不一致的地方,并记录为问题。
  • 第三组:领取问题并修复,每个智能体负责一个具体问题,提交后要经过自动审查。

Goldberg 在 AWS 工程文章里说:“我们的团队没有写过也没有审查过任何代码。”据他介绍,数百个智能体同时在代码库上工作,每天能解决数千个问题。

过程中也有教训:早期版本里,智能体曾试图自己写一个 Python 解释器来支持 Lambda 函数,后来 AWS 要求它们改为复用现有软件库。每次代码修改要通过编译、编码规范、安全和兼容性等自动检查,没过的退回重改,通过的才合并。此外还有一个独立的安全智能体,在修复和发布阶段做对抗式审查。整个流程用到 Amazon Bedrock AgentCore、AWS CodeCommit 和 AWS CodePipeline,GitHub 仓库里还公开了智能体发现的问题记录,已修复和待处理的分开放。

准确度和限制:用之前要知道的几件事

AWS 通过保真度测试对比 API 响应、HTTP 状态码、报错信息和资源状态,并按服务分别公布通过分数。没实现的操作会返回 HTTP 501(未实现)。测试集 Emulator Evaluation Suite 也已在 GitHub 公开,每个测试都在至少两个沙箱 AWS 账号上用 Python SDK 验证过;不过仓库也说明,测试范围之外的行为没有验证,并附上了模拟器暂未通过的测试,方便您评估差距。

方面当前情况
控制面操作(创建、查询、更新、删除资源)与生产服务最接近
数据面操作(存取数据)各服务支持程度不一
CloudFormation、Terraform、CDK兼容性因服务而异
IAM 与资源权限策略不会按生产方式评估,真实环境会被拒绝的请求,本地可能成功
跨账号、跨区域每个实例只模拟单个账号,不支持
限流、故障、快照恢复、区域差异首个版本不模拟

IDC 研究总监 Devin Pratt 还指出代码隔离的问题:AWS 的安全文档确认,通过模拟器执行的代码没有沙箱,能以开发者的权限读写本地文件。AWS 的建议是,模拟器默认只监听本机并自带凭证,您只运行可信代码,别把真实 AWS 凭证和生产数据放进测试环境;安全配置和完整应用在上线前,仍要放到真实 AWS 上测试。

想看更多官方资料,可以访问 AWS 官网 或其 GitHub 仓库。

常见问题(FAQ)

用 AWS Emulator 要收费吗?

没有额外服务费,本地测试也不需要 AWS 账号。但如果您连到真实 AWS 做测试,仍按标准价格计费。

它能完全替代真实 AWS 测试吗?

不能。权限策略、限流、故障、超时等场景它没有覆盖,上线前仍需要在真实 AWS 上验证。

Windows 和 macOS 怎么用?

通过 Docker 运行;Linux 则可以直接装 RPM 或 Debian 包。

模拟器里跑的代码安全吗?

代码没有沙箱隔离,会用您的本机权限运行,所以请只运行可信代码,并避免放入真实凭证和生产数据。

没实现的功能会怎样?

会返回 HTTP 501(未实现)。您可以对照每个版本公布的保真度分数,看自己用的服务支持到什么程度。

(题图:Bernd Dittrich / Unsplash)