public InstanceManager(IOptionsFactory <ScriptApplicationHostOptions> optionsFactory, IHttpClientFactory httpClientFactory, IScriptWebHostEnvironment webHostEnvironment, IEnvironment environment, ILogger <InstanceManager> logger, IMetricsLogger metricsLogger, IMeshServiceClient meshServiceClient, IRunFromPackageHandler runFromPackageHandler, IPackageDownloadHandler packageDownloadHandler) { _client = httpClientFactory?.CreateClient() ?? throw new ArgumentNullException(nameof(httpClientFactory)); _webHostEnvironment = webHostEnvironment ?? throw new ArgumentNullException(nameof(webHostEnvironment)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _metricsLogger = metricsLogger; _meshServiceClient = meshServiceClient; _runFromPackageHandler = runFromPackageHandler ?? throw new ArgumentNullException(nameof(runFromPackageHandler)); _packageDownloadHandler = packageDownloadHandler ?? throw new ArgumentNullException(nameof(packageDownloadHandler)); _environment = environment ?? throw new ArgumentNullException(nameof(environment)); _optionsFactory = optionsFactory ?? throw new ArgumentNullException(nameof(optionsFactory)); }
public InstanceManager(IOptionsFactory <ScriptApplicationHostOptions> optionsFactory, HttpClient client, IScriptWebHostEnvironment webHostEnvironment, IEnvironment environment, ILogger <InstanceManager> logger, IMetricsLogger metricsLogger, IMeshServiceClient meshServiceClient) { _client = client ?? throw new ArgumentNullException(nameof(client)); _webHostEnvironment = webHostEnvironment ?? throw new ArgumentNullException(nameof(webHostEnvironment)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _metricsLogger = metricsLogger; _meshServiceClient = meshServiceClient; _environment = environment ?? throw new ArgumentNullException(nameof(environment)); _optionsFactory = optionsFactory ?? throw new ArgumentNullException(nameof(optionsFactory)); }
public FunctionsSyncManager(IConfiguration configuration, IHostIdProvider hostIdProvider, IOptionsMonitor <ScriptApplicationHostOptions> applicationHostOptions, ILogger <FunctionsSyncManager> logger, HttpClient httpClient, ISecretManagerProvider secretManagerProvider, IScriptWebHostEnvironment webHostEnvironment, IEnvironment environment, HostNameProvider hostNameProvider, IFunctionMetadataManager functionMetadataManager) { _applicationHostOptions = applicationHostOptions; _logger = logger; _httpClient = httpClient; _secretManagerProvider = secretManagerProvider; _configuration = configuration; _hostIdProvider = hostIdProvider; _webHostEnvironment = webHostEnvironment; _environment = environment; _hostNameProvider = hostNameProvider; _functionMetadataManager = functionMetadataManager; }
public static IHostBuilder AddWebScriptHost(this IHostBuilder builder, IServiceProvider rootServiceProvider, IServiceScopeFactory rootScopeFactory, ScriptApplicationHostOptions webHostOptions, Action <IWebJobsBuilder> configureWebJobs = null) { ILoggerFactory configLoggerFactory = rootServiceProvider.GetService <ILoggerFactory>(); builder.UseServiceProviderFactory(new JobHostScopedServiceProviderFactory(rootServiceProvider, rootScopeFactory)) .ConfigureServices(services => { // register default configuration // must happen before the script host is added below services.ConfigureOptions <HttpOptionsSetup>(); }) .AddScriptHost(webHostOptions, configLoggerFactory, webJobsBuilder => { webJobsBuilder .AddAzureStorageCoreServices(); configureWebJobs?.Invoke(webJobsBuilder); ConfigureRegisteredBuilders(webJobsBuilder, rootServiceProvider); }) .ConfigureAppConfiguration(configurationBuilder => { ConfigureRegisteredBuilders(configurationBuilder, rootServiceProvider); }) .ConfigureLogging(loggingBuilder => { loggingBuilder.Services.AddSingleton <ILoggerFactory, ScriptLoggerFactory>(); loggingBuilder.AddWebJobsSystem <SystemLoggerProvider>(); loggingBuilder.Services.AddSingleton <ILoggerProvider, UserLogMetricsLoggerProvider>(); loggingBuilder.Services.AddSingleton <ILoggerProvider>(services => { IEnvironment environment = services.GetService <IEnvironment>(); IScriptWebHostEnvironment hostEnvironment = services.GetService <IScriptWebHostEnvironment>(); if (!hostEnvironment.InStandbyMode && !string.IsNullOrEmpty(environment.GetEnvironmentVariable(EnvironmentSettingNames.AzureWebsiteHostName))) { IEventGenerator eventGenerator = services.GetService <IEventGenerator>(); IOptions <ScriptJobHostOptions> options = services.GetService <IOptions <ScriptJobHostOptions> >(); return(new AzureMonitorDiagnosticLoggerProvider(options, eventGenerator, environment)); } return(NullLoggerProvider.Instance); }); ConfigureRegisteredBuilders(loggingBuilder, rootServiceProvider); }) .ConfigureServices(services => { var webHostEnvironment = rootServiceProvider.GetService <IScriptWebHostEnvironment>(); var environment = rootServiceProvider.GetService <IEnvironment>(); if (FunctionsSyncManager.IsSyncTriggersEnvironment(webHostEnvironment, environment)) { services.AddSingleton <IHostedService, FunctionsSyncService>(); } services.AddSingleton <HttpRequestQueue>(); services.AddSingleton <IHostLifetime, JobHostHostLifetime>(); services.TryAddSingleton <IWebJobsExceptionHandler, WebScriptHostExceptionHandler>(); services.AddSingleton <IScriptJobHostEnvironment, WebScriptJobHostEnvironment>(); services.AddSingleton <DefaultScriptWebHookProvider>(); services.TryAddSingleton <IScriptWebHookProvider>(p => p.GetService <DefaultScriptWebHookProvider>()); services.TryAddSingleton <IWebHookProvider>(p => p.GetService <DefaultScriptWebHookProvider>()); // Make sure the registered IHostIdProvider is used IHostIdProvider provider = rootServiceProvider.GetService <IHostIdProvider>(); if (provider != null) { services.AddSingleton <IHostIdProvider>(provider); } // Logging and diagnostics services.AddSingleton <IMetricsLogger, WebHostMetricsLogger>(); services.AddSingleton <IEventCollectorProvider, FunctionInstanceLogCollectorProvider>(); // Hosted services services.TryAddEnumerable(ServiceDescriptor.Singleton <IHostedService, HttpInitializationService>()); services.TryAddEnumerable(ServiceDescriptor.Singleton <IHostedService, FileMonitoringService>()); }); var debugStateProvider = rootServiceProvider.GetService <IDebugStateProvider>(); if (debugStateProvider.InDebugMode) { builder.UseEnvironment(EnvironmentName.Development); } return(builder); }
public StandbyManager(IScriptHostManager scriptHostManager, IWebHostLanguageWorkerChannelManager languageWorkerChannelManager, IConfiguration configuration, IScriptWebHostEnvironment webHostEnvironment, IEnvironment environment, IOptionsMonitor <ScriptApplicationHostOptions> options, ILogger <StandbyManager> logger, HostNameProvider hostNameProvider, IApplicationLifetime applicationLifetime, TimeSpan specializationTimerInterval) { _scriptHostManager = scriptHostManager ?? throw new ArgumentNullException(nameof(scriptHostManager)); _options = options ?? throw new ArgumentNullException(nameof(options)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _specializationTask = new Lazy <Task>(SpecializeHostCoreAsync, LazyThreadSafetyMode.ExecutionAndPublication); _webHostEnvironment = webHostEnvironment ?? throw new ArgumentNullException(nameof(webHostEnvironment)); _environment = environment ?? throw new ArgumentNullException(nameof(environment)); _configuration = configuration as IConfigurationRoot ?? throw new ArgumentNullException(nameof(configuration)); _languageWorkerChannelManager = languageWorkerChannelManager ?? throw new ArgumentNullException(nameof(languageWorkerChannelManager)); _hostNameProvider = hostNameProvider ?? throw new ArgumentNullException(nameof(hostNameProvider)); _changeTokenCallbackSubscription = ChangeToken.RegisterChangeCallback(_ => _logger.LogDebug($"{nameof(StandbyManager)}.{nameof(ChangeToken)} callback has fired."), null); _specializationTimerInterval = specializationTimerInterval; _applicationLifetime = applicationLifetime; }
public StandbyManager(IScriptHostManager scriptHostManager, IWebHostLanguageWorkerChannelManager languageWorkerChannelManager, IConfiguration configuration, IScriptWebHostEnvironment webHostEnvironment, IEnvironment environment, IOptionsMonitor <ScriptApplicationHostOptions> options, ILogger <StandbyManager> logger, HostNameProvider hostNameProvider, IApplicationLifetime applicationLifetime) : this(scriptHostManager, languageWorkerChannelManager, configuration, webHostEnvironment, environment, options, logger, hostNameProvider, applicationLifetime, TimeSpan.FromMilliseconds(500)) { }
public FunctionsSyncManager(IConfiguration configuration, IHostIdProvider hostIdProvider, IOptionsMonitor <ScriptApplicationHostOptions> applicationHostOptions, IOptions <LanguageWorkerOptions> languageWorkerOptions, ILogger <FunctionsSyncManager> logger, HttpClient httpClient, ISecretManagerProvider secretManagerProvider, IScriptWebHostEnvironment webHostEnvironment, IEnvironment environment, HostNameProvider hostNameProvider) { _applicationHostOptions = applicationHostOptions; _logger = logger; _workerConfigs = languageWorkerOptions.Value.WorkerConfigs; _httpClient = httpClient; _secretManagerProvider = secretManagerProvider; _configuration = configuration; _hostIdProvider = hostIdProvider; _webHostEnvironment = webHostEnvironment; _environment = environment; _hostNameProvider = hostNameProvider; }