lambda by itsmostafa/aws-agent-skills
npx skills add https://github.com/itsmostafa/aws-agent-skills --skill lambdaAWS Lambda 无需预置服务器即可运行代码。您只需为消耗的计算时间付费。Lambda 能够自动扩展,从每天几个请求扩展到每秒数千个请求。
您的代码与配置打包在一起。包括运行时、处理程序、内存、超时和 IAM 角色。
| 类型 | 描述 | 用例 |
|---|---|---|
| 同步 | 调用者等待响应 | API Gateway,直接调用 |
| 异步 | 触发即忘 | S3,SNS,EventBridge |
| 基于轮询 | Lambda 轮询源 | SQS,Kinesis,DynamoDB Streams |
Lambda 创建执行环境来运行您的函数。组件包括:
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
可重用的库、依赖项或自定义运行时包(每个函数最多 5 个)。
AWS CLI:
# 创建部署包
zip function.zip lambda_function.py
# 创建函数
aws lambda create-function \
--function-name MyFunction \
--runtime python3.12 \
--role arn:aws:iam::123456789012:role/lambda-role \
--handler lambda_function.handler \
--zip-file fileb://function.zip \
--timeout 30 \
--memory-size 256
# 更新函数代码
aws lambda update-function-code \
--function-name MyFunction \
--zip-file fileb://function.zip
boto3:
import boto3
import zipfile
import io
lambda_client = boto3.client('lambda')
# 在内存中创建 zip
zip_buffer = io.BytesIO()
with zipfile.ZipFile(zip_buffer, 'w') as zf:
zf.writestr('lambda_function.py', '''
def handler(event, context):
return {"statusCode": 200, "body": "Hello"}
''')
zip_buffer.seek(0)
# 创建函数
lambda_client.create_function(
FunctionName='MyFunction',
Runtime='python3.12',
Role='arn:aws:iam::123456789012:role/lambda-role',
Handler='lambda_function.handler',
Code={'ZipFile': zip_buffer.read()},
Timeout=30,
MemorySize=256
)
# 为 S3 添加调用 Lambda 的权限
aws lambda add-permission \
--function-name MyFunction \
--statement-id s3-trigger \
--action lambda:InvokeFunction \
--principal s3.amazonaws.com \
--source-arn arn:aws:s3:::my-bucket \
--source-account 123456789012
# 配置 S3 通知(参见 S3 技能)
aws lambda create-event-source-mapping \
--function-name MyFunction \
--event-source-arn arn:aws:sqs:us-east-1:123456789012:my-queue \
--batch-size 10 \
--maximum-batching-window-in-seconds 5
aws lambda update-function-configuration \
--function-name MyFunction \
--environment "Variables={DB_HOST=mydb.cluster-xyz.us-east-1.rds.amazonaws.com,LOG_LEVEL=INFO}"
# 创建层
zip -r layer.zip python/
aws lambda publish-layer-version \
--layer-name my-dependencies \
--compatible-runtimes python3.12 \
--zip-file fileb://layer.zip
# 附加到函数
aws lambda update-function-configuration \
--function-name MyFunction \
--layers arn:aws:lambda:us-east-1:123456789012:layer:my-dependencies:1
# 同步调用
aws lambda invoke \
--function-name MyFunction \
--payload '{"key": "value"}' \
response.json
# 异步调用
aws lambda invoke \
--function-name MyFunction \
--invocation-type Event \
--payload '{"key": "value"}' \
response.json
| 命令 | 描述 |
|---|---|
aws lambda create-function | 创建新函数 |
aws lambda update-function-code | 更新函数代码 |
aws lambda update-function-configuration | 更新设置 |
aws lambda delete-function | 删除函数 |
aws lambda list-functions | 列出所有函数 |
aws lambda get-function | 获取函数详细信息 |
| 命令 | 描述 |
|---|---|
aws lambda invoke | 调用函数 |
aws lambda invoke-async | 异步调用(已弃用) |
| 命令 | 描述 |
|---|---|
aws lambda create-event-source-mapping | 添加事件源 |
aws lambda list-event-source-mappings | 列出映射 |
aws lambda update-event-source-mapping | 更新映射 |
aws lambda delete-event-source-mapping | 移除映射 |
| 命令 | 描述 |
|---|---|
aws lambda add-permission | 添加基于资源的策略 |
aws lambda remove-permission | 移除权限 |
aws lambda get-policy | 查看资源策略 |
合理调整内存大小 :更多内存 = 更多 CPU = 更快的执行速度
最小化冷启动 :保持函数热状态,使用预置并发
优化包大小 :较小的包部署更快
对共享依赖项使用层
在处理器外部初始化 :在多次调用间重用连接
import boto3 dynamodb = boto3.resource('dynamodb') table = dynamodb.Table('MyTable')
def handler(event, context): # 重用现有连接 return table.get_item(Key={'id': event['id']})
症状: Task timed out after X seconds
原因:
调试:
# 检查函数配置
aws lambda get-function-configuration \
--function-name MyFunction \
--query "Timeout"
# 增加超时时间
aws lambda update-function-configuration \
--function-name MyFunction \
--timeout 60
症状: 函数因内存错误而崩溃
修复:
aws lambda update-function-configuration \
--function-name MyFunction \
--memory-size 512
原因:
解决方案:
使用预置并发
减小包大小
对依赖项使用层
考虑使用 Graviton2(ARM)
aws lambda put-provisioned-concurrency-config
--function-name MyFunction
--qualifier LIVE
--provisioned-concurrent-executions 5
症状: AccessDeniedException
调试:
# 检查执行角色
aws lambda get-function-configuration \
--function-name MyFunction \
--query "Role"
# 检查角色策略
aws iam list-attached-role-policies \
--role-name lambda-role
症状: 无法访问互联网或 AWS 服务
原因:
解决方案:
每周安装数
85
仓库
GitHub 星标数
1.0K
首次出现
2026年1月22日
安全审计
安装于
opencode75
codex74
gemini-cli73
cursor65
github-copilot64
claude-code63
AWS Lambda runs code without provisioning servers. You pay only for compute time consumed. Lambda automatically scales from a few requests per day to thousands per second.
Your code packaged with configuration. Includes runtime, handler, memory, timeout, and IAM role.
| Type | Description | Use Case |
|---|---|---|
| Synchronous | Caller waits for response | API Gateway, direct invoke |
| Asynchronous | Fire and forget | S3, SNS, EventBridge |
| Poll-based | Lambda polls source | SQS, Kinesis, DynamoDB Streams |
Lambda creates execution environments to run your function. Components:
Reusable packages of libraries, dependencies, or custom runtimes (up to 5 per function).
AWS CLI:
# Create deployment package
zip function.zip lambda_function.py
# Create function
aws lambda create-function \
--function-name MyFunction \
--runtime python3.12 \
--role arn:aws:iam::123456789012:role/lambda-role \
--handler lambda_function.handler \
--zip-file fileb://function.zip \
--timeout 30 \
--memory-size 256
# Update function code
aws lambda update-function-code \
--function-name MyFunction \
--zip-file fileb://function.zip
boto3:
import boto3
import zipfile
import io
lambda_client = boto3.client('lambda')
# Create zip in memory
zip_buffer = io.BytesIO()
with zipfile.ZipFile(zip_buffer, 'w') as zf:
zf.writestr('lambda_function.py', '''
def handler(event, context):
return {"statusCode": 200, "body": "Hello"}
''')
zip_buffer.seek(0)
# Create function
lambda_client.create_function(
FunctionName='MyFunction',
Runtime='python3.12',
Role='arn:aws:iam::123456789012:role/lambda-role',
Handler='lambda_function.handler',
Code={'ZipFile': zip_buffer.read()},
Timeout=30,
MemorySize=256
)
# Add permission for S3 to invoke Lambda
aws lambda add-permission \
--function-name MyFunction \
--statement-id s3-trigger \
--action lambda:InvokeFunction \
--principal s3.amazonaws.com \
--source-arn arn:aws:s3:::my-bucket \
--source-account 123456789012
# Configure S3 notification (see S3 skill)
aws lambda create-event-source-mapping \
--function-name MyFunction \
--event-source-arn arn:aws:sqs:us-east-1:123456789012:my-queue \
--batch-size 10 \
--maximum-batching-window-in-seconds 5
aws lambda update-function-configuration \
--function-name MyFunction \
--environment "Variables={DB_HOST=mydb.cluster-xyz.us-east-1.rds.amazonaws.com,LOG_LEVEL=INFO}"
# Create layer
zip -r layer.zip python/
aws lambda publish-layer-version \
--layer-name my-dependencies \
--compatible-runtimes python3.12 \
--zip-file fileb://layer.zip
# Attach to function
aws lambda update-function-configuration \
--function-name MyFunction \
--layers arn:aws:lambda:us-east-1:123456789012:layer:my-dependencies:1
# Synchronous invoke
aws lambda invoke \
--function-name MyFunction \
--payload '{"key": "value"}' \
response.json
# Asynchronous invoke
aws lambda invoke \
--function-name MyFunction \
--invocation-type Event \
--payload '{"key": "value"}' \
response.json
| Command | Description |
|---|---|
aws lambda create-function | Create new function |
aws lambda update-function-code | Update function code |
aws lambda update-function-configuration | Update settings |
aws lambda delete-function | Delete function |
aws lambda list-functions | List all functions |
aws lambda get-function |
| Command | Description |
|---|---|
aws lambda invoke | Invoke function |
aws lambda invoke-async | Async invoke (deprecated) |
| Command | Description |
|---|---|
aws lambda create-event-source-mapping | Add event source |
aws lambda list-event-source-mappings | List mappings |
aws lambda update-event-source-mapping | Update mapping |
aws lambda delete-event-source-mapping | Remove mapping |
| Command | Description |
|---|---|
aws lambda add-permission | Add resource-based policy |
aws lambda remove-permission | Remove permission |
aws lambda get-policy | View resource policy |
Right-size memory : More memory = more CPU = faster execution
Minimize cold starts : Keep functions warm, use Provisioned Concurrency
Optimize package size : Smaller packages deploy faster
Use layers for shared dependencies
Initialize outside handler : Reuse connections across invocations
import boto3 dynamodb = boto3.resource('dynamodb') table = dynamodb.Table('MyTable')
def handler(event, context): # Reuses existing connection return table.get_item(Key={'id': event['id']})
Symptom: Task timed out after X seconds
Causes:
Debug:
# Check function configuration
aws lambda get-function-configuration \
--function-name MyFunction \
--query "Timeout"
# Increase timeout
aws lambda update-function-configuration \
--function-name MyFunction \
--timeout 60
Symptom: Function crashes with memory error
Fix:
aws lambda update-function-configuration \
--function-name MyFunction \
--memory-size 512
Causes:
Solutions:
Use Provisioned Concurrency
Reduce package size
Use layers for dependencies
Consider Graviton2 (ARM)
aws lambda put-provisioned-concurrency-config
--function-name MyFunction
--qualifier LIVE
--provisioned-concurrent-executions 5
Symptom: AccessDeniedException
Debug:
# Check execution role
aws lambda get-function-configuration \
--function-name MyFunction \
--query "Role"
# Check role policies
aws iam list-attached-role-policies \
--role-name lambda-role
Symptom: Cannot reach internet or AWS services
Causes:
Solutions:
Weekly Installs
85
Repository
GitHub Stars
1.0K
First Seen
Jan 22, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykWarn
Installed on
opencode75
codex74
gemini-cli73
cursor65
github-copilot64
claude-code63
ULTRAQA 自主质量保证循环工具:自动化测试、构建、代码规范检查与修复
218 周安装
Vuetify0 无头组件库 - Vue 3 组合式函数与无样式UI构建块
219 周安装
AWS Serverless 开发指南:Lambda 函数与 API Gateway 集成模式最佳实践
216 周安装
Simplify代码简化工具 - 提升代码清晰度、一致性和可维护性的AI助手
222 周安装
GitHub CLI (gh) 使用指南:高效管理仓库、PR、议题与API调用
212 周安装
Cheerio HTML解析教程:Node.js网页抓取与DOM操作指南
214 周安装
| Get function details |