Как получить доступ к информации об ошибках в Шаг функции из предыдущей функции в состоянии Catch - PullRequest
0 голосов
/ 21 мая 2019

Мне интересно, как получить доступ к причине моего пользовательского исключения, вызванного внутри моей лямбда-функции. Мне нужно получить к нему доступ в конце моего рабочего процесса Step Functions, как показано ниже.

Диаграмма ниже является примером неудачного выполнения. Ошибка (объект error-info с его собственными Error и Cause разделами) находится в выходных данных ParseTextractOutput, но мне интересно, как получить к нему доступ в 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 Code

Вот соответствующий код для функции ParseTextractOutput.

class OutputNotFoundException(Exception):
  pass

...

try:
  blocks = data['Blocks']
except KeyError as e:
  raise OutputNotFoundException('Contents of Textracted file: {}'.format(data))
...