是否存在受维护的AWS Lambda HTTP请求处理函数mypy类型?
AWS/第三方维护的Lambda HTTP请求事件与上下文的Mypy类型定义
可用的维护类型包
目前有一个被广泛使用且维护活跃的第三方包 types-aws-lambda,它提供了Lambda函数各种事件源(包括Lambda URL、API Gateway HTTP/REST API)的类型定义,同时也包含Lambda上下文的类型。这个包并非AWS官方维护,但社区活跃度高,会跟随AWS的事件结构更新同步迭代。
安装与使用步骤
安装包
执行以下命令安装类型包:pip install types-aws-lambda类型注解示例
根据你的事件源类型(Lambda URL或API Gateway)选择对应的事件类型:- 对于Lambda URL或API Gateway HTTP API v2请求,使用
APIGatewayV2HTTPRequestEvent - 对于API Gateway REST API请求,使用
APIGatewayProxyRequestEvent - 上下文参数统一使用
LambdaContext
以下是适配Lambda URL的注解示例(假设
first_name和last_name来自请求体的JSON数据):from aws_lambda_typing.events import APIGatewayV2HTTPRequestEvent from aws_lambda_typing.context import LambdaContext import json def lambda_handler(event: APIGatewayV2HTTPRequestEvent, context: LambdaContext): # 解析请求体中的JSON数据 body = json.loads(event.get("body", "{}")) message = 'Hello {} {}!'.format(body.get("first_name"), body.get("last_name")) return { 'statusCode': 200, 'body': json.dumps({'message': message}) }如果你的示例中
first_name直接来自事件顶层(这种情况更常见于自定义事件而非标准HTTP请求),但针对标准HTTP事件结构,上述示例更符合实际场景。- 对于Lambda URL或API Gateway HTTP API v2请求,使用
注意事项
- 该包涵盖了Lambda所有主流事件源的类型定义,无需自行编写类型
- 类型定义严格匹配AWS官方的事件结构文档,确保类型检查的准确性
- 包会定期更新,以适配AWS对事件结构的调整
内容的提问来源于stack exchange,提问作者Croad Langshan
相关产品推荐
相关产品推荐

