尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
MiniStack内部API完全手册:health、reset、config三大端点让CI测试快人一步
MiniStack内部API完全手册health、reset、config三大端点让CI测试快人一步【免费下载链接】ministackMinistack: Free, open-source local AWS emulator - 60 services, Terraform compatible, real databases. Free forever. MIT licensed.项目地址: https://gitcode.com/gh_mirrors/mi/ministackMiniStack是一个免费、开源的本地 AWS 模拟器单端口 456660 服务、Terraform 兼容、MIT 协议它的/_ministack/*内部 API 专为测试自动化设计health端点一键确认服务就绪reset端点清空全部状态获得干净环境config端点在不重启容器的情况下动态修改服务配置。这三个端点正是让 CI 流水线快人一步的核心武器 什么是 MiniStack 内部 API所有 AWS 服务流量S3、SQS、Lambda……都走同一个 4566 端口由网关根据请求特征路由到对应服务。而管理、运维类的操作则被单独划分到/_ministack/前缀路径下与业务数据平面完全隔离。核心路由逻辑见 ministack/app.pyhealth / ready / reset / config 这些快路径请求在进入服务路由之前就被拦截处理因此响应极快、无需解析请求体。health 端点一行命令确认 60 服务就绪curl http://localhost:4566/_ministack/health返回内容包含字段含义services全部可用服务清单每项均为availableeditionlight或fullfull 镜像额外提供 Athena/DuckDBversion当前 MiniStack 版本号ready_scripts初始化脚本执行进度pending / running / completed、成功与失败计数CI 最佳实践容器启动后先轮询该端点返回 200 再开始跑测试可彻底告别连接被拒绝的偶发失败。它还兼容 LocalStack 的/_localstack/health与/health两个别名端点方便直接复用旧脚本。实现见 ministack/app.py配套的健康检查用例在 tests/test_health.py。进阶/_ministack/ready就绪探针如果容器挂载了初始化脚本ready.dhealth 返回 200 时脚本可能还没跑完。此时应轮询GET /_ministack/ready——它会在脚本全部完成且 IoT mTLS 监听器绑定后才返回 200否则返回 503是更严格的真正就绪信号ministack/app.py。reset 端点一键清空每个测试用例都从干净环境开始# 清空所有服务的状态 curl -X POST http://localhost:4566/_ministack/reset # 清空并重新执行初始化脚本boot.d ready.d curl -X POST http://localhost:4566/_ministack/reset?init1这是 CI 场景下最值钱的端点无需重启容器把 60 个服务的内存状态S3 桶、SQS 队列、Lambda 函数、DynamoDB 表……一次性抹干净毫秒级完成并发安全reset 期间其他请求会被自动阻塞直到清完才放行测试永远不会观察到半重置状态ministack/app.py?init1恢复种子数据如果你的ready.d脚本创建了 VPC、队列、基础数据加参数后 reset 会自动重跑这些脚本环境即刻复原兼容持久化开启PERSIST_STATE1时磁盘上的状态文件会一并清除。实现见 ministack/app.py。官方测试套件就是这样用的——会话开始前统一 reset 一次tests/conftest.py配合setUp/beforeEach粒度使用每个测试用例都拥有独立的干净环境。config 端点运行时改配置免重启curl -X POST http://localhost:4566/_ministack/config \ -H Content-Type: application/json \ -d {lambda_svc.LAMBDA_EXECUTOR: docker}端点内置白名单机制ministack/app.py只接受受控的键非法键会被记录日志并忽略响应体回显实际生效的键值{ applied: { lambda_svc.LAMBDA_EXECUTOR: docker } }当前支持的配置键配置键作用lambda_svc.LAMBDA_EXECUTORLambda 执行模式local进程内或docker真实容器athena.ATHENA_ENGINEAthena 查询引擎duckdb真 SQL或mockathena.ATHENA_DATA_DIRAthena DuckDB 数据文件目录stepfunctions._SFN_WAIT_SCALEWait 状态时长缩放因子0 跳过所有等待跑状态机测试飞快 ⚡stepfunctions._sfn_mock_configStep Functions mock 配置兼容 AWS SFN Localcloudtrail._recording_enabled开启/关闭 CloudTrail 记录translate._JOB_RUN_SECONDS/transcribe._JOB_RUN_SECONDS缩短异步任务耗时避免测试傻等alb.TARGET_CONNECT_TIMEOUT/alb.TARGET_IDLE_TIMEOUTALB 目标超时参数官方测试就是靠它在运行中切换 Athena 引擎做对比测试的tests/test_athena.py。典型收益把_SFN_WAIT_SCALE设为0后带多段 Wait 的状态机测试从分钟级降到秒级。附赠两个测试断言神器端点用途GET /_ministack/ses/messages查看 SES 发出的全部邮件支持?account过滤账号GET /_ministack/sqs/messages窥视所有队列中的消息Body、ReceiveCount、FIFO 去重 ID 等支持?account、?region、?QueueUrl过滤这两个端点是纯只读的不会触碰消息可见性时间调用它不影响并发中的ReceiveMessageministack/app.py。断言消费者到底收到了什么不再需要真的消费消息测试写起来简单太多 ✍️在 CI 流水线中组合使用三大端点一个最小化的 CI 工作流以 pytest 为例完整写法见 tests/conftest.pyimport json, urllib.request ENDPOINT http://localhost:4566 def wait_health(): # 1️⃣ 等 health 返回 200 while True: urllib.request.urlopen(f{ENDPOINT}/_ministack/health, timeout5) break def reset_state(initFalse): # 2️⃣ 每个用例前重置 urllib.request.Request( f{ENDPOINT}/_ministack/reset (?init1 if init else ), datab, methodPOST).urlopen(timeout5) if False else \ urllib.request.urlopen(urllib.request.Request( f{ENDPOINT}/_ministack/reset (?init1 if init else ), datab, methodPOST), timeout5) def set_config(**kw): # 3️⃣ 按需调整运行参数 req urllib.request.Request( f{ENDPOINT}/_ministack/config, datajson.dumps(kw).encode(), headers{Content-Type: application/json}, methodPOST) urllib.request.urlopen(req, timeout5)三步组合拳health 等待就绪 → reset 保证隔离 → config 定制行为整个 CI 从重启容器换环境变成HTTP 请求换环境提速效果立竿见影。端点速查表端点方法一句话说明/_ministack/healthGET服务清单 版本 初始化进度兼容/_localstack/health、/health/_ministack/readyGET严格就绪探针脚本未跑完返回 503/_ministack/resetPOST清空全部状态?init1重跑初始化脚本/_ministack/configPOST白名单运行时配置免重启生效/_ministack/ses/messagesGET查看 SES 发出的邮件/_ministack/sqs/messagesGET窥视 SQS 队列消息只读安全更完整的端点说明见 README.md所有端点的源码集中在 ministack/app.py。总结MiniStack 的内部 API 把本地 AWS 环境从一次性容器变成了一个可编程的测试基座health轮询就绪消除启动竞态reset秒级重建干净环境测试互不污染⚙️config运行时调参跳过无意义的等待。对新手来说只要记住这三条命令就足以搭建一套稳定、快速的 AWS 本地测试流水线。MiniStack 永久免费、MIT 协议欢迎立即接入你的 CI 体验一下 【免费下载链接】ministackMinistack: Free, open-source local AWS emulator - 60 services, Terraform compatible, real databases. Free forever. MIT licensed.项目地址: https://gitcode.com/gh_mirrors/mi/ministack创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

ShrinkDriver:使用 PowerShell 并行执行 DBCC SHRINKFILE 回收 SQL Server 数据文件空间

ShrinkDriver:使用 PowerShell 并行执行 DBCC SHRINKFILE 回收 SQL Server 数据文件空间

示例工程数据库教程后端 【免费下载链接】sql-server-samples Azure Data SQL Samples - Official Microsoft GitHub Repository containing code samples for SQL Server, Azure SQL, Azure Synapse, and Azure SQL Edge 项目地址: https://gitcode.com/gh_mirrors…

📅 2026/9/25 3:56:12
JMeter分布式压测环境搭建:从单机瓶颈到多机协作实战

JMeter分布式压测环境搭建:从单机瓶颈到多机协作实战

做压测这行越久,越会发现一个事实:单机 JMeter 的瓶颈,往往比被测系统的瓶颈来得更早。明明脚本没问题、场景也没问题,可压到一定并发量之后,客户端自己先卡死了,CPU 打满、内存飙升、网络连接数耗尽&#…

📅 2026/9/25 3:56:12
Atlantis 架构决策记录(ADR)实践指南:从决策流程到 API 增强与漂移检测的实现落地

Atlantis 架构决策记录(ADR)实践指南:从决策流程到 API 增强与漂移检测的实现落地

DevOpsCI/CD基础设施 【免费下载链接】atlantis Terraform Pull Request Automation 项目地址: https://gitcode.com/gh_mirrors/at/atlantis 点击查看 免费下载 本文以 Atlantis 仓库 docs/adr/ 目录下的架构决策记录体系为核心,完整讲解 ADR 的引入背…

📅 2026/9/25 3:56:12
MORE NEWS

更多资讯

📰

TOML4CJ vs JSON vs YAML:为什么配置文件该选TOML?实战对比分析

TOML4CJ vs JSON vs YAML:为什么配置文件该选TOML?实战对比分析 【免费下载链接】toml4cj 一个TOML格式解析库 项目地址: https://gitcode.com/Cangjie-TPC/toml4cj 配置文件是每个项目都绕不开的基础设施。当你需要为应用选择配置文件格式时&…

📰

从私钥泄露到自动化代码审查:open-code-review 的开源实践

凌晨1点47分,监控平台弹出一条告警:支付回调接口返回了500。排查结果让人想摔键盘——不是业务代码的锅,是上一轮 code review 里,有人把包含真实私钥的配置文件一并提交了仓库。当时审查页面上挂着三名开发者,三个 ap…

📰

Flowbite 与 Django 集成实战:在 Python 项目中安装 Tailwind CSS 并启用交互组件库

UI组件前端 【免费下载链接】flowbite Open-source UI component library and front-end development framework based on Tailwind CSS 项目地址: https://gitcode.com/gh_mirrors/fl/flowbite 点击查看 免费下载 本指南完整讲解如何在一个 Django 项目中从零接入…

📰

1602LCD屏幕不亮、乱码、位置不对:4类常见故障完整清单与自检方法

1602LCD屏幕不亮、乱码、位置不对:4类常见故障完整清单与自检方法 【免费下载链接】lcd-1602-display 源师兄扩展项目: 1602LCD | 由源师兄组织创建 项目地址: https://gitcode.com/yuanshixiong/lcd-1602-display 如果你的 1602LCD 屏幕不亮、显示乱码、文字…

📰

在本地部署 Lore Server:二进制与 Docker 两种持久化实战指南

版本控制后端 【免费下载链接】lore Lore is a next-generation, open source version control system 项目地址: https://gitcode.com/gh_mirrors/lore6/lore 点击查看 免费下载 loreserver 是 Lore 版本控制系统的服务端组件,它是仓库数据的集中来源&…

📰

Linux下httpd服务配置:构建生产级Web交付管道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬