Esempio n. 1
0
        /// <summary>
        /// Configure for WorkflowTrigger.
        /// </summary>
        /// <param name="builder">IFunctionsHostBuilder.</param>
        public override void Configure(IFunctionsHostBuilder builder)
        {
            //  Registers the ILogger instance
            builder.Services.AddLogging(loggingBuilder =>
            {
                loggingBuilder.AddApplicationInsights();

                loggingBuilder.AddFilter("EnrichmentPipeline", LogLevel.Trace);
            });

            builder
            .Services
            .AddOptions <DataLakeConfiguration>()
            .Configure <IConfiguration>((settings, configuration) =>
            {
                configuration.GetSection(nameof(DataLakeConfiguration)).Bind(settings);
            });

            builder
            .Services
            .AddOptions <OutputServiceBusConfiguration>()
            .Configure <IConfiguration>((settings, configuration) =>
            {
                configuration.GetSection(nameof(OutputServiceBusConfiguration)).Bind(settings);
            });

            builder.Services.AddSingleton <ISystemInfoService, SystemInfoService>(isp => new SystemInfoService(typeof(Startup).Assembly));
            builder.Services.AddSingleton(isp => new StaticTelemetryProperties(isp.GetRequiredService <ISystemInfoService>())
            {
                ComponentName      = typeof(Startup).Namespace,
                HostingEnvironment = "Functions",
                HostId             = Environment.MachineName,
            });
            builder.Services.AddSingleton <ITelemetryInitializer, TelemetryInitializer>();
            builder.Services.AddSingleton <IServiceBusClientService, ServiceBusClientService>();
            builder.Services.AddSingleton <IServiceBusService, ServiceBusService>();
            builder.Services.AddSingleton <IFileStorageService, FileStorageService>();
            builder.Services.AddSingleton <IBlobInfoFactoryService, BlobInfoFactoryService>();
            builder.Services.AddApplicationInsightsTelemetry();
            builder.Services.AddSingleton(x =>
            {
                DataLakeConfiguration dataLakeConfigValue      = x.GetRequiredService <IOptions <DataLakeConfiguration> >().Value;
                StorageSharedKeyCredential sharedKeyCredential = new StorageSharedKeyCredential(dataLakeConfigValue.Name, dataLakeConfigValue.Key);
                return(new DataLakeServiceClient(new Uri(dataLakeConfigValue.Uri), sharedKeyCredential));
            });
        }
Esempio n. 2
0
        private async static Task <DataLakeFileRepository> GetLakeRepository()
        {
            try
            {
                var tokenProvider = new AADTokenProvider();

                var lakeConfig = new DataLakeConfiguration()
                {
                    AccountName = ADLSstorename,
                    Security    = new ClientCredentialsConfig()
                    {
                        Audience     = adlsAccountFQDN,
                        Authority    = Authority,
                        ClientId     = applicationId,
                        ClientSecret = clientSecret,
                        Resource     = adlsAccountFQDN,
                        Type         = CredentialType.Secret
                    }
                };

                var lakeClient = new DataLakeStoreFileSystemManagementClient(await GetCredentials(lakeConfig.Security, tokenProvider));

                var lakeRepo = new DataLakeFileRepository(lakeConfig, lakeClient);
                Desttemppath = Path.GetTempFileName();
                File.Delete(Desttemppath);
                await lakeRepo.DownloadAsync(ADLSstorename, filepath, Desttemppath);

                Dec(Desttemppath, PlainFilename);



                return(lakeRepo);
            }
            catch (Exception ex)
            {
                var message = ex.Message;

                throw;
            }
        }