免费开源的本地 AWS 模拟器,无需云账号即可在本机运行兼容 AWS 的服务。
ministackorg/ministack
免费开源的本地 AWS 模拟器,在单一端口提供 60 多种 AWS 服务,兼容 boto3、AWS CLI 与 Terraform。
可替代:LocalStack
- Star
- 5,111
- Fork
- 538
- 未关闭 Issue
- 21
- 最近提交
- 昨天
这是什么?
MiniStack 是一个本地 AWS 模拟器,开发者无需 AWS 账号,就能在自己的机器或 CI 中运行 S3、SQS、SNS、DynamoDB、Lambda、IAM、EC2、Step Functions 等数十种 AWS 服务。所有服务通过同一个端口(默认 4566)访问,因此现有的 boto3、AWS CLI、Terraform、CDK 或 Pulumi 配置只需修改 endpoint 地址即可使用。
该项目定位为 LocalStack 的免费替代品,后者的核心服务已转为付费计划。它支持在同一个端点上使用多个账户和区域:12 位数字的 access key 会被用作账户 ID,SigV4 的区域信息则用于划分状态。部分服务运行真实后端,例如 RDS 会启动 Postgres 或 MySQL 容器,ElastiCache 对应真实的 Redis 或 Valkey,ECS 任务则以 Docker 容器运行。完整版镜像中的 Athena 查询基于 DuckDB 执行。
容器内置面向测试自动化的内部接口,包括健康检查、用于在测试之间清空状态的 reset 接口,以及查看 SES 邮件、SQS 消息和 SNS 短信的接口。项目使用 Python 编写,采用 MIT 许可证。
核心功能
- 01在单一端口模拟 60 多种 AWS 服务,包括 S3、SQS、DynamoDB、Lambda 和 Step Functions。
- 02通过修改 endpoint 地址即可配合 boto3、AWS CLI、Terraform、CDK 和 Pulumi 使用。
- 03按账户(通过 access key 区分)和区域隔离资源状态。
- 04RDS 与 ElastiCache 会启动真实的 Postgres、MySQL、Redis 或 Valkey 容器。
- 05提供 reset 接口及消息检查接口,方便在测试套件中使用。
适用场景
- 在 CI 中运行依赖 AWS 的集成测试,无需真实 AWS 凭证。
- 在本地基于模拟的 SQS、SNS 和 EventBridge 开发 Lambda 与事件驱动流程。
- 在部署到 AWS 之前测试 Terraform 或 CDK 基础设施代码。
- 替代本地开发环境中付费的 LocalStack。
快速上手
- 1
从 PyPI 安装
pip install ministack - 2
启动 MiniStack(运行在 4566 端口)
ministack - 3
验证服务是否正常运行
curl http://localhost:4566/_ministack/health
使用前须知
- Athena SQL 查询需要使用体积更大的 full Docker 镜像。
- RDS、ElastiCache、ECS 和 Lambda 容器需要挂载 Docker 套接字。
收录于专题
标签
常见问题
- ministack 是什么?
- 免费开源的本地 AWS 模拟器,在单一端口提供 60 多种 AWS 服务,兼容 boto3、AWS CLI 与 Terraform。 MiniStack 是一个本地 AWS 模拟器,开发者无需 AWS 账号,就能在自己的机器或 CI 中运行 S3、SQS、SNS、DynamoDB、Lambda、IAM、EC2、Step Functions 等数十种 AWS 服务。所有服务通过同一个端口(默认 4566)访问,因此现有的 boto3、AWS CLI、Terraform、CDK 或 Pulumi 配置只需修改 endpoint 地址即可使用。
- ministack 可以免费使用吗?用的什么许可证?
- ministack 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- ministack 还在维护吗?
- 活跃维护中。ministack 最近一次提交是在 2026年11月6日。
- ministack 适合用来做什么?
- 在 CI 中运行依赖 AWS 的集成测试,无需真实 AWS 凭证。 在本地基于模拟的 SQS、SNS 和 EventBridge 开发 Lambda 与事件驱动流程。 在部署到 AWS 之前测试 Terraform 或 CDK 基础设施代码。 替代本地开发环境中付费的 LocalStack。
- ministack 怎么安装和运行?
- 从 PyPI 安装: pip install ministack 启动 MiniStack(运行在 4566 端口): ministack 验证服务是否正常运行: curl http://localhost:4566/_ministack/health
- 在哪里获取 ministack?
- 源代码和安装说明在 GitHub 上:https://github.com/ministackorg/ministack
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
在 Terraform 中创建 AWS Lambda 函数与 Layer,并负责依赖安装和部署包打包。
开源免费的本地 Azure 模拟器,在 localhost:4577 提供 Blob、Queue、Table、Functions、Cosmos DB 等兼容服务。
兼容现有 CDK 应用的命令行工具,通过直接调用 AWS SDK 替代 CloudFormation 部署,加快开发测试环境的部署速度。
基于 vCluster 以 Docker 容器运行 Kubernetes 集群,是 KinD 的替代方案,支持暂停恢复与内置负载均衡。