コード例 #1
0
        static AmazonSQSTransportOptions GetTransportOptions(AmazonSQSTransportOptions options, AWSCredentials credentials, AmazonSQSConfig config)
        {
            options = options ?? new AmazonSQSTransportOptions();

            if (options.ClientFactory == null)
            {
                options.ClientFactory = GetClientFactory(credentials, config);
            }
            else
            {
                if (credentials != null || config != null)
                {
                    throw new RebusConfigurationException($"Could not configure SQS client, because a client factory was provided at the same time as either AWS credentials and/or SQS config. Please EITHER provide a factory, OR provide the necessary credentials and/or config, OR do not provide anything alltogether to fall back to EC2 roles");
                }
            }

            return(options);
        }
コード例 #2
0
        /// <summary>
        /// Configures Rebus to use Amazon Simple Queue Service as the message transport
        /// </summary>
        public static void UseAmazonSQSAsOneWayClient(this StandardConfigurer <ITransport> configurer, string accessKeyId, string secretAccessKey, RegionEndpoint regionEndpoint, AmazonSQSTransportOptions options = null)
        {
            var credentials = new BasicAWSCredentials(accessKeyId, secretAccessKey);
            var config      = new AmazonSQSConfig {
                RegionEndpoint = regionEndpoint
            };

            ConfigureOneWayClient(configurer, GetTransportOptions(options, credentials, config));
        }
コード例 #3
0
        /// <summary>
        /// Configures Rebus to use Amazon Simple Queue Service as the message transport
        /// </summary>
        public static void UseAmazonSQS(this StandardConfigurer <ITransport> configurer, string accessKeyId, string secretAccessKey, AmazonSQSConfig config, string inputQueueAddress, AmazonSQSTransportOptions options = null)
        {
            var credentials = new BasicAWSCredentials(accessKeyId, secretAccessKey);

            Configure(configurer, inputQueueAddress, GetTransportOptions(options, credentials, config));
        }
コード例 #4
0
 /// <summary>
 /// Configures Rebus to use Amazon Simple Queue Service as the message transport
 /// </summary>
 public static void UseAmazonSQS(this StandardConfigurer <ITransport> configurer, AWSCredentials credentials, AmazonSQSConfig config, string inputQueueAddress, AmazonSQSTransportOptions options = null)
 {
     Configure(configurer, inputQueueAddress, GetTransportOptions(options, credentials, config));
 }
コード例 #5
0
 /// <summary>
 /// Configures Rebus to use Amazon Simple Queue Service as the message transport
 /// </summary>
 public static void UseAmazonSQS(this StandardConfigurer <ITransport> configurer, string inputQueueAddress, AmazonSQSTransportOptions options = null)
 {
     Configure(configurer, inputQueueAddress, GetTransportOptions(options, null, null));
 }
コード例 #6
0
        static void ConfigureOneWayClient(StandardConfigurer <ITransport> configurer, AmazonSQSTransportOptions options)
        {
            if (configurer == null)
            {
                throw new ArgumentNullException(nameof(configurer));
            }
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            configurer.Register(c =>
            {
                var rebusLoggerFactory = c.Get <IRebusLoggerFactory>();
                var asyncTaskFactory   = c.Get <IAsyncTaskFactory>();

                return(new AmazonSqsTransport(null, rebusLoggerFactory, asyncTaskFactory, options));
            });

            OneWayClientBackdoor.ConfigureOneWayClient(configurer);

            if (options.UseNativeDeferredMessages)
            {
                configurer
                .OtherService <IPipeline>()
                .Decorate(p =>
                {
                    var pipeline = p.Get <IPipeline>();

                    return(new PipelineStepRemover(pipeline)
                           .RemoveIncomingStep(s => s.GetType() == typeof(HandleDeferredMessagesStep)));
                });

                configurer.OtherService <ITimeoutManager>()
                .Register(c => new DisabledTimeoutManager(), description: SqsTimeoutManagerText);
            }
        }
コード例 #7
0
        /// <summary>
        /// Configures Rebus to use Amazon Simple Queue Service as the message transport
        /// </summary>
        static void UseAmazonSqsAsOneWayClient(StandardConfigurer <ITransport> configurer, AWSCredentials credentials, AmazonSQSConfig amazonSqsConfig, AmazonSQSTransportOptions options = null)
        {
            configurer.Register(c =>
            {
                var rebusLoggerFactory = c.Get <IRebusLoggerFactory>();
                var asyncTaskFactory   = c.Get <IAsyncTaskFactory>();

                return(new AmazonSqsTransport(null, credentials, amazonSqsConfig, rebusLoggerFactory, asyncTaskFactory, options));
            });

            OneWayClientBackdoor.ConfigureOneWayClient(configurer);
        }
        /// <summary>
        /// Configures Rebus to use Amazon Simple Queue Service as the message transport
        /// </summary>
        public static void UseAmazonSQS(this StandardConfigurer <ITransport> configurer, string accessKeyId, string secretAccessKey, RegionEndpoint regionEndpoint, string inputQueueAddress, AmazonSQSTransportOptions options = null)
        {
            var config = new AmazonSQSConfig {
                RegionEndpoint = regionEndpoint
            };
            var credentials = new BasicAWSCredentials(accessKeyId, secretAccessKey);

            Configure(configurer, credentials, config, inputQueueAddress, options ?? new AmazonSQSTransportOptions());
        }
コード例 #9
0
 /// <summary>
 /// Configures Rebus to use Amazon Simple Queue Service as the message transport
 /// </summary>
 public static void UseAmazonSqsAsOneWayClient(this StandardConfigurer <ITransport> configurer, string accessKeyId, string secretAccessKey, RegionEndpoint regionEndpoint, AmazonSQSTransportOptions options = null)
 {
     UseAmazonSqsAsOneWayClient(configurer, accessKeyId, secretAccessKey, new AmazonSQSConfig {
         RegionEndpoint = regionEndpoint
     }, options);
 }
コード例 #10
0
 /// <summary>
 /// Configures Rebus to use Amazon Simple Queue Service as the message transport
 /// </summary>
 public static void UseAmazonSqsAsOneWayClient(this StandardConfigurer <ITransport> configurer, string accessKeyId, string secretAccessKey, AmazonSQSConfig amazonSqsConfig, AmazonSQSTransportOptions options = null)
 {
     UseAmazonSqsAsOneWayClient(configurer, new BasicAWSCredentials(accessKeyId, secretAccessKey), amazonSqsConfig, options);
 }
コード例 #11
0
 /// <summary>
 /// Configures Rebus to use Amazon Simple Queue Service as the message transport
 /// </summary>
 public static void UseAmazonSqs(this StandardConfigurer <ITransport> configurer, string accessKeyId, string secretAccessKey, AmazonSQSConfig config, string inputQueueAddress, AmazonSQSTransportOptions options = null)
 {
     UseAmazonSqs(configurer, new BasicAWSCredentials(accessKeyId, secretAccessKey), config, inputQueueAddress, options);
 }
コード例 #12
0
 /// <summary>
 /// Configures Rebus to use Amazon Simple Queue Service as the message transport
 /// </summary>
 public static void UseAmazonSqs(this StandardConfigurer <ITransport> configurer, string accessKeyId, string secretAccessKey, RegionEndpoint reguEndpoint, string inputQueueAddress, AmazonSQSTransportOptions options = null)
 {
     UseAmazonSqs(configurer, accessKeyId, secretAccessKey, new AmazonSQSConfig {
         RegionEndpoint = reguEndpoint
     }, inputQueueAddress, options);
 }
コード例 #13
0
        /// <summary>
        /// Configures Rebus to use Amazon Simple Queue Service as the message transport
        /// </summary>
        public static void UseAmazonSqs(this StandardConfigurer <ITransport> configurer, AWSCredentials credentials, AmazonSQSConfig config, string inputQueueAddress, AmazonSQSTransportOptions options = null)
        {
            configurer.Register(c =>
            {
                var rebusLoggerFactory = c.Get <IRebusLoggerFactory>();
                var asyncTaskFactory   = c.Get <IAsyncTaskFactory>();

                return(new AmazonSqsTransport(inputQueueAddress, credentials, config, rebusLoggerFactory, asyncTaskFactory, options));
            });

            configurer
            .OtherService <IPipeline>()
            .Decorate(p =>
            {
                var pipeline = p.Get <IPipeline>();

                return(new PipelineStepRemover(pipeline)
                       .RemoveIncomingStep(s => s.GetType() == typeof(HandleDeferredMessagesStep)));
            });

            configurer.OtherService <ITimeoutManager>().Register(c => new DisabledTimeoutManager(), description: SqsTimeoutManagerText);
        }
コード例 #14
0
        /// <summary>
        /// Configures Rebus to use Amazon Simple Queue Service as the message transport
        /// </summary>
        public static void UseAmazonSQSAsOneWayClient(this StandardConfigurer <ITransport> configurer, string accessKeyId, string secretAccessKey, AmazonSQSConfig amazonSqsConfig, AmazonSQSTransportOptions options = null)
        {
            var credentials = new BasicAWSCredentials(accessKeyId, secretAccessKey);

            ConfigureOneWayClient(configurer, GetTransportOptions(options, credentials, amazonSqsConfig));
        }
コード例 #15
0
 /// <summary>
 /// Configures Rebus to use Amazon Simple Queue Service as the message transport
 /// </summary>
 public static void UseAmazonSQSAsOneWayClient(this StandardConfigurer <ITransport> configurer, AmazonSQSTransportOptions options = null)
 {
     ConfigureOneWayClient(configurer, GetTransportOptions(options, null, null));
 }
コード例 #16
0
 /// <summary>
 /// Configures Rebus to use Amazon Simple Queue Service as the message transport
 /// </summary>
 public static void UseAmazonSQSAsOneWayClient(this StandardConfigurer <ITransport> configurer, AWSCredentials credentials, AmazonSQSConfig config, AmazonSQSTransportOptions options = null)
 {
     ConfigureOneWayClient(configurer, GetTransportOptions(options, credentials, config));
 }
コード例 #17
0
        /// <summary>
        /// Configures Rebus to use Amazon Simple Queue Service as the message transport
        /// </summary>
        public static void UseAmazonSQSAsOneWayClient(this StandardConfigurer <ITransport> configurer, AWSCredentials credentials, RegionEndpoint regionEndpoint, AmazonSQSTransportOptions options = null)
        {
            var config = new AmazonSQSConfig {
                RegionEndpoint = regionEndpoint
            };

            ConfigureOneWayClient(configurer, credentials, config, options ?? new AmazonSQSTransportOptions());
        }