AWS Lambda
概述 AWS Lambda 是无服务器(Serverless)计算服务:上传函数代码,由 AWS 按事件触发执行,按实际运行时长计费,无需管理虚拟机。 适合短任务、事件驱动、低频定时作业(配合 EventBridge Scheduler)、轻量 API(API Gateway)、消息消费(SQS / SNS)等场景。不适合长时间常驻进程或持续高 CPU 负载。 核心概念 概念 说明 Function 一个部署单元:代码 + 运行时 + 配置(内存、超时、环境变量) Handler 入口函数名,格式 文件名.函数名,如 lambda_function.handler Runtime 运行环境,如 python3.13、nodejs22.x Execution Role Lambda 扮演的 IAM Role,决定函数内能调用哪些 AWS API Event 触发时传入的 JSON 载荷(Scheduler、SNS、API Gateway 等格式不同) Context 运行时元数据(剩余超时时间、请求 ID 等) Resource-based policy 挂在函数上的策略,声明谁可以调用本函数(aws_lambda_permission) ARN 格式 函数 ARN 示例: arn:aws:lambda:ap-northeast-1:123456789012:function:enx-api-backup 版本与别名会追加后缀(:1、:prod);日常在 Scheduler、SNS 订阅里通常用未限定版本的函数 ARN。 权限模型(两层) Lambda 涉及两类 IAM,容易混淆: 类型 谁配置 解决什么问题 Execution Role 函数自身 role 字段 函数出站能做什么(写日志、调 SSM、读 S3) Resource policy aws_lambda_permission 等 谁可以调用这个函数(Scheduler、SNS、API Gateway) EventBridge Scheduler ──(resource policy: lambda:InvokeFunction)──► Lambda │ ▼ Execution Role (ssm:SendCommand, logs:PutLogEvents, …) │ ▼ EC2 / SSM / … Execution Role 信任策略 Principal 为 lambda.amazonaws.com(见 AWS IAM) 调用方(如 Scheduler)还需要自己的 Role 带 lambda:InvokeFunction;函数侧通常再加一条 aws_lambda_permission 限定 source_arn Handler 约定 以 Python 为例,入口签名固定为 handler(event, context): ...