Ale*_*sev 2 .net c# amazon-sqs amazon-web-services aws-lambda
我使用 AWS Lambda(.NET Core 2.1 环境)+ SQS 作为触发器
问题是我的 lambda 无法解析我的 SQS 消息。
将 Lambda 事件 JSON 负载转换为字符串时出错。必须引用 JSON 字符串,例如“Hello World”才能转换为字符串:解析值时遇到意外字符:{。路径 '',第 1 行,位置 1。:JsonSerializerException
这是我的处理程序的声明:
public async Task<string> FunctionHandler(DummyMessage message, ILambdaContext context)
Run Code Online (Sandbox Code Playgroud)
模型:
public class DummyMessage {
public string Label { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我尝试过的来自 AWS 控制台的 SQS 输入:{"Label":"qwerty"}, "{"Label":"qwerty"}", "{\"Label\":\"qwerty\"}",但发生了同样的错误。
你能帮忙解决这个问题吗?
传递 Json 时,请尝试来自 Newtonsoft.Json.Linq 的 JObject
FunctionHandler(JObject eventStr, ILambdaContext context)
Run Code Online (Sandbox Code Playgroud)
然后您可以反序列化响应,其中 SQSEvent 是从 Amazon.Lambda.SQSEvents SDK 库继承的。
var result = eventStr.ToObject<SQSEvent>();
Run Code Online (Sandbox Code Playgroud)