将 AWS Lambda 项目从 .NET 6 升级到 .NET 8 后反序列化事件时出错

问题描述 投票:0回答:1

我正在尝试升级旧的 AWS Lambda ASP.NET Core WebApi 项目,但在 AWS 上运行时失败。

该项目曾经使用包含以下行的

LocalEntryPoint.cs
文件:

var lambdaEntry = new LambdaEntryPoint();
var functionHandler = lambdaEntry.FunctionHandlerAsync;
LambdaBootstrapBuilder.Create<APIGatewayProxyRequest>(functionHandler, new DefaultLambdaJsonSerializer(x =>
    {
        x.PropertyNameCaseInsensitive = true;
        x.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull;
    }))
.Build()
.RunAsync().Wait();

这个方法似乎不再起作用了,我将其替换为包含

Program.cs file
builder.Services.AddAWSLambdaHosting(LambdaEventSource.ApplicationLoadBalancer);

然而,当在 AWS 上运行该项目时,我在每个事件中都会遇到此错误:

Amazon.Lambda.Serialization.SystemTextJson.JsonSerializerException:将 Lambda 事件 JSON 负载转换为 Amazon.Lambda.ApplicationLoadBalancerEvents.ApplicationLoadBalancerRequest 类型时出错:反序列化没有无参数构造函数、单一参数化构造函数或用“JsonConstructorAttribute”注释的参数化构造函数的类型不支持。输入“Amazon.Lambda.ApplicationLoadBalancerEvents.ApplicationLoadBalancerRequest”。

据我了解,这些事件被锁定在 AWS Nuget 库后面,因此我无法编辑它们。

asp.net .net-core aws-lambda
1个回答
0
投票

当我发布这篇文章时,我发现出了什么问题。如果有人遇到问题,请将答案留在这里:

我们的构建管道仍在使用 .net 6。将其升级到 .net 8 后,它现在可以工作了

© www.soinside.com 2019 - 2024. All rights reserved.