AWS Лямбда (. NET) + SQS: Ошибка преобразования Lambda-события JSON полезной нагрузки в строку - PullRequest
0 голосов
/ 18 февраля 2020

Я использую AWS Лямбда (. NET Среда Core 2.1) + SQS в качестве триггера

Проблема в том, что моя лямбда не может проанализировать мое сообщение SQS.

Ошибка преобразование лямбда-события JSON payload в строку. JSON строки должны быть заключены в кавычки, например, «Hello World», чтобы быть преобразованными в строку: неожиданный символ, обнаруженный при анализе значения: {. Путь '', строка 1, позиция 1 .: JsonSerializerException

Вот объявление моего обработчика:

public async Task<string> FunctionHandler(DummyMessage message, ILambdaContext context)

Модель:

public class DummyMessage {
  public string Label { get; set; }
}

SQS input с AWS Консоль, которую я пробовал: {"Label":"qwerty"}, "{"Label":"qwerty"}", "{\"Label\":\"qwerty\"}", но возникает та же ошибка.

Не могли бы вы помочь с этой проблемой?

1 Ответ

1 голос
/ 18 февраля 2020

При передаче Json попробуйте JObject от Newtonsoft. Json .Linq

FunctionHandler(JObject eventStr, ILambdaContext context)

, а затем вы можете десерализовать ответ, когда SQSEvent унаследован от Amazon.Lambda.SQSEvents SDK Library.

var result = eventStr.ToObject<SQSEvent>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...