В AWS Lambda Exception Handle не добавлены пользовательские свойства - PullRequest
0 голосов
/ 11 июня 2018

Я создаю конечный автомат в AWS.В первом состоянии (лямбда), если выдается исключение, оно перехватывается и передается другой лямбде для обработки.При создании исключения я создал пользовательский класс, унаследованный от класса Exception и имеющий свойство bool.Свойство установлено, но когда результат получен, у него нет свойства.

public class CustomException : Exception
{
    private bool isReprocessed;
    public CustomException(String message) : base(message)
    { isReprocessed = true; }
}

Выход лямбды -

{
    "errorType" : "CustomException",

    "errorMessage": "Custom Exception thrown.",

    "stackTrace": [
        "at lambdaProcessingFromStepFunction.Function.FunctionHandler(Object input, ILambdaContext context)",
        "at lambda_method(Closure , Stream , Stream , ContextInfo )"
    ],
    "cause": {
        "errorType" : "CustomException",
        "errorMessage" : "Custom Exception thrown.",
        "stackTrace"   : [
          "at lambdaProcessingFromStepFunction.Function.FunctionHandler(Object input, ILambdaContext context)"
        ]
    }
}

1 Ответ

0 голосов
/ 11 июня 2018

В AWS есть слой, который форматирует все исключения при передаче между разными лямбдами или при переходе в cloudWatch.Как и в большинстве фреймворков, когда вы выкидываете ошибку, она разбирается в общий формат, если вы покидаете среду, в которой она была создана. Есть несколько опций, вы можете перехватить все исключения в самой лямбде, а затем сериализовать их для любого объекта, который выхочу.Или вы можете поместить дополнительную информацию в сообщение, а затем на другом конце проанализировать сообщение (представьте коды ошибок).

https://docs.aws.amazon.com/lambda/latest/dg/dotnet-exceptions.html

Другой вариант - если нетЕсть много разных случаев, вы можете просто иметь разные имена исключений.Итак, у вас есть одно исключение CustomException, а другое - CustomExceptionReprocessed, а затем на конечном компьютере вы можете привязать обработчики к определенным именам исключений.

...