Я создал проект веб-API .NET 6 Core с контроллерами и преобразовал его в Lambda, добавив строку ниже в файл program.cs;
builder.Services.AddAWSLambdaHosting(LambdaEventSource.HttpApi);
Я развернул лямбда-версию AWS с помощью CLI. Вызов функции Lambda из POSTMAN работает нормально, но когда я отправляю сообщение через очередь SQS из консоли AWS, я получаю исключение ниже.
2023-02-01T00:38:06.905Z 04b8dce2-d17c-5125-88d3-80b167d862bd fail System.NullReferenceException: Object reference not set to an instance of an object.
at Amazon.Lambda.AspNetCoreServer.APIGatewayHttpApiV2ProxyFunction.MarshallRequest(InvokeFeatures features, APIGatewayHttpApiV2ProxyRequest apiGatewayRequest, ILambdaContext lambdaContext)
at Amazon.Lambda.AspNetCoreServer.AbstractAspNetCoreFunction`2.FunctionHandlerAsync(TREQUEST request, ILambdaContext lambdaContext)
at Amazon.Lambda.RuntimeSupport.HandlerWrapper.c__DisplayClass26_0`2.d.MoveNext()
--- End of stack trace from previous location ---
at Amazon.Lambda.RuntimeSupport.LambdaBootstrap.InvokeOnceAsync(CancellationToken cancellationToken)
вот сообщение, которое я отправил через POSTMAN и через очередь SQS:
{
"nameOnCard": "Samuel Ojo",
"cardNumber": "5256854950074930",
"cvv": "283",
"expiryMonth": "04",
"expiryYear": "27",
"postalCode": "101232",
"billingAddress": "Lagos",
"billingState": "Lagos",
"billingCity": "Lagos",
"billingCountry": "Nigeria",
"awsSettings": {
"topicArn": [redacted],
"targetArn": [redacted],
"snsTopicFilter": "VirtualCard"
}
}
Я также пробовал отправить сообщение шаблона SQS
{
"Records": [
{
"messageId": "19dd0b57-b21e-4ac1-bd88-01bbb068cb78",
"receiptHandle": "MessageReceiptHandle",
"body": "{\"sourceAccount\": \"0123445599\",\"destinationAccount\": \"1838494040\",\"bankCode\": \"011\",\"amount\": 200,\"awsSettings\": {\"topicArn\": [redacted],\"targetArn\": [redacted],\"snsTopicFilter\": \"FundTransfer\"}}",
"attributes": {
"ApproximateReceiveCount": "1",
"SentTimestamp": "1523232000000",
"SenderId": "123456789012",
"ApproximateFirstReceiveTimestamp": "1523232000001"
},
"messageAttributes": {},
"md5OfBody": "{{{md5_of_body}}}",
"eventSource": "aws:sqs",
"eventSourceARN": "arn:aws:sqs:us-east-1:123456789012:MyQueue",
"awsRegion": "us-east-1"
}
]
}
Вот содержимое файла program.cs;
using VirtualCardService.Middlewares;
using VirtualCardService.Services.Contracts;
var builder = WebApplication.CreateBuilder(args);
#region Add Services to Container
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddScoped();
builder.Services.AddAWSLambdaHosting(LambdaEventSource.HttpApi);
#endregion
var app = builder.Build();
#region Configure Pipeline
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseHttpsRedirection();
app.Use((context, next) =>
{
context.Request.EnableBuffering();
return next();
});
app.UseRouting();
app.UseMiddleware();
app.UseMiddleware();
app.UseAuthorization();
app.MapControllers();
#endregion
app.Run();
Подробнее здесь: https://stackoverflow.com/questions/753 ... -sqs-queue
ASP.NET Core Web API Lambda не может обработать запрос, отправленный из очереди SQS ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
ASP.NET Core Web API Lambda не может обработать запрос, отправленный из очереди SQS
Anonymous » » в форуме C# - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-
-
-
AWS Lambda (.NET) + SQS: ошибка преобразования полезных данных JSON события Lambda в строку
Anonymous » » в форуме C# - 0 Ответы
- 86 Просмотры
-
Последнее сообщение Anonymous
-