public ConsumerClientFactory(IConfiguration configuration, ILoggerFactory loggerFactory)
        {
            _logger            = loggerFactory.CreateLogger <ProducerClientFactory>();
            _hubSettings       = configuration.GetConfiguredSettings <EventHubSettings>();
            _consumerGroupName = Consumer.ConsumerGroup ?? EventHubConsumerClient.DefaultConsumerGroupName;
            _aadSettings       = configuration.GetConfiguredSettings <AadSettings>();
            _vaultSettings     = configuration.GetConfiguredSettings <VaultSettings>();
            _logger.LogInformation($"using consumer group: {_consumerGroupName}");

            if (!TryCreateClientUsingMsi())
            {
                if (!TryCreateClientUsingSpn())
                {
                    if (!TryCreateClientFromKeyVault() &&
                        !string.IsNullOrEmpty(_hubSettings.ConnectionStringSecretName))
                    {
                        if (!string.IsNullOrEmpty(_hubSettings.ConnectionStringSecretName))
                        {
                            if (!TryCreateClientUsingConnStr())
                            {
                                throw new Exception("failed to create queue client");
                            }
                        }
                        else
                        {
                            throw new Exception("Invalid queue settings");
                        }
                    }
                }
            }
        }
示例#2
0
        public QueueClientFactory(IServiceProvider serviceProvider, ILoggerFactory loggerFactory)
        {
            logger = loggerFactory.CreateLogger <QueueClientFactory>();
            var configuration = serviceProvider.GetRequiredService <IConfiguration>();

            queueSettings = configuration.GetConfiguredSettings <QueueSettings>();
            aadSettings   = configuration.GetConfiguredSettings <AadSettings>();
            vaultSettings = configuration.GetConfiguredSettings <VaultSettings>();
            kvClient      = serviceProvider.GetRequiredService <IKeyVaultClient>();

            switch (queueSettings.AuthMode)
            {
            case StorageAuthMode.Msi:
                TryCreateClientUsingMsi();
                break;

            case StorageAuthMode.Spn:
                TryCreateClientUsingSpn();
                break;

            case StorageAuthMode.SecretFromVault:
                TryCreateClientFromKeyVault();
                break;

            case StorageAuthMode.ConnStr:
                TryCreateClientUsingConnStr();
                break;

            default:
                throw new NotSupportedException($"Storage auth mode: {queueSettings.AuthMode} is not supported");
            }
        }
示例#3
0
        public BlobContainerFactory(IServiceProvider serviceProvider, ILoggerFactory loggerFactory,
                                    BlobStorageSettings settings = null)
        {
            var configuration = serviceProvider.GetRequiredService <IConfiguration>();

            blobSettings  = settings ?? configuration.GetConfiguredSettings <BlobStorageSettings>();
            aadSettings   = configuration.GetConfiguredSettings <AadSettings>();
            vaultSettings = configuration.GetConfiguredSettings <VaultSettings>();
            kvClient      = serviceProvider.GetRequiredService <IKeyVaultClient>();
            logger        = loggerFactory.CreateLogger <BlobContainerFactory>();

            switch (blobSettings.AuthMode)
            {
            case StorageAuthMode.Msi:
                TryCreateUsingMsi();
                break;

            case StorageAuthMode.Spn:
                TryCreateUsingSpn();
                break;

            case StorageAuthMode.SecretFromVault:
                TryCreateFromKeyVault();
                break;

            case StorageAuthMode.ConnStr:
                TryCreateUsingConnStr();
                break;

            default:
                throw new NotSupportedException($"Storage auth mode: {blobSettings.AuthMode} is not supported");
            }
        }
示例#4
0
        public ProducerClientFactory(IConfiguration configuration, ILoggerFactory loggerFactory)
        {
            logger        = loggerFactory.CreateLogger <ProducerClientFactory>();
            hubSettings   = configuration.GetConfiguredSettings <EventHubSettings>();
            aadSettings   = configuration.GetConfiguredSettings <AadSettings>();
            vaultSettings = configuration.GetConfiguredSettings <VaultSettings>();

            if (!TryCreateClientUsingMsi())
            {
                if (!TryCreateClientUsingSpn())
                {
                    if (!TryCreateClientFromKeyVault() &&
                        !string.IsNullOrEmpty(hubSettings.ConnectionStringSecretName))
                    {
                        if (!string.IsNullOrEmpty(hubSettings.ConnectionStringSecretName))
                        {
                            if (!TryCreateClientUsingConnStr())
                            {
                                throw new Exception("failed to create queue client");
                            }
                        }
                        else
                        {
                            throw new Exception("Invalid queue settings");
                        }
                    }
                }
            }
        }
        public BlobContainerFactory(IConfiguration configuration, ILoggerFactory loggerFactory)
        {
            _blobSettings  = configuration.GetConfiguredSettings <BlobStorageSettings>();
            _aadSettings   = configuration.GetConfiguredSettings <AadSettings>();
            _vaultSettings = configuration.GetConfiguredSettings <VaultSettings>();
            _logger        = loggerFactory.CreateLogger <BlobContainerFactory>();

            if (!TryCreateUsingMsi())
            {
                if (!TryCreateUsingSpn())
                {
                    if (!TryCreateFromKeyVault())
                    {
                        TryCreateUsingConnStr();
                    }
                }
            }
        }