
【免费下载链接】fakecloudFree, open-source AWS emulator. LocalStack alternative: 107 services, 7,657 operations, true 100% Smithy conformance (258,545/258,545 variants pass). No account, no auth token, no paid tier.项目地址https://gitcode.com/gh_mirrors/fak/fakecloud点击查看免费下载fakecloud是一款免费、开源的本地 AWS 云模拟器LocalStack 替代品覆盖 107 个服务、7,657 个操作且全部通过 Smithy 一致性校验。它的核心亮点之一就是真实的跨服务联动S3 上传对象能真的触发 Lambda 执行EventBridge 事件能真的启动 Step Functions 状态机SES 邮件事件能真的经 SNS 落到 SQS 队列——全部在本地http://localhost:4566上端到端跑通无需 AWS 账号、无需认证 token。本文带你拆解 fakecloud 的三大跨服务集成测试链路看看它是如何做到真实验证而非打桩假跑的。一、为什么跨服务集成测试这么难在真实 AWS 上服务之间的联动S3 通知、事件总线、邮件收件规则依赖事件驱动架构本地测试面临三大难题成本高每跑一轮 CI 都产生真实费用速度慢远程调用 异步事件单条用例动辄数秒不可观测事件到底有没有触发下游只能靠日志猜fakecloud 的解法单二进制约 19 MB、300ms 启动模拟全部服务事件总线在进程内真实投递下游服务收到事件后真实执行。克隆仓库即可开始git clone https://gitcode.com/gh_mirrors/fak/fakecloud安装后一条命令启动curl -fsSL https://fakecloud.dev/install.sh | bash fakecloud然后把任意 AWS SDK / CLI 指向--endpoint-url http://localhost:4566即可。二、链路一S3 → Lambda对象上传真实触发函数执行对应的端到端测试是 lambda_integration.rs 中的s3_to_lambda_notification_executes_code。测试流程拆解步骤操作说明1️⃣创建 S3 桶lambda-notif-bucket标准 S3 API2️⃣put-bucket-notification-configuration配置LambdaFunctionConfigurations事件为s3:ObjectCreated:*与真实 AWS 完全一致的 CLI 参数3️⃣put_object上传trigger.txt触发通知4️⃣检查标记队列中是否出现lambda-executed消息证明 Lambda 真的跑了代码关键设计标记队列验证法很多模拟器只检查通知有没有发出而 fakecloud 更进一步它创建一个真实的 Python Lambda 函数Docker 容器内运行函数逻辑是把收到的事件写回一条 SQS 队列见 lambda_integration.rs 中的python_sqs_writer_code。测试最后断言队列中必须出现marker: lambda-executed标记——如果 Lambda 没有真正执行这个标记永远不会出现。这就是端到端真实验证的含义不 mock 下游用可观察的副作用队列消息证明整条链路贯通。三、链路二EventBridge → Step Functions事件驱动状态机对应测试 eventbridge.rs 中的eb_rule_starts_stepfunctions_execution。测试流程拆解创建状态机一个最简单的 Pass 状态StartAt: PassState → End: true创建 EventBridge 规则sfn-trigger事件模式{source: [test.sfn]}put_targets把规则指向状态机 ARNput_events投递一条匹配事件轮询list_executions直到执行状态从RUNNING变为SUCCEEDED✅这里有两个容易被忽视的细节执行是异步的list_executions在状态机启动瞬间就会列出RUNNING执行所以测试用wait_until轮询直到终态而不是假设PutEvents 返回 执行完成见 eventbridge.rs双向联动不止 EventBridge 能触发 Step Functions反向也成立——Step Functions 的 Task 状态可以直接调用aws.events:putEvents投递逻辑在 interpreter_helpers.rs 中实现并带执行作用域与角色校验除了直接目标事件还可以多级扇出EventBridge → SNS → SQS 的完整链路在 multiservice.rs 的eventbridge_to_sns_to_sqs_chain中有验证。四、链路三SES → SQS邮件事件端到端落地对应测试 ses.rs 中的ses_event_fanout_sns_destination。测试流程拆解SES 发送邮件 ──事件──▶ Configuration Set 事件目的地 ──▶ SNS Topic ──订阅──▶ SQS 队列 Send Delivery 两个事件类型步骤操作1️⃣创建 SNS Topicses-events2️⃣创建 SQS 队列并订阅到 Topicprotocol: sqs3️⃣创建 SES 配置集 SNS 事件目的地匹配Send和Delivery事件4️⃣带ConfigurationSetName发送一封邮件5️⃣从 SQS 收到≥2 条SNS 信封消息解析内部eventType并校验mail.source、messageId测试还覆盖了更隐蔽的Bounce 模拟器场景把邮件发给bouncesimulator.amazonses.comfakecloud 会生成 Bounce 事件并经 SNS 投递到 SQSses.rs。进阶SES 收件规则的多动作编排如果你测试的是入站邮件场景fakecloud 的 SES 支持完整收件规则执行测试 ses_receipt_actions.rs 展示了单条规则同时执行 4 个动作AddHeader注入自定义头 → 存入S3触发SNS通知含注入头的内容校验Bounce生成退信邮件550 / 5.7.1通知经 SNS →SQS双通道落地通过内部 APIPOST /_fakecloud/ses/inbound注入一封入站邮件即可驱动整条规则链随后断言 S3 对象、退信、SQS 通知三者全部就位。五、如何自己跑这些跨服务测试所有跨服务测试集中在 e2e 测试套件中核心文件文件覆盖链路cross_service.rsS3→SQS 通知、SQS/Kinesis→Lambda ESM、EventBridge→Lambda/CloudWatch Logs、DynamoDB 导出/导入、Secrets Manager 轮转lambda_integration.rsSNS/SQS/S3/DynamoDB Streams→Lambda 代码真实执行eventbridge.rs规则、目标、调度、SFN 执行触发multiservice.rsEventBridge→SNS→SQS 多级链、IAMSTSSSMSQS 组合ses.rsSES 事件目的地 → SNS → SQSstepfunctions.rs状态机 CRUD、执行历史、Task 状态运行方式涉及 Lambda 真实执行的用例会启动 Docker 容器本地无 Docker 时自动跳过cargo test -p fakecloud-e2e --test lambda_integration cargo test -p fakecloud-e2e --test eventbridge cargo test -p fakecloud-e2e --test cross_service调试技巧内部 Introspection APIfakecloud 提供了一系列/_fakecloud/*内部端点方便断言服务内部发生了什么端点用途GET /_fakecloud/lambda/invocations查看所有 Lambda 调用记录含入参事件POST /_fakecloud/ses/inbound注入入站邮件驱动收件规则GET /_fakecloud/ses/emails查看已投递/退信的邮件内容这些端点在测试中的用法见 cross_service.rs。六、小结fakecloud 的跨服务集成测试设计有两条清晰的原则断言可观察的副作用而非中间态——用 SQS 标记消息、S3 对象、执行历史证明 Lambda 真的执行、规则真的触发测试代码即文档——crates/fakecloud-e2e/tests/ 下 367 个测试文件每条链路都可以直接复制成你 CI 里的集成用例不需要 AWS 账号、不需要付费层、启动 300ms把整个事件驱动架构搬回本地——这正是 fakecloud 与 LocalStack 最本质的差异之一。更多跨服务组合与每服务操作数明细可参考仓库内的 README.md 与 website/content/docs/ 文档目录。赞分享【免费下载链接】fakecloudFree, open-source AWS emulator. LocalStack alternative: 107 services, 7,657 operations, true 100% Smithy conformance (258,545/258,545 variants pass). No account, no auth token, no paid tier.项目地址https://gitcode.com/gh_mirrors/fak/fakecloud点击查看免费下载相关推荐SeaweedFS S3 服务端加密SSE集成测试全指南从 SSE-C / SSE-KMS / SSE-S3 到 OpenBao 真实 KMS 的端到端验证SeaweedFS S3 服务端加密SSE集成测试全指南从 SSE C / SSE KMS / SSE S3 到 OpenBao 真实 KMS 的端到端验分布式文件系统对象存储后端90DaysOfDevOps 2023 Day 74 精讲AWS Serverless 编排服务——Step Functions、EventBridge、SQS 与 SNS90DaysOfDevOps 2023 Day 74 精讲AWS Serverless 编排服务——Step Functions、EventBridge、SQ文档/教程BentoML 服务测试指南从单元测试到端到端验证的完整实战BentoML 服务测试指南从单元测试到端到端验证的完整实战 本文以 BentoML 官方文档《Test API endpoints》为核心骨架系统讲解如何人工智能模型推理服务MLOpsLLMOps后端云原生API网关创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考