public IEventSink CreateInstance(string sinkType, IPlugInContext context) { IConfiguration config = context.Configuration; ILogger logger = context.Logger; switch (sinkType.ToLower()) { case CLOUD_WATCH_LOG: return(new CloudWatchLogsSink(context, AWSUtilities.CreateAWSClient <AmazonCloudWatchLogsClient>(context))); case KINESIS_FIREHOSE: return(new KinesisFirehoseSink(context, AWSUtilities.CreateAWSClient <AmazonKinesisFirehoseClient>(context))); case KINESIS_STREAM: return(new KinesisStreamSink(context, AWSUtilities.CreateAWSClient <AmazonKinesisClient>(context))); case CLOUD_WATCH: return(new CloudWatchSink(60, context, AWSUtilities.CreateAWSClient <AmazonCloudWatchClient>(context))); case TELEMETRICS: #if DEBUG const int TELEMETRICS_DEFAULT_INTERVAL = 60; #else const int TELEMETRICS_DEFAULT_INTERVAL = 3600; #endif return(new TelemetricsSink(TELEMETRICS_DEFAULT_INTERVAL, context, TelemetricsClient.Default)); default: throw new NotImplementedException($"Sink type {sinkType} is not implemented by AWSEventSinkFactory."); } }
private static string ConfigVariableEvaluator(string variable) { var evaluated = Utility.ResolveVariable(variable); if (string.IsNullOrEmpty(evaluated)) { return(evaluated); } return(AWSUtilities.EvaluateAWSVariable(evaluated)); }
public IEventSink CreateInstance(string sinkType, IPlugInContext context) { IConfiguration config = context.Configuration; ILogger logger = context.Logger; switch (sinkType.ToLower()) { case CLOUD_WATCH_LOG: case CLOUD_WATCH_LOG_EMF: return(new CloudWatchLogsSink(context, AWSUtilities.CreateAWSClient <AmazonCloudWatchLogsClient>(context))); case KINESIS_FIREHOSE: var firehoseSink = new KinesisFirehoseSink(context, AWSUtilities.CreateAWSClient <AmazonKinesisFirehoseClient>(context)); string combineRecords = config["CombineRecords"]; if (!string.IsNullOrWhiteSpace(combineRecords) && bool.TryParse(combineRecords, out bool canCombineRecords)) { firehoseSink.CanCombineRecords = canCombineRecords; } return(firehoseSink); case KINESIS_STREAM: return(new KinesisStreamSink(context, AWSUtilities.CreateAWSClient <AmazonKinesisClient>(context))); case CLOUD_WATCH: return(new CloudWatchSink(60, context, AWSUtilities.CreateAWSClient <AmazonCloudWatchClient>(context))); case TELEMETRICS: #if DEBUG const int TELEMETRICS_DEFAULT_INTERVAL = 60; #else const int TELEMETRICS_DEFAULT_INTERVAL = 3600; #endif //If RedirectToSinkId is specified, we use TelemetryConnector. Otherwise, TelemtryClient string redirectToSinkId = config[ConfigConstants.REDIRECT_TO_SINK_ID]; ITelemetricsClient <HttpResponseMessage> telemetricsClient = null; if (string.IsNullOrWhiteSpace(redirectToSinkId)) { telemetricsClient = TelemetricsClient.Default; } else { telemetricsClient = new TelemetricsSinkConnector(context); context.ContextData[ConfigConstants.TELEMETRY_CONNECTOR] = telemetricsClient; //Make telemetricsClient available to caller } return(new TelemetricsSink(TELEMETRICS_DEFAULT_INTERVAL, context, telemetricsClient)); case FILE_SYSTEM: return(new FileSystemEventSink(context)); default: throw new NotImplementedException($"Sink type {sinkType} is not implemented by AWSEventSinkFactory."); } }
protected override string EvaluateVariable(string value) { string evaluated = base.EvaluateVariable(value); try { return(AWSUtilities.EvaluateAWSVariable(evaluated)); } catch (Exception ex) { _logger.LogError(ex.ToMinimized()); throw; } }
protected virtual string EvaluateVariable(string value) { var evaluated = Utility.ResolveVariable(value); if (string.IsNullOrEmpty(evaluated)) { return(evaluated); } try { return(AWSUtilities.EvaluateAWSVariable(evaluated)); } catch (Exception ex) { _logger?.LogError(ex.ToMinimized()); throw; } }
protected override string EvaluateVariable(string value) { string evaluated = base.EvaluateVariable(value); if (string.IsNullOrEmpty(evaluated)) { return(evaluated); } try { return(AWSUtilities.EvaluateAWSVariable(evaluated)); } catch (Exception ex) { _logger.LogError(ex.Message); throw; } }