Я пытаюсь написать потребителя для обработки сообщений 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 или следует использовать только лямбда-функцию? Пожалуйста, сообщите.