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函数的步骤
  1. 创建Lambda函数

    • 登录AWS控制台,导航到Lambda服务。
    • 点击“创建函数”,选择“从头开始编写”。
    • 输入函数名称,选择Python运行时(如Python 3.9)。
    • 点击“创建函数”完成创建。
  2. 配置API网关触发器

    • 在Lambda函数页面,点击“添加触发器”。
    • 选择“API Gateway”作为触发器类型。
    • 配置API Gateway(如REST API或HTTP API)。
    • 设置安全选项(如开放或私有)。
  3. 测试Lambda函数

    • 在Lambda控制台,点击“测试”按钮。
    • 创建测试事件,模拟HTTP请求:
      {
        "queryStringParameters": {
          "name": "Alice"
        }
      }
      

    • 执行测试,验证响应是否正确。
  4. 调用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)。
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐