Ejemplo n.º 1
0
 /// <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);
     }
 }
Ejemplo n.º 2
0
        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);
 }