当流程未按预期工作时,我希望能够返回异常作为我的 lambda 响应,因此我正在执行类似的操作
def handler(event, context):
try:
project = event['environment']
except Exception as ex:
return {
'statusCode': 500,
'body': json.dumps(ex)
}
但是这会过早失败,如下所示
{"errorMessage": "Object of type KeyError is not JSON serializable", "errorType": "TypeError", "stackTrace": [" File \"/var/task/hr-management.py\", line 23, in handler\n 'body': json.dumps(ex)\n", " File \"/var/lang/lib/python3.8/json/__init__.py\", line 231, in dumps\n return _default_encoder.encode(obj)\n", " File \"/var/lang/lib/python3.8/json/encoder.py\", line 199, in encode\n chunks = self.iterencode(o, _one_shot=True)\n", " File \"/var/lang/lib/python3.8/json/encoder.py\", line 257, in iterencode\n return _iterencode(o, 0)\n", " File \"/var/lang/lib/python3.8/json/encoder.py\", line 179, in default\n raise TypeError(f'Object of type {o.__class__.__name__} '\n"]}%
我也尝试过:
def handler(event, context):
try:
project = event['environment']
except Exception as ex:
return {
'statusCode': 500,
'body': ex
}
有什么建议吗?
最佳答案
如果您只是以字符串形式查找异常,请使用:
def handler(event, context):
try:
project = event['environment']
except Exception as ex:
return {
'statusCode': 500,
'body': json.dumps(ex.__repr__())
}
___repr__()
返回一个字符串,用于格式化类,例如 print(class_example),它是一个可读性工具。
关于python - 返回非 json 对象作为 lambda 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67557170/