Пример #1
0
        /// <summary>
        /// Конфигурация загружается из переменных окружения
        /// И из Azure Storage если заданы переменные окружения
        ///   ConfigStorageUri
        ///   ConfigStorageSas
        ///   ConfigStorageContainer
        ///
        /// или из файла appsettings.local.json если переменные не заданы
        /// </summary>
        /// <param name="builder"></param>
        public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
        {
            FunctionsHostBuilderContext context = builder.GetContext();

            //Get enviroment variables for config file access
            var configStorage = new ConfigStorageAccess();

            if (!configStorage.Configured)
            {
                builder.ConfigurationBuilder
                .AddJsonFile(Path.Combine(context.ApplicationRootPath, ConfigFileNameLocal), false, false)
                .AddEnvironmentVariables();
            }
            else
            {
                CheckConfigurationBlob(configStorage).Wait();

                var azureBlobFileProvider = new AzureBlobFileProvider(new AzureBlobOptions()
                {
                    ConnectionString  = configStorage.ConnectionString,
                    DocumentContainer = configStorage.ContainerName
                });

                builder.ConfigurationBuilder
                .AddJsonFile(azureBlobFileProvider, ConfigFileName, false, false)
                .AddEnvironmentVariables();
            }
        }
        public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
        {
            FunctionsHostBuilderContext context = builder.GetContext();

            var builtConfig      = builder.ConfigurationBuilder.Build();
            var keyVaultEndpoint = builtConfig["AzureKeyVaultEndpoint"];

            if (!string.IsNullOrEmpty(keyVaultEndpoint))
            {
                // using Key Vault, either local dev or deployed

                //var azureServiceTokenProvider = new AzureServiceTokenProvider();
                //var keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));

                //builder.ConfigurationBuilder
                //        .AddAzureKeyVault(keyVaultEndpoint)
                //        .SetBasePath(Environment.CurrentDirectory)
                //        .AddJsonFile("local.settings.json", true)
                //        .AddEnvironmentVariables()
                //    .Build();
            }
            else
            {
                // local dev no Key Vault
                builder.ConfigurationBuilder
                .SetBasePath(Environment.CurrentDirectory)
                .AddJsonFile("local.settings.json", true)
                .AddUserSecrets(Assembly.GetExecutingAssembly(), true)
                .AddEnvironmentVariables()
                .Build();
            }
        }
        public override void Configure(IFunctionsHostBuilder builder)
        {
            FunctionsHostBuilderContext context = builder.GetContext();

            EventProcessor.EventProcessorBuilder.Register(builder);
            builder.Services.AddDurableClientFactory();
        }
Пример #4
0
        public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
        {
            FunctionsHostBuilderContext context = builder.GetContext();

            builder.ConfigurationBuilder
            .AddJsonFile(Path.Combine(context.ApplicationRootPath, "local.settings.json"), optional: true, reloadOnChange: false)
            .AddEnvironmentVariables();
        }
        public override void Configure(IFunctionsHostBuilder builder)
        {
            builder.Services.AddScoped <IGreeter, SampleGreeter>();

            FunctionsHostBuilderContext context = builder.GetContext();

            builder.Services.Configure <SampleOptions>(context.Configuration);
        }
Пример #6
0
        public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
        {
            // auto-detect SkillHostEndpoint
            FunctionsHostBuilderContext context = builder.GetContext();
            var hostname = builder.ConfigurationBuilder.Build().GetValue <string>("WEBSITE_HOSTNAME");
            var protocol = hostname.StartsWith("localhost") ? "http" : "https";

            builder.ConfigurationBuilder.AddInMemoryCollection(new[] { new KeyValuePair <string, string>("SkillHostEndpoint", $"{protocol}://{hostname}/api") });
        }
        public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
        {
            FunctionsHostBuilderContext context = builder.GetContext();

            // Note that these files are not automatically copied on build or publish.
            // See the csproj file to for the correct setup.
            builder.ConfigurationBuilder
            .AddJsonFile(Path.Combine(context.ApplicationRootPath, "appsettings.json"), optional: true, reloadOnChange: false)
            .AddJsonFile(Path.Combine(context.ApplicationRootPath, $"appsettings.{context.EnvironmentName}.json"), optional: true, reloadOnChange: false);
        }
Пример #8
0
        //FunctionsStartup
        //NOTE: https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-dotnet-dependency-injection
        //NOTE: https://blog.shibayan.jp/entry/20200823/1598186591
        //NOTE: https://stackoverflow.com/questions/57564396/how-do-i-mix-custom-parameter-binding-with-dependency-injection-in-azure-functio

        public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
        {
            FunctionsHostBuilderContext context = builder.GetContext();

            builder.ConfigurationBuilder
            .SetBasePath(context.ApplicationRootPath)
            .AddJsonFile("appSettings.json", optional: true, reloadOnChange: true)
            .AddEnvironmentVariables()
            .Build();
        }
Пример #9
0
        public override void Configure(IFunctionsHostBuilder builder)
        {
            FunctionsHostBuilderContext context = builder.GetContext();

            builder.Services.AddSingleton(p => new ComputerVisionClient(
                                              new ApiKeyServiceClientCredentials(context.Configuration.GetValue <string>("ComputerVisionApiKey")))
            {
                Endpoint = context.Configuration.GetValue <string>("ComputerVisionEndpoint")
            });
        }
        public override void Configure(IFunctionsHostBuilder builder)
        {
            FunctionsHostBuilderContext context = builder.GetContext();

            builder.Services.AddOptions()
            .Configure <CosmosDbServiceOptions>(context.Configuration.GetSection("CosmosDb"));

            builder.Services
            .AddHttpClient()
            .AddSingleton <CosmosDbService>();
        }
Пример #11
0
        public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
        {
            FunctionsHostBuilderContext context = builder.GetContext();

            builder.ConfigurationBuilder
            .AddJsonFile(Path.Combine(context.ApplicationRootPath, "appsettings.json"), optional: true, reloadOnChange: false)
            .AddJsonFile(Path.Combine(context.ApplicationRootPath, $"appsettings.{context.EnvironmentName}.json"), optional: true, reloadOnChange: false)
            //.AddAzureAppConfiguration(Environment.GetEnvironmentVariable("AZMAN-AAC-CONNECTION"), optional: true)
            //.AddUserSecrets(Assembly.GetExecutingAssembly(), true)
            .AddEnvironmentVariables();
        }
Пример #12
0
        public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
        {
            FunctionsHostBuilderContext context = builder.GetContext();

            var config = builder.ConfigurationBuilder
                         .AddJsonFile(Path.Combine(context.ApplicationRootPath, "appsettings.json"), optional: true, reloadOnChange: false)
                         .AddJsonFile(Path.Combine(context.ApplicationRootPath, $"appsettings.{context.EnvironmentName}.json"), optional: true, reloadOnChange: false)
                         .AddEnvironmentVariables()
                         .Build();

            config.GetSection("AzureAd");
        }
Пример #13
0
        public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder configurationBuilder)
        {
            FunctionsHostBuilderContext context = configurationBuilder.GetContext();

            string applicationRoot   = context.ApplicationRootPath;
            string environmentName   = context.EnvironmentName;
            string settingsDirectory = "settings";

            configurationBuilder.ConfigurationBuilder.AddBotRuntimeConfiguration(
                applicationRoot,
                settingsDirectory,
                environmentName);
        }
        //override ConfigurationBuilder Settings if you want
        public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
        {
            //Overrideden behavior read from, appsettings.json
            FunctionsHostBuilderContext context = builder.GetContext();

            builder.ConfigurationBuilder
            .AddJsonFile(Path.Combine(context.ApplicationRootPath, "appsettings.json"), optional: false, reloadOnChange: true)
            //Adding Environmental Files //add Conditions
            //.AddJsonFile(Path.Combine(context.ApplicationRootPath, $"appsettings.{context.EnvironmentName}.json"), optional: true, reloadOnChange: false)
            .AddEnvironmentVariables();

            //Default behavior read from local.settings.json
            //base.ConfigureAppConfiguration(builder);
        }
Пример #15
0
        public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
        {
            FunctionsHostBuilderContext context = builder.GetContext();

            builder.ConfigurationBuilder
            .AddJsonFile(Path.Combine(context.ApplicationRootPath, "host.json"), optional: false, reloadOnChange: true)
            .AddJsonFile(Path.Combine(context.ApplicationRootPath, "local.settings.json"), optional: true, reloadOnChange: true)
            .AddEnvironmentVariables();

            Log.Logger = new LoggerConfiguration()
                         .ReadFrom.Configuration(builder.ConfigurationBuilder.Build())
                         .Enrich.FromLogContext()
                         .Enrich.WithExceptionDetails()
                         .Enrich.WithProperty("Proc", "Aha.Dns.Notifications.CloudFunctions")
                         .CreateLogger();
        }
Пример #16
0
        public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
        {
            FunctionsHostBuilderContext context = builder.GetContext();

            _ = builder.ConfigurationBuilder
                .AddJsonFile(Path.Combine(context.ApplicationRootPath, "appsettings.json"), true, false)
                .AddJsonFile(Path.Combine(context.ApplicationRootPath, $"appsettings.{context.EnvironmentName}.json"), true, false)
                .AddEnvironmentVariables();

#if DEBUG
            if ("development".Equals(context.EnvironmentName, System.StringComparison.CurrentCultureIgnoreCase))
            {
                _ = builder.ConfigurationBuilder.AddUserSecrets <Startup>();
            }
#endif
        }
        public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
        {
            var azureServiceTokenProvider = new AzureServiceTokenProvider();
            var keyVaultClient            = new KeyVaultClient(
                new KeyVaultClient.AuthenticationCallback(
                    azureServiceTokenProvider.KeyVaultTokenCallback));

            FunctionsHostBuilderContext context = builder.GetContext();

            var builtConfig = builder.ConfigurationBuilder.Build();

            builder.ConfigurationBuilder
            .AddAzureKeyVault(builtConfig["AzureVaultURL"], keyVaultClient, new DefaultKeyVaultSecretManager())
            //.AddJsonFile(Path.Combine(context.ApplicationRootPath, "appsettings.json"), optional: true, reloadOnChange: false)
            // .AddJsonFile(Path.Combine(context.ApplicationRootPath, $"appsettings.{context.EnvironmentName}.json"), optional: true, reloadOnChange: false)
            .AddEnvironmentVariables();
        }
Пример #18
0
        public override void Configure(IFunctionsHostBuilder builder)
        {
            // Keep this configuration as light as possible.
            // Never misuse the context to resolve services prematurely while configuring.

            FunctionsHostBuilderContext context = builder.GetContext();

            builder.Services.AddScoped <IMessageService, MessageService>();

            builder.Services.AddApplicationInsightsTelemetry();

            builder.Services.AddSingleton(p => new BlobServiceClient(context.Configuration.GetValue <string>("BlobStorageconnection")));

            builder.Services.AddSingleton(p => new ComputerVisionClient(
                                              new ApiKeyServiceClientCredentials(context.Configuration.GetValue <string>("ComputerVisionApiKey")))
            {
                Endpoint = context.Configuration.GetValue <string>("ComputerVisionEndpoint")
            });
        }
Пример #19
0
        public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
        {
            FunctionsHostBuilderContext context = builder.GetContext();
            string environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");


            var azureServiceTokeProvider = new AzureServiceTokenProvider();

            var keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokeProvider.KeyVaultTokenCallback));


            _configurationRoot = builder.ConfigurationBuilder
                                 .AddJsonFile(Path.Combine(context.ApplicationRootPath, "appsettings.json"), optional: true, reloadOnChange: false)
                                 .AddJsonFile(Path.Combine(context.ApplicationRootPath, $"appsettings.{environment}.json"), optional: true, reloadOnChange: false)
                                 .AddEnvironmentVariables()
                                 .Build();

            builder.ConfigurationBuilder.AddAzureKeyVault($"https://{_configurationRoot["dataconnections:azurekeyvault:keyvaultname"]}.vault.azure.net/", keyVaultClient, new DefaultKeyVaultSecretManager()).Build();

            _configurationRoot = builder.ConfigurationBuilder.Build();
        }
Пример #20
0
        public override void Configure(IFunctionsHostBuilder builder)
        {
            FunctionsHostBuilderContext context = builder.GetContext();
            var config = new ConfigurationBuilder()
                         .SetBasePath(context.ApplicationRootPath)
                         .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
                         .AddEnvironmentVariables()
                         .Build();

            //Get Connection String
            //string SqlConnection = config.GetConnectionString("SqlConnectionString");
            string SqlConnection = "Server=tcp:wwfs.database.windows.net,1433;Initial Catalog=wwfs;Persist Security Info=False;User ID=wwfs;Password=sfww2020!;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;";

            /*
             * builder.Services.AddDbContext<UserDataContext>(
             *  options => options.UseSqlServer(SqlConnection));
             */

            builder.Services.AddDbContext <UserDataContext>(
                options => SqlServerDbContextOptionsExtensions.UseSqlServer(options, SqlConnection));
        }
        public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
        {
            FunctionsHostBuilderContext context = builder.GetContext();

            var env = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");

            builder.ConfigurationBuilder
            .AddJsonFile(Path.Combine(context.ApplicationRootPath, $"appsettings.json"), true, true)
            .AddJsonFile(Path.Combine(context.ApplicationRootPath, $"appsettings.{env}.json"), true, true);


            var cosmosKeyVaultUrl = Environment.GetEnvironmentVariable("KeyVaultUrl");

            if (!string.IsNullOrEmpty(cosmosKeyVaultUrl))
            {
                var secretClient = new SecretClient(new Uri(cosmosKeyVaultUrl), new DefaultAzureCredential());
                builder.ConfigurationBuilder.AddAzureKeyVault(secretClient, new KeyVaultSecretManager());
            }

            builder.ConfigurationBuilder.AddEnvironmentVariables();
            builder.ConfigurationBuilder.Build();
        }
Пример #22
0
 public AzureFunctionsServiceConfig(FunctionsHostBuilderContext context)
 {
     RootDirectory = context.ApplicationRootPath;
 }
Пример #23
0
        public override void Configure(IFunctionsHostBuilder builder)
        {
            FunctionsHostBuilderContext context = builder.GetContext();

            EventProcessor.EventProcessorBuilder.Register(builder);
        }