如何查询AWS Lambda指定Python运行时包含的模块及版本?
问题解决与方案
关于HTTPResponse object has no attribute json错误
urllib3的HTTPResponse.json()方法是在v2.0.0版本才新增的特性,AWS Lambda Python 3.12运行时预装的urllib3版本低于此,因此没有该方法。你改用json.loads(response.data)的写法是完全兼容旧版本的正确方案,无需额外打包依赖。
查询AWS Lambda Python运行时预装模块及版本的方法
1. 官方文档
AWS官方会在Lambda运行时的详细文档中列出对应Python版本预装的所有库及其版本号,直接查看Python 3.12对应的Lambda运行时说明页,就能获取最权威的信息。
2. 编写Lambda函数直接检测
你可以快速部署一个简单的Lambda函数,输出当前运行环境中所有已安装模块的版本:
import pkg_resources import json def lambda_handler(event, context): installed_modules = {pkg.key: pkg.version for pkg in pkg_resources.working_set} return { 'statusCode': 200, 'body': json.dumps(installed_modules, indent=2) }
如果只需要查询特定模块(比如urllib3),可以用更精简的代码:
import urllib3 import json def lambda_handler(event, context): return { 'statusCode': 200, 'body': json.dumps({"urllib3_version": urllib3.__version__}, indent=2) }
执行该函数后,就能在返回结果中看到目标模块的版本信息。
3. 社区维护清单
部分社区会整理Lambda运行时的预装依赖清单,但这类资源可能存在时效性问题,建议优先以官方文档和实际运行检测的结果为准。
内容的提问来源于stack exchange,提问作者Mihau
相关产品推荐
相关产品推荐

