
aws-lambda-power-tuning
自动跑遍内存档位,找出 Lambda 最省钱或最快的配置
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-09-16 · 当前星标 ★ 6080
使用教程
环境要求
- 已安装并配置 AWS SAM CLI
- 已安装 AWS CLI 并完成 AWS 凭证配置(aws configure)
- 本地已安装并启动 Docker(sam build -u 依赖)
- 已安装 git 用于克隆仓库
- 一个可用的 AWS 账户及目标 Lambda 函数 ARN
安装与启动步骤
-
1配置 AWS 凭证
用 AWS CLI 交互式配置访问密钥、默认区域与输出格式,这是后续 SAM 部署的前提。
aws configure -
2克隆项目仓库
把 aws-lambda-power-tuning 源码拉到本地,后续构建和部署都在该目录内进行。
git clone https://github.com/alexcasalboni/aws-lambda-power-tuning.git -
3构建依赖
进入项目目录并用 Docker 容器环境构建 Lambda 层与依赖,成功时会输出 Build Succeeded。
cd ./aws-lambda-power-tuning sam build -u -
4部署到 AWS
使用引导式部署,按提示填写唯一的 Stack Name 和 AWS Region,其余提示保持默认即可。
sam deploy -g -
5准备执行参数
在 scripts/sample-execution-input.json 中填入你的 Lambda ARN、内存档位、调用次数和 payload。
cat scripts/sample-execution-input.json -
6运行状态机
执行 scripts 目录下的 execute 脚本,状态机会用不同内存规格反复调用目标函数并给出调优建议。
cd ./aws-lambda-power-tuning ./scripts/execute.sh -
7删除部署
调优完成后可运行 sam delete 清理资源,提示处回答 Y 即可,避免继续占用配额。
sam delete
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
lambdaARN | 是 | 待调优的目标 Lambda 函数 ARN | arn:aws:lambda:us-east-1:123456789012:function:my-function |
powerValues | 否 | 要测试的内存档位列表,取值 128MB~10GB | [128, 256, 512, 1024] |
num | 否 | 每个内存档位重复调用的次数,次数越多结果越稳 | 50 |
payload | 否 | 调用目标 Lambda 时传入的事件负载 | {} |
如何确认成功
sam deploy -g 结束后出现 Successfully created/updated stack 提示,即表示状态机部署成功。
常见问题
Q:sam build -u 构建失败怎么办?
A:该命令依赖 Docker 容器环境,请确认 Docker 已安装并处于运行状态;构建失败时终端会给出具体错误提示,按提示修复后重试。
Q:调优会不会影响我的生产 Lambda?
A:会真实调用你的函数,触发真实 HTTP 请求、SDK 调用和冷启动,建议先在测试函数上评估调用次数与 payload 的影响。
Q:怎么删除已经部署的调优工具?
A:在项目目录下执行 sam delete,并在提示处回答 Y,SAM 会删除本次部署创建的相关资源。
Q:可以调优非 Node.js 的函数吗?
A:可以,状态机与语言无关,只要提供任意 Lambda 函数的 ARN 就能对其进行调优。
Q:部署选项只有 SAM CLI 一种吗?
A:不是,官方提供了 5 种基于基础设施即代码的部署方式,Quick Start 使用的是 SAM CLI,其他方式见 README-DEPLOY.md。
注意事项
- 该工具运行在你自己的 AWS 账户中,调用目标函数会产生真实费用。
- sam build -u 必须依赖 Docker,未启动 Docker 会直接构建失败。
- sam deploy -g 的交互回答会保存到 samconfig.toml,后续部署可复用。
- 状态机支持跨区域调用,并可通过并行执行大幅缩短出结果的时间。
核心亮点
- 基于 Step Functions 编排,无需自建服务器,直接跑在用户自己的 AWS 账户里,数据不出账户
- 支持 cost、speed、balanced 三种策略,并给出可视化图表,直观对比不同内存下的耗时与费用
- 可指定内存范围、并发数、冷启动预热和调用次数,调优粒度细,结果可导出到 S3 供团队复用
不足之处
- 调优过程会产生真实 Lambda 调用费用,对高频函数或大内存档位可能产生额外开销
- 依赖 AWS Step Functions 和 IAM 权限配置,首次使用需要一定 AWS 运维知识
适用场景
- 生产环境 Lambda 成本偏高,需要找到性价比最高的内存配置
- 新上线函数不确定该给多少内存,用数据代替拍脑袋
- 对延迟敏感的服务,想验证加大内存能否显著降低执行时间
替代项目
lambda-cost-calculator、serverless-esbuild、aws-sam-cli
同类项目推荐
comfy2go
开源
用 Go 轻松接入 ComfyUI,快速实现图像生成服务
A Go-based API that acts as a bridge to the ComfyUI backend
vllm-rlt
开源
给循环 Transformer 做循环级调度的推理引擎
A vLLM-inspired inference engine for looped transformers, with loop-level scheduling···
speculators
开源
统一投机解码库,让 vLLM 推理更快更省
A unified library for building, evaluating, and storing speculative decoding algorit···
Mooncake
开源
用缓存复用和分离式调度,让大模型服务又快又省
Mooncake is the serving platform for Kimi, a leading LLM service provided by Moonsho···
TransformerEngine
开源
让 Transformer 在 NVIDIA GPU 上跑得更快更省显存
A library for accelerating Transformer models on NVIDIA GPUs, including using 8-bit ···
ezdata
开源
连接 60+ 数据源,AI 自动查询、绘图、分析,让数据开口说话。
AI-native data platform: 60+ connectors, dlt-based ETL, DAG scheduling, per-source R···
lilypad
开源
用区块链调度全球闲置 GPU,跑 AI 任务更便宜透明
Run AI workloads easily in a decentralized GPU network. https://www.youtube.com/wat···
mlops-project
开源
一键跑通ML全流程,从训练到部署不再手忙脚乱
An end-to-end machine learning (mlops) project
amd-r9700-vllm-toolboxes
开源
在 AMD R9700 上一键搭起 vLLM 推理服务