ASP.NET Core Web API Lambda не может обработать запрос, отправленный из очереди SQSC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 ASP.NET Core Web API Lambda не может обработать запрос, отправленный из очереди SQS

Сообщение Anonymous »

Я создал проект веб-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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»