protected async Task InvokeAsync() { var sqsClient = AwsClientsSingletonsProvider.GetSqsClient(); var queueService = new QueueService(sqsClient); await queueService.AddMessageAsync(new ItemMessage(Guid.NewGuid()), GetQueueUrl()); }
private static S3Repository GetS3Repository() { var s3Client = AwsClientsSingletonsProvider.GetS3Client(); var s3Config = ConfigurationReader.GetS3Config(); return(new S3Repository(s3Client, s3Config)); }
protected override async Task HandleAsync(AddItemLambdaRequest lambdaRequest) { var newItem = lambdaRequest.ToNewItem(); var s3Client = AwsClientsSingletonsProvider.GetS3Client(); var s3Config = ConfigurationReader.GetS3Config(); var s3Repository = new S3Repository(s3Client, s3Config); await s3Repository.PutNewItemAsync(newItem); Logger.Log("New item saved", "INFO"); var sqsClient = AwsClientsSingletonsProvider.GetSqsClient(); var queueService = new QueueService(sqsClient, ConfigurationReader.GetSqsConfig()); await queueService.AddMessageAsync(new ItemMessage(newItem.Id)); Logger.Log("New item added event sent", "INFO"); }
protected override async Task HandleAsync(SQSEvent sqsEvent) { var itemMessage = ExtractItemMessage(sqsEvent, LambdaContext, XRayTracing); var s3Repository = GetS3Repository(); var item = await s3Repository.GetNewItemAsync(itemMessage.ItemId); var doneItem = item.Finish(DateTime.UtcNow); Logger.Log("New item finished", "INFO"); await s3Repository.PutDoneItemAsync(doneItem); Logger.Log("Done item saved", "INFO"); await AwsClientsSingletonsProvider.GetLambdaClient() .InvokeAsync( new InvokeRequest { InvocationType = InvocationType.Event, FunctionName = ConfigurationReader.GetNotifyLambdaName(), Payload = JsonSerializer.Serialize(new AddItemLambdaRequest("test connection")) } ); }