/// <summary> /// Locates and adds local.settings.json to the configuration and scans /// all configuration values for Azure KeyVault macros /// and replaces them with actual values. /// <para /> /// Uses IHostingEnvironment.IsDevelopment() implicitly. /// </summary> /// <typeparam name="TStartup">The web jobs / Azure Function startup class</typeparam> /// <param name="webJobsBuilder"></param> /// <returns></returns> public static IWebJobsBuilder TransformKeyVaultMacros <TStartup>(this IWebJobsBuilder webJobsBuilder) where TStartup : class { var hostingEnvironment = webJobsBuilder.Services .FirstOrDefault(d => d.ServiceType == typeof(IHostingEnvironment))?.ImplementationInstance as IHostingEnvironment; if (!hostingEnvironment.IsDevelopment()) { return(webJobsBuilder); } webJobsBuilder.AddConfiguration(configurationBuilder => configurationBuilder .AddLocalSettings <TStartup>() .TransformKeyVaultMacrosAsync().Wait()); return(webJobsBuilder); }