使用Zappa部署Python AWS Lambda时无法更新配置报KeyError: 'PackageType'错误
问题根因
KeyError: 'PackageType'报错是因为旧版本Zappa未兼容AWS Lambda API返回字段变更:AWS侧对Lambda配置查询接口的返回规则做了调整后,旧版Zappa核心代码直接硬取PackageType字段,该字段在部分场景下缺失就会触发报错,和你的项目代码、requirements.txt原有配置无关。
修复方案
方案1:升级Zappa版本(优先使用)
升级到Zappa 0.56.1及以上官方版本,该版本已经内置了该问题的修复逻辑,执行升级命令:pip install --upgrade zappa==0.56.1
升级后重新运行部署流水线即可,无需修改其他配置。
方案2:手动打补丁(仅适用于无法升级Zappa版本的场景)
找到Zappa安装目录下的core.py文件,定位到报错提示的1408行附近代码:
if lambda_aws_config["PackageType"] != "Image":
修改为兼容字段不存在的写法:
if lambda_aws_config.get("PackageType", "Zip") != "Image":
保存修改后重新执行部署即可生效。
临时规避方案
如果是流水线环境中boto3被自动升级到高版本导致的该问题,可以在requirements.txt中固定boto3版本到1.26.0以下:boto3==1.25.13
重新安装依赖后再执行部署即可临时规避。
内容的提问来源于stack exchange,提问作者dinesh.rajbhar
相关产品推荐
相关产品推荐

