uso AWS Lambda (entorno .NET Core 2.1) + SQS como disparador
El problema es que mi lambda no puede analizar mi mensaje SQS.
Error al convertir la carga útil JSON del evento de Lambda en una cadena. Las cadenas JSON se deben citar, por ejemplo, "Hello World" para convertirlas en una cadena: Se encontró un carácter inesperado al analizar el valor: {. Ruta '', línea 1, posición 1.: JsonSerializerException
Aquí está la declaración de mi controlador:
public async Task<string> FunctionHandler(DummyMessage message, ILambdaContext context)Modelo:
public class DummyMessage { public string Label { get; set; } } Entrada de SQS de la consola de AWS que probé: {"Label":"qwerty"} , "{"Label":"qwerty"}" , "{\"Label\":\"qwerty\"}" , pero el mismo error ocurre.
¿Podría por favor ayudar con este problema?
Al pasar Json intente JObject de Newtonsoft.Json.Linq
FunctionHandler(JObject eventStr, ILambdaContext context)y luego puede Deseralizar la respuesta donde SQSEvent se hereda de Amazon.Lambda.SQSEvents SDK Library.
var result = eventStr.ToObject<SQSEvent>();Además, no olvide agregar/cambiar el serializador aws:
[assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.Json.JsonSerializer))] namespace AwsLambdaHandleTelegramWebhooks { public class Function { public APIGatewayProxyResponse FunctionHandler(JObject input,ILambdaContext context) {