设置 AWS Lambda
先决条件
设置开发环境
- 安装 AWS CLI: 下载并安装 AWS CLI。使用您的 IAM 凭证进行配置。
- 设置 Python 或 Node.js:安装 Python 或 Node.js(根据您偏好的运行时)。AWS Lambda 支持多种运行时。本教程将使用 Python 运行时。
步骤 1:进入 AWS Lambda 控制台
- 登录到 AWS 管理控制台。
- 导航到 Lambda 服务。

AWS 控制台中的导航面板。
在导航菜单中点击Lambda,即可查看仪表板:

AWS 控制台中的 AWS Lambda 仪表板。
步骤 2:创建新函数
- 点击Create Function。
- 选择“Author from Scratch”。
- 为您的函数命名。
- 选择运行时(例如,Python 3.11)。
- 点击Create Function按钮。

创建新的 AWS Lambda 函数。
这将花费几秒钟。函数创建完成后,您会在顶部看到成功消息。
步骤 3:编写函数代码

AWS Lambda 浏览器 IDE,可进行简单的代码编辑。
步骤 4:测试您的 Lambda 函数
此时,该函数仅返回字符串“Hello from Lambda!”。
没有任何逻辑、依赖或其他内容。
我们有一个名为 lambda_function.py 的 Python 脚本,其中包含名为 lambda_handler() 的函数,会返回一个字符串。
现在我们可以直接点击 Test 按钮进行测试。

在浏览器中测试您的 AWS Lambda 函数。
由于我们的函数不接受输入,您可以删除“Event JSON”。为事件命名,然后点击 Invoke 按钮。

成功测试 AWS Lambda 函数。
函数已成功执行并返回消息。
太棒了!我们刚刚使用 AWS Lambda 部署了一个无服务器函数。它目前功能不多,但已正常运行。每次调用该函数时,它都会返回一个简单的字符串。
通过事件触发 Lambda
如前所述,AWS Lambda 架构允许您针对来自各种 AWS 服务的特定事件触发函数,使其成为自动化工作流与集成系统的通用工具。
诸如向 S3 存储桶上传文件、DynamoDB 表的更新或通过 API Gateway 的 API 调用等事件,都可以触发 Lambda 函数,从而实现实时处理与可扩展执行。
1. 设置 S3 触发器
- 进入 S3 控制台。
- 选择 S3 存储桶。
- 在“属性”下添加事件通知,以在创建对象时触发您的 Lambda 函数。
在 AWS S3 存储桶中创建事件通知。
在 S3 中选择要触发的 Lambda 函数。
示例用例:
-
- 自动调整上传到 S3 的图像大小。
- 将视频转换为多种分辨率或流媒体格式。
- 在上传时检查文件格式、大小或元数据。
- 使用 AI 从上传的文档中提取文本(例如,通过 Amazon Textract)。
2. 集成 API Gateway
- 导航到 API Gateway 服务。

AWS 控制台中的 API Gateway 服务仪表板。
- 创建一个新的 REST API。

通过 API Gateway 创建新的 REST API。
- 配置方法(例如 POST)以触发您的 Lambda 函数。
示例用例:
-
- 构建用于实时响应的无服务器 API。
- 触发 Lambda 函数以在数据库中创建并存储用户数据。
- 处理 POST 请求以实时处理和校验客户订单。
- 触发 Lambda 函数以查询并返回数据库或 API 的数据。
部署与监控 AWS Lambda
部署 AWS Lambda 函数非常直接,可根据需要选择不同方法,例如使用 AWS 管理控制台进行手动部署,或使用 AWS CLI 进行自动化部署。
1. 使用 AWS 控制台手动部署
AWS 管理控制台提供直观的 Web 界面来部署 Lambda 函数。此方法适用于小型项目或快速变更。以下是在控制台中部署 Lambda 函数的步骤:
- 创建或编辑函数:
- 登录AWS 管理控制台。
- 导航到 AWS Lambda。
- 点击 Create Function 创建新函数,或选择现有函数进行更新。
- 上传代码:
- 选择 Upload from,并选择 .zip 文件或容器镜像。
- 对于小规模开发,您可以在集成的代码编辑器中直接编辑函数代码。
- 配置函数:
- 根据您的用例定义环境变量、内存分配和超时限制。
- 使用 AWS IAM 角色添加必要的权限,以允许函数与其他 AWS 服务交互。
- 部署变更:
- 点击 Deploy 以保存并生效您的变更。
- 使用 Test 功能手动调用函数,验证其按预期工作。
2. 使用 AWS CLI 进行自动化部署
对于自动化或频繁更新,AWS CLI 是部署和更新 Lambda 函数的高效方式。它能确保一致性并减少人工错误,尤其适用于大型项目或 CI/CD 流水线。
步骤 1 —— 准备部署包
将代码和依赖项打包为 .zip 文件。例如:
zip -r my-deployment-package.zip .
步骤 2 —— 使用 CLI 部署函数
使用 update-function-code 命令将新代码上传至 AWS Lambda:
aws lambda update-function-code \
--function-name MyFunction \
--zip-file fileb://my-deployment-package.zip
步骤 3 —— 检查部署
部署后,使用以下命令验证函数状态:
aws lambda get-function --function-name MyFunction
该命令会检索函数配置并确认部署情况。
使用 CloudWatch 监控 Lambda
监控对于确保您的 Lambda 函数高效运行、优雅处理错误并满足性能预期至关重要。AWS Lambda 可集成 Amazon CloudWatch,提供监控与日志功能。
Amazon CloudWatch 会自动收集并显示您的 Lambda 函数的关键指标。这些指标有助于分析函数性能并排查问题。
需要监控的指标:
- Invocations(调用次数):跟踪函数被调用的次数。帮助您了解流量模式与使用趋势。
- Errors(错误):显示函数执行期间的错误数量。用于识别失败率并调试问题。
- Duration(执行时长):衡量函数的执行时间。这对于优化性能和管理成本至关重要。
- Throttles(限流):显示由于达到并发限制而被限流的调用次数。
访问指标:
- 导航至 CloudWatch 指标控制台。
- 从命名空间列表中选择Lambda。
- 选择您要监控的函数以查看详细指标。
AWS Lambda 最佳实践
既然您已部署了第一个 Lambda 函数,那么了解一些适用于未来更复杂项目的最佳实践将很有帮助。本节将提供一些需要牢记的最佳实践。
1. 优化函数冷启动
当 Lambda 函数在空闲一段时间后被调用时会发生冷启动,AWS 在预置执行环境时会引入轻微的延迟。尽管 AWS 会尽量降低这部分开销,但您仍可通过以下措施减少冷启动时间:
使用更小的部署包
- 仅包含必要的依赖项,保持部署包精简。
- 使用 AWS Lambda Layers 共享通用库(例如 AWS SDK),避免在每个包中单独包含。
- 在可能的情况下压缩与最小化代码,特别是基于 JavaScript 或 Python 的函数。
避免在函数中进行繁重的初始化
将资源密集型的初始化(例如数据库连接、API 客户端或第三方库)移动到函数处理器之外。这样可以确保这些代码在每个环境中仅执行一次,并在多次调用间复用。
利用预置并发
对于关键的、对延迟敏感的函数,使用预置并发(Provisioned Concurrency)以保持执行环境随时就绪。尽管会产生额外成本,但它能为高优先级工作负载提供低延迟保障。
2. 保持函数无状态
无状态性是无服务器架构的基本原则,可确保您的应用实现无缝扩展:
避免依赖内存中的数据
Lambda 函数是短暂的,其执行环境可能不会在多次调用之间持久存在。不要依赖内存变量,而应将状态信息存储在外部系统(如 DynamoDB、S3 或 Redis)中。
实现幂等性
将函数设计为能够优雅地处理重复事件。为请求使用唯一标识符,并检查日志或数据库以确保不会多次处理相同事件。
3. 使用环境变量
环境变量是一种安全且便捷的方式来配置您的 Lambda 函数:
存储敏感信息
- 将 API 密钥、数据库连接字符串和其他机密作为环境变量存储。AWS Lambda 会对这些变量进行静态加密,并在执行时解密。
- 为进一步增强安全性,可使用 AWS Secrets Manager 或 Systems Manager Parameter Store 动态管理密钥。
简化配置管理
使用环境变量管理日志级别、区域设置或第三方服务 URL 等配置。这样可避免硬编码值,使函数更易在不同环境(如开发、预生产、生产)之间迁移。
结论
本教程介绍了 AWS Lambda 的入门指南,从理解其特性与用例,到高效地部署与监控函数。通过遵循最佳实践(如优化冷启动、保持函数无状态以及使用环境变量),您可以构建稳健且易维护的无服务器应用。
AWS Lambda 是一种构建与 AWS 生态系统深度集成的现代事件驱动架构的方式。如果您想进一步学习,我推荐查看 DataCamp 的 AWS 课程。

AWS Lambda 是一项功能强大的无服务器计算服务,允许您在无需管理基础设施的情况下运行代码,因此您可以专注于编写代码,而不必担心配置或维护服务器。
在本教程中,我们将从设置您的第一个函数开始,逐步探索 AWS Lambda,并将其与其他AWS 服务集成。无论您是在处理数据流还是构建 API,本指南都将帮助您开始使用 AWS Lambda 进行无服务器部署。
什么是 AWS Lambda?
AWS Lambda 是 Amazon Web Services(AWS)提供的无服务器计算平台,使开发者无需预置或管理服务器即可运行代码。AWS Lambda 通过在需要时动态分配资源来执行您的函数,并根据使用量而非预分配的服务器容量计费,从而实现这一点。
这种应用开发方式免去了传统的基础设施搭建,让您能够专注于代码的编写与部署。
AWS Lambda 采用事件驱动模型,即由其他 AWS 服务的特定事件触发,因此非常适合构建响应迅速、可扩展且具成本效益的解决方案。
传统的部署方式需要搭建和管理服务器,涉及扩展、更新和打补丁。这些任务对于零星的工作负载来说既耗时、成本高且效率低。相比之下,无服务器部署消除了这些开销,开箱即用地提供自动扩展和高可用性。
AWS Lambda 的特性
Lambda 的常见用例
AWS Lambda 如何工作?
AWS Lambda 采用事件驱动模型,即根据特定触发器或事件执行代码。Lambda 的关键在于与其他 AWS 服务的集成,以及按需执行函数的能力。下面我们分步了解 AWS Lambda 的工作机制:
一个使用 Lambda 和其他核心 AWS 服务的示例架构图。图片来源:AWS。
1. 触发 AWS Lambda 函数
AWS Lambda 函数由来自各种 AWS 服务或外部系统的事件触发。常见的事件源包括:
2. 执行环境
当事件触发 Lambda 函数时,AWS 会自动创建一个执行环境来运行代码。该环境包括:
3. 并发与伸缩
AWS Lambda 通过并行运行您的函数实例来支持自动扩展。它无需任何配置即可透明地进行扩展。并发的工作方式如下:
4. 与其他 AWS 服务的集成
AWS Lambda 与 AWS 服务深度集成,可构建健壮的端到端解决方案:
现在,让我们开始设置您的第一个 Lambda 函数!