79 lines
3.1 KiB
Markdown
79 lines
3.1 KiB
Markdown
---
|
||
title: "AWS Lambda"
|
||
type: entity
|
||
tags:
|
||
- AWS
|
||
- Serverless
|
||
- Compute
|
||
- Lambda
|
||
sources:
|
||
- public-cloud-learning-sessions-opentext-serverless-computing-20240903-160139-mee
|
||
last_updated: 2026-04-14
|
||
---
|
||
|
||
## Aliases
|
||
- Lambda
|
||
- AWS Lambda
|
||
|
||
## Definition
|
||
|
||
AWS Lambda 是 AWS 的无服务器(Serverless)计算服务——开发者只需编写业务逻辑函数(Handler),AWS 负责所有底层运维:负载均衡、自动扩展、安全补丁和容量管理。Lambda 函数由事件(event)触发,事件即云资源状态的任何变化。
|
||
|
||
## Core Properties
|
||
|
||
| 属性 | 值 |
|
||
|------|-----|
|
||
| 触发模式 | 同步调用、异步调用、事件源映射 |
|
||
| 权限模型 | 执行角色(Execution Role)+ 资源策略(Resource-Based Policy) |
|
||
| 代码管理 | 版本(Version)、别名(Alias)、Layers(共享公共依赖) |
|
||
| 架构支持 | x86 和 ARM64(ARM64 提供更优性价比) |
|
||
| 监控 | CloudWatch 指标(请求数、错误数、延迟、节流) |
|
||
| 调试工具 | Amazon Q(集成 AI 辅助调试) |
|
||
| 性能调优 | Lambda Power Tuning(比较不同配置的性能和成本) |
|
||
|
||
## Lambda Handler 模式
|
||
|
||
Lambda 函数接收三个核心参数:
|
||
|
||
1. **Handler** — 入口函数,事件触发时执行
|
||
2. **Event Object** — 触发事件的数据结构(API Gateway 请求、S3 对象变更等)
|
||
3. **Context Object** — 运行时信息(超时设置、内存限制、日志句柄等)
|
||
|
||
## Invocation Patterns
|
||
|
||
- **同步调用(Synchronous)**:调用方等待响应,如 API Gateway → Lambda
|
||
- **异步调用(Asynchronous)**:Lambda 自动处理重试(最多 2 次),如 S3 事件 → Lambda
|
||
- **事件源映射(Event Source Mapping)**:Lambda 轮询流式服务(Kinesis、DynamoDB Stream、SQS)批量处理记录
|
||
|
||
## Permissions Model
|
||
|
||
Lambda 权限模型基于 IAM 的最小权限原则:
|
||
|
||
| 权限类型 | 作用对象 | 说明 |
|
||
|---------|---------|------|
|
||
| Execution Role | Lambda 函数 | 定义函数能调用哪些 AWS 资源和服务 |
|
||
| Resource-Based Policy | 其他 AWS 账号/服务 | 定义谁能/什么能触发该 Lambda 函数 |
|
||
|
||
## Lambda Layers
|
||
|
||
Lambda Layers 允许跨多个 Lambda 函数共享公共代码和依赖:
|
||
- 运行时环境(如 Python boto3 库)
|
||
- 自定义运行时
|
||
- 配置和脚本
|
||
|
||
Layers 避免了每个函数重复打包相同依赖,减少部署包大小和更新成本。
|
||
|
||
## Connections
|
||
- [[Serverless-Computing]] ← is_core_service_of ← [[AWS-Lambda]]
|
||
- [[AWS-Lambda]] ← triggered_by ← [[Amazon-EventBridge]]
|
||
- [[AWS-Lambda]] ← exposed_via ← [[Amazon-API-Gateway]]
|
||
- [[AWS-Lambda]] ← orchestrated_by ← [[AWS-Step-Functions]]
|
||
- [[AWS-Lambda]] ← monitored_by ← [[CloudWatch]]
|
||
- [[SAM-Serverless-Application-Model]] ← deploys ← [[AWS-Lambda]]
|
||
|
||
## Related Entities
|
||
- [[Amazon-API-Gateway]] — Lambda 的 API 暴露层
|
||
- [[AWS-Step-Functions]] — Lambda 的工作流编排层
|
||
- [[Amazon-EventBridge]] — Lambda 的事件驱动触发源
|
||
- [[CloudWatch]] — Lambda 的监控和日志层
|