如何从处于捕获状态的先前功能访问步进功能中的错误信息

问题描述 投票:2回答:1

我想知道如何访问在lambda函数中引发的自定义异常的原因。我需要在“步骤功能”工作流的末尾访问它,如下所示。

下图是执行失败的示例。在error-info的输出中发现错误(Error对象,带有其自己的CauseParseTextractOutput部分),但是我想知道如何在OutputNotFound中访问它,如下所示。

步骤功能图

enter image description here

输出

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
    }

Python代码

这是功能ParseTextractOutput的相关代码。

class OutputNotFoundException(Exception):
  pass

...

try:
  blocks = data['Blocks']
except KeyError as e:
  raise OutputNotFoundException('Contents of Textracted file: {}'.format(data))
python amazon-web-services aws-lambda state-machine aws-step-functions
1个回答
0
投票

对此有好运吗?我有同样的问题!

© www.soinside.com 2019 - 2024. All rights reserved.