无服务器架构(Serverless):AWS Lambda 实战
·
AWS Lambda 无服务器架构实战代码
以下是一个基于AWS Lambda的无服务器架构实战代码示例,实现一个简单的HTTP API端点,用于处理用户请求并返回响应。
代码示例:处理HTTP请求的Lambda函数
import json
def lambda_handler(event, context):
# 解析HTTP请求中的查询参数
query_params = event.get('queryStringParameters', {})
name = query_params.get('name', 'World')
# 构建响应
response = {
'statusCode': 200,
'headers': {
'Content-Type': 'application/json',
},
'body': json.dumps({
'message': f'Hello, {name}!',
}),
}
return response
部署Lambda函数的步骤
-
创建Lambda函数
- 登录AWS控制台,导航到Lambda服务。
- 点击“创建函数”,选择“从头开始编写”。
- 输入函数名称,选择Python运行时(如Python 3.9)。
- 点击“创建函数”完成创建。
-
配置API网关触发器
- 在Lambda函数页面,点击“添加触发器”。
- 选择“API Gateway”作为触发器类型。
- 配置API Gateway(如REST API或HTTP API)。
- 设置安全选项(如开放或私有)。
-
测试Lambda函数
- 在Lambda控制台,点击“测试”按钮。
- 创建测试事件,模拟HTTP请求:
{ "queryStringParameters": { "name": "Alice" } } - 执行测试,验证响应是否正确。
-
调用API端点
- 在API Gateway控制台,找到部署的API端点URL。
- 使用浏览器或工具(如curl)访问端点:
curl "https://your-api-id.execute-api.region.amazonaws.com/default/your-lambda-function?name=Alice"
扩展功能:集成DynamoDB
如果需要存储数据,可以集成AWS DynamoDB:
import boto3
from boto3.dynamodb.conditions import Key
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('YourTableName')
def lambda_handler(event, context):
# 插入数据
table.put_item(Item={
'id': '123',
'name': event['queryStringParameters']['name']
})
# 查询数据
response = table.query(
KeyConditionExpression=Key('id').eq('123')
)
return {
'statusCode': 200,
'body': json.dumps(response['Items'])
}
注意事项
- 确保Lambda函数的执行角色具有访问DynamoDB的权限。
- 在
boto3中无需显式配置AWS凭证,Lambda会自动继承执行角色的权限。 - 为生产环境配置适当的错误处理和日志记录(如CloudWatch Logs)。
更多推荐




所有评论(0)