aws-lambda-power-tuning

自动跑遍内存档位,找出 Lambda 最省钱或最快的配置

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 基础设施 🍴 复刻 413 🐛 待处理 12 👀 关注 77
GitHub ↗
GitHub 星标 ★ 6080
维护状态 较活跃
是否开源 开源
定价模式 🏷️完全免费 开源免费,运行于自有 AWS 账户,仅需承担 AWS 资源费用

项目预览

aws-lambda-power-tuning 项目界面预览图
图片来源:GitHub 官方仓库名片

项目数据

分类基础设施
开发团队alexcasalboni
定价模式🏷️完全免费
价格说明开源免费,运行于自有 AWS 账户,仅需承担 AWS 资源费用
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议Apache-2.0
主要语言JavaScript
技术栈/模型aws,aws-lambda,cloud,cost,lambda,performance,serverless,stepfunctions
GitHub 星标★ 6080
上线时间2017-03-27 00:00:00
代码更新2026-10-14
仓库体积3.6 MB
本站数据更新2026-11-03
维护状态较活跃
收录时间2026-09-16
浏览次数2

项目介绍

AWS Lambda Power Tuning 是一个运行在你自己 AWS 账户中的开源调优工具,专门解决 Lambda 函数内存配置难以确定的问题。它基于 AWS Step Functions 编排,自动用不同内存规格(从 128MB 到 10GB)反复调用目标 Lambda,记录每次的执行时长与费用,再生成可视化图表,帮你找到成本最低、速度最快或两者平衡的配置点。支持 cost、speed、balanced 三种优化策略,可并行执行、可指定内存范围、可设置冷启动预热,结果直接输出到控制台或 S3。整个过程无需部署额外服务器,用完即走,适合对无服务器成本敏感或需要压榨性能的团队。

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-09-16 · 当前星标 ★ 6080

使用教程

难度:进阶 约 20 分钟 部署方式:命令行工具 7 步

环境要求

  • 已安装并配置 AWS SAM CLI
  • 已安装 AWS CLI 并完成 AWS 凭证配置(aws configure)
  • 本地已安装并启动 Docker(sam build -u 依赖)
  • 已安装 git 用于克隆仓库
  • 一个可用的 AWS 账户及目标 Lambda 函数 ARN

安装与启动步骤

  1. 1配置 AWS 凭证

    用 AWS CLI 交互式配置访问密钥、默认区域与输出格式,这是后续 SAM 部署的前提。

    aws configure
  2. 2克隆项目仓库

    把 aws-lambda-power-tuning 源码拉到本地,后续构建和部署都在该目录内进行。

    git clone https://github.com/alexcasalboni/aws-lambda-power-tuning.git
  3. 3构建依赖

    进入项目目录并用 Docker 容器环境构建 Lambda 层与依赖,成功时会输出 Build Succeeded。

    cd ./aws-lambda-power-tuning
    sam build -u
  4. 4部署到 AWS

    使用引导式部署,按提示填写唯一的 Stack Name 和 AWS Region,其余提示保持默认即可。

    sam deploy -g
  5. 5准备执行参数

    在 scripts/sample-execution-input.json 中填入你的 Lambda ARN、内存档位、调用次数和 payload。

    cat scripts/sample-execution-input.json
  6. 6运行状态机

    执行 scripts 目录下的 execute 脚本,状态机会用不同内存规格反复调用目标函数并给出调优建议。

    cd ./aws-lambda-power-tuning
    ./scripts/execute.sh
  7. 7删除部署

    调优完成后可运行 sam delete 清理资源,提示处回答 Y 即可,避免继续占用配额。

    sam delete

关键配置

配置项必填说明示例
lambdaARN是待调优的目标 Lambda 函数 ARNarn: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

上一篇:pmetal

下一篇:Orion

同类项目推荐

comfy2go 开源

用 Go 轻松接入 ComfyUI,快速实现图像生成服务

A Go-based API that acts as a bridge to the ComfyUI backend

★ 79 2026-08-09
vllm-rlt 开源

给循环 Transformer 做循环级调度的推理引擎

A vLLM-inspired inference engine for looped transformers, with loop-level scheduling···

★ 217 2026-10-28
speculators 开源

统一投机解码库,让 vLLM 推理更快更省

A unified library for building, evaluating, and storing speculative decoding algorit···

★ 934 2026-10-14
Mooncake 开源

用缓存复用和分离式调度,让大模型服务又快又省

Mooncake is the serving platform for Kimi, a leading LLM service provided by Moonsho···

★ 6952 2026-08-09
TransformerEngine 开源

让 Transformer 在 NVIDIA GPU 上跑得更快更省显存

A library for accelerating Transformer models on NVIDIA GPUs, including using 8-bit ···

★ 3599 2026-10-31
ezdata 开源

连接 60+ 数据源,AI 自动查询、绘图、分析,让数据开口说话。

AI-native data platform: 60+ connectors, dlt-based ETL, DAG scheduling, per-source R···

★ 295 2026-08-09
lilypad 开源

用区块链调度全球闲置 GPU,跑 AI 任务更便宜透明

Run AI workloads easily in a decentralized GPU network. https://www.youtube.com/wat···

★ 93 2026-08-09
mlops-project 开源

一键跑通ML全流程,从训练到部署不再手忙脚乱

An end-to-end machine learning (mlops) project

★ 53 2026-08-09