public Status ProcessRequest(ResolverRequest request) { Status status = new Status(); status.Id = request.Id; status.ActionId = request.ActionId; try { String cueId = request.CueId; Config config = JsonTools.Convert <Config>(request.Signal.Cues[cueId].Resolver.Config); LambdaArn arn = new LambdaArn(config.Arn); RegionEndpoint region = RegionEndpoint.GetBySystemName(System.Environment.GetEnvironmentVariable("AWS_REGION")); if (!String.IsNullOrEmpty(arn.Region)) { region = RegionEndpoint.GetBySystemName(arn.Region); } AmazonLambdaClient client = new AmazonLambdaClient(region); // Set Region InvokeResponse response = AWSUtilities.CallLambdaMethod(client, arn.Arn, JsonTools.Serialize(request)); status.NewStatus = StatusType.SentToResolver; status.Message = $"Request Sent To Lambda Function [{arn.Name}]."; } catch (Exception e) { status.NewStatus = StatusType.Error; status.Message = e.Message; } return(status); }
public int Import <T>(List <object> records) { int imported = 0; foreach (object record in records) { T typedRecord = JsonTools.Convert <T>(record); Create <T>(typedRecord); imported++; } return(imported); }
public Status ProcessRequest(ResolverRequest request) { Status status = new Status(); status.Id = request.Id; status.ActionId = request.ActionId; try { String cueId = request.CueId; Config config = JsonTools.Convert <Config>(request.Signal.Cues[cueId].Resolver.Config); StepFunctionArn arn = new StepFunctionArn(config.Arn); RegionEndpoint region = RegionEndpoint.GetBySystemName(System.Environment.GetEnvironmentVariable("AWS_REGION")); if (!String.IsNullOrEmpty(arn.Region)) { region = RegionEndpoint.GetBySystemName(arn.Region); } AmazonStepFunctionsClient client = new AmazonStepFunctionsClient(region); // Set Region StartExecutionRequest exeRequest = new StartExecutionRequest { StateMachineArn = config.Arn, Input = JsonTools.Serialize(request) }; if (config.UseDefaultName == false) { if (String.IsNullOrWhiteSpace(config.ExecutionName)) { exeRequest.Name = $"syntinel-{request.Id}-{request.ActionId}"; } else { exeRequest.Name = config.ExecutionName; } } Task <StartExecutionResponse> t = client.StartExecutionAsync(exeRequest); t.Wait(30000); StartExecutionResponse response = t.Result; if (response.HttpStatusCode == System.Net.HttpStatusCode.OK) { StepFunctionArn eArn = new StepFunctionArn(response.ExecutionArn); status.NewStatus = StatusType.SentToResolver; status.Message = $"Request Sent To Step Function [{eArn.Name}]. Execution Name [{eArn.ExecutionName}]."; } else { status.NewStatus = StatusType.Error; status.Message = $"Error Sending To Step Function [{arn.Name}]. {response.HttpStatusCode}"; } } catch (Exception e) { status.NewStatus = StatusType.Error; status.Message = e.Message; } return(status); }