我想知道如何访问在lambda函数中引发的自定义异常的原因。我需要在“步骤功能”工作流的末尾访问它,如下所示。
下图是执行失败的示例。在error-info
的输出中发现错误(Error
对象,带有其自己的Cause
和ParseTextractOutput
部分),但是我想知道如何在OutputNotFound
中访问它,如下所示。
ParseTextractOutput
的输出是
{
"event"...
"error-info": {
"Error": "OutputNotFoundException",
"Cause": "{\"errorMessage\": \"Contents of Textracted file: {...}}"
}
}
}
我想以某种方式在这些字段(步骤函数定义的字段)中访问此数据:
...
"States": {
"OutputNotFound": {
"Type": "Fail",
"Error": "<useful stuff here, like $.error-info.Error or something>",
"Cause": "<useful stuff here, like $.error-info.Cause or something>"
},
...
"ParseTextractOutput": {
"Type": "Task",
"Resource": "functionARN",
"Catch": [
{
"ErrorEquals": ["OutputNotFoundException"],
"ResultPath": "$.error-info",
"Next": "OutputNotFound"
}
],
"End": true
}
这是功能ParseTextractOutput
的相关代码。
class OutputNotFoundException(Exception):
pass
...
try:
blocks = data['Blocks']
except KeyError as e:
raise OutputNotFoundException('Contents of Textracted file: {}'.format(data))
对此有好运吗?我有同样的问题!