В AWS Lambda Exception Handle не добавлены пользовательские свойства

Я создаю конечный автомат в 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 ответ

Решение

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

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

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

Другие вопросы по тегам