private async Task ProcessMessageAsync(SQSMessage message, ILambdaContext context) { context.Logger.LogLine($"Processed message: {message.Body}"); context.Logger.LogLine($"MessageAttributes: {JsonConvert.SerializeObject(message.MessageAttributes)}"); await Task.CompletedTask; }
public static User ToUserDomain(this SQSMessage sqsMessage) { if (sqsMessage != null) { return(JsonUtil.DeserializeContent <User>(sqsMessage.Body)); } return(null); }
public static Game ToGameDomain(this SQSMessage sqsMessage) { if (sqsMessage != null) { var Game = JsonUtil.DeserializeContent <Game>(sqsMessage.Body); Game.createdAt = DateTime.Now; return(Game); } return(null); }
private void Loop(CancellationToken token) { var manager = new ExternalCommandManager(); while (!token.IsCancellationRequested) { SQSMessage message = null; LogRecord logRecord = null; try { // Read a message from the queue using the ExternalCommands console application. message = manager.ReadMessage(this._profile, this._region, this._queueUrl); if (token.IsCancellationRequested) { return; } if (message == null) { // Since there are no messages, sleep a bit to wait for messages to come. Thread.Sleep(1000); continue; } // If a message was received execute the Lambda function within the test tool. var request = new ExecutionRequest { AWSProfile = this._profile, AWSRegion = this._region, Function = this._function, Payload = message.Body }; var response = this._runtime.ExecuteLambdaFunction(request); // Capture the results to send back to the client application. logRecord = new LogRecord { ProcessTime = DateTime.Now, ReceiptHandle = message.ReceiptHandle, Logs = response.Logs, Error = response.Error }; } catch (Exception e) { logRecord = new LogRecord { ProcessTime = DateTime.Now, Error = e.Message }; Thread.Sleep(1000); } if (logRecord != null && message != null) { logRecord.Event = message.Body; } lock (LOG_LOCK) { this._records.Add(logRecord); } } }