Прочитать сообщение SQS через. Net Core Serverless Lambda API - PullRequest
1 голос
/ 17 июня 2020

Я пытаюсь написать потребителя для обработки сообщений SQS в AWS. Я прочитал много статей, и все они используют лямбда-функцию в качестве потребителя для чтения сообщения. После развертывания функции Lambda к этой функции добавляется триггер SQS. Это нормально.

Я изучаю возможность использования. Net Core Lambda Serverless API в качестве потребителя. Я опубликовал API клиента для получения сведений о клиенте из DynamoDb с помощью метода действия [HttpGet]. Я пытаюсь использовать этот API для вставки / обновления данных о клиентах в DynamoDb. Пример. Если внешняя система отправляет информацию о клиенте в SQS. Затем я хочу, чтобы этот бессерверный API прочитал сообщение и обновил DynamoDb.

Я добавил триггер SQS в бессерверный API, но сообщение не обрабатывается, я мог видеть, что сообщение SQS перемещается в «Сообщение в полете» и получение исключения ниже в лямбде.

Object reference not set to an instance of an object.: NullReferenceException
   at Amazon.Lambda.AspNetCoreServer.APIGatewayProxyFunction.MarshallRequest(InvokeFeatures features, APIGatewayProxyRequest apiGatewayRequest, ILambdaContext lambdaContext)
   at Amazon.Lambda.AspNetCoreServer.AbstractAspNetCoreFunction`2.FunctionHandlerAsync(TREQUEST request, ILambdaContext lambdaContext)
   at lambda_method(Closure , Stream , Stream , LambdaContextInternal )

Мой вопрос: можно ли использовать бессерверный API в качестве потребителя для SQS или следует использовать только лямбда-функцию? Пожалуйста, сообщите.

...