AWS Lambda通过Serverless部署后报not enough values to unpack错误如何修复
错误原因
Runtime.MalformedHandlerName错误由AWS Lambda Python运行时无法识别handler配置格式触发。
Python运行时要求handler使用不带.py后缀的文件名.入口函数名的格式,用英文点.作为分隔符。你当前配置的function.name/evaluate_conditions使用了斜杠/作为分隔符,运行时拆分分隔符后仅得到1个结果,不符合预期的「文件名、函数名」2个值的要求,因此抛出该错误。
修复步骤
- 修正handler配置的分隔符:将
function.name/evaluate_conditions中的斜杠替换为英文点。如果你的函数代码存放在function.name.py文件中,正确的handler配置为function.name.evaluate_conditions;如果文件名为function_name.py,则配置为function_name.evaluate_conditions。 - 如果你通过Serverless框架部署,直接修改
serverless.yml中的handler字段为上述正确格式,重新部署即可生效,无需手动在AWS控制台修改。 - 额外修正函数参数顺序:Python Lambda入口函数的参数顺序为
event在前、context在后,你当前代码定义的def evaluate_conditions(context, event):参数顺序颠倒,若不修正后续会出现参数取值错误,调整为def evaluate_conditions(event, context):即可。
内容的提问来源于stack exchange,提问作者Flo Flo
相关产品推荐
相关产品推荐

