/// <summary> /// Sends a record to the specific AWS Kinesis stream. /// NOTE: The message object is not checked for PII data, so the caller must check for PII requirements if necessary. /// </summary> /// <param name="kinesisConfig">Kinesis stream information</param> /// <param name="message"></param> public static void PutRecord(KinesisConfig kinesisConfig, object message) { using (var kinesisService = new KinesisService(kinesisConfig, null)) { kinesisService.PutRecordInternal(message); } }
public KinesisService(KinesisConfig kinesisConfig, UserDataFilterService filterService) { this.StreamName = kinesisConfig?.StreamName ?? throw new ArgumentNullException(nameof(kinesisConfig)); this.filterService = filterService; if (!String.IsNullOrEmpty(kinesisConfig.Arn)) { AssumeRoleAWSCredentials credentials = new AssumeRoleAWSCredentials(FallbackCredentialsFactory.GetCredentials(), kinesisConfig.Arn, kinesisConfig.StsRoleSessionName, new AssumeRoleAWSCredentialsOptions { DurationSeconds = ChatConfiguration.StsCredentialExpiration }); kinesisClient = new AmazonKinesisClient(credentials); } else { kinesisClient = new AmazonKinesisClient(); } #if !XRAY2 string whitelistPath = System.Web.Hosting.HostingEnvironment.MapPath("/AWSWhitelist.json"); var tracer = new Amazon.XRay.Recorder.Handlers.AwsSdk.AWSSdkTracingHandler(AWSXRayRecorder.Instance, whitelistPath); tracer.AddEventHandler(kinesis); #endif }
public HttpKinesisLogger(KinesisConfig cfg) { _cfg = cfg; _kinesisLogger = new KinesisLogger(cfg); }