/// <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(); }
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); }
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); }
//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(); }
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>(); }
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(); }
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"); }
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); }
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(); }
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(); }
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") }); }
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(); }
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(); }
public AzureFunctionsServiceConfig(FunctionsHostBuilderContext context) { RootDirectory = context.ApplicationRootPath; }
public override void Configure(IFunctionsHostBuilder builder) { FunctionsHostBuilderContext context = builder.GetContext(); EventProcessor.EventProcessorBuilder.Register(builder); }