Пример #1
0
 public FunctionInstanceLogCollectorProvider(IFunctionMetadataManager metadataManager, IMetricsLogger metrics, IConfiguration configuration, ILoggerFactory loggerFactory)
 {
     _metadataManager = metadataManager ?? throw new ArgumentNullException(nameof(metadataManager));
     _metrics         = metrics ?? throw new ArgumentNullException(nameof(metrics));
     _configuration   = configuration ?? throw new ArgumentNullException(nameof(configuration));
     _loggerFactory   = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
 }
Пример #2
0
        // Specify the "builtin binding types". These are types that are directly accesible without needing an explicit load gesture.
        // This is the set of bindings we shipped prior to binding extensibility.
        // Map from BindingType to the Assembly Qualified Type name for its IExtensionConfigProvider object.

        public ScriptHost(IOptions <JobHostOptions> options,
                          IOptions <LanguageWorkerOptions> languageWorkerOptions,
                          IEnvironment environment,
                          IJobHostContextFactory jobHostContextFactory,
                          IConfiguration configuration,
                          IDistributedLockManager distributedLockManager,
                          IScriptEventManager eventManager,
                          ILoggerFactory loggerFactory,
                          IFunctionMetadataManager functionMetadataManager,
                          IProxyMetadataManager proxyMetadataManager,
                          IMetricsLogger metricsLogger,
                          IOptions <ScriptJobHostOptions> scriptHostOptions,
                          ITypeLocator typeLocator,
                          IScriptJobHostEnvironment scriptHostEnvironment,
                          IDebugStateProvider debugManager,
                          IEnumerable <IScriptBindingProvider> bindingProviders,
                          IPrimaryHostStateProvider primaryHostStateProvider,
                          IJobHostMetadataProvider metadataProvider,
                          IHostIdProvider hostIdProvider,
                          ScriptSettingsManager settingsManager = null)
            : base(options, jobHostContextFactory)
        {
            _environment = environment;
            _typeLocator = typeLocator as ScriptTypeLocator
                           ?? throw new ArgumentException(nameof(typeLocator), $"A {nameof(ScriptTypeLocator)} instance is required.");

            _instanceId              = Guid.NewGuid().ToString();
            _hostOptions             = options;
            _configuration           = configuration;
            _storageConnectionString = configuration.GetWebJobsConnectionString(ConnectionStringNames.Storage);
            _distributedLockManager  = distributedLockManager;
            _functionMetadataManager = functionMetadataManager;
            _hostIdProvider          = hostIdProvider;
            _proxyMetadataManager    = proxyMetadataManager;
            _workerConfigs           = languageWorkerOptions.Value.WorkerConfigs;

            ScriptOptions          = scriptHostOptions.Value;
            _scriptHostEnvironment = scriptHostEnvironment;
            FunctionErrors         = new Dictionary <string, ICollection <string> >(StringComparer.OrdinalIgnoreCase);

            EventManager = eventManager;

            _settingsManager = settingsManager ?? ScriptSettingsManager.Instance;

            _metricsLogger = metricsLogger;

            _hostLogPath = Path.Combine(ScriptOptions.RootLogPath, "Host");

            _currentRuntimelanguage = _environment.GetEnvironmentVariable(LanguageWorkerConstants.FunctionWorkerRuntimeSettingName);

            _loggerFactory = loggerFactory;
            _logger        = loggerFactory.CreateLogger(LogCategories.Startup);
            Logger         = _logger;

            _debugManager             = debugManager;
            _primaryHostStateProvider = primaryHostStateProvider;
            _bindingProviders         = new List <IScriptBindingProvider>(bindingProviders);
            _metadataProvider         = metadataProvider;
        }
 public ScriptStartupTypeLocator(string rootScriptPath, ILogger <ScriptStartupTypeLocator> logger, IExtensionBundleManager extensionBundleManager,
                                 IFunctionMetadataManager functionMetadataManager, IMetricsLogger metricsLogger)
 {
     _rootScriptPath         = rootScriptPath ?? throw new ArgumentNullException(nameof(rootScriptPath));
     _extensionBundleManager = extensionBundleManager ?? throw new ArgumentNullException(nameof(extensionBundleManager));
     _logger = logger;
     _functionMetadataManager = functionMetadataManager;
     _metricsLogger           = metricsLogger;
     _startupTypes            = new Lazy <IEnumerable <Type> >(() => GetExtensionsStartupTypesAsync().ConfigureAwait(false).GetAwaiter().GetResult());
 }
 public WebFunctionsManager(IOptionsMonitor <ScriptApplicationHostOptions> applicationHostOptions, ILoggerFactory loggerFactory, IHttpClientFactory httpClientFactory, ISecretManagerProvider secretManagerProvider, IFunctionsSyncManager functionsSyncManager, HostNameProvider hostNameProvider, IFunctionMetadataManager functionMetadataManager)
 {
     _applicationHostOptions = applicationHostOptions;
     _logger = loggerFactory?.CreateLogger(ScriptConstants.LogCategoryHostGeneral);
     _client = httpClientFactory.CreateClient();
     _secretManagerProvider   = secretManagerProvider;
     _functionsSyncManager    = functionsSyncManager;
     _hostNameProvider        = hostNameProvider;
     _functionMetadataManager = functionMetadataManager;
 }
Пример #5
0
 public KeysController(IOptions <ScriptApplicationHostOptions> applicationOptions, ISecretManagerProvider secretManagerProvider, ILoggerFactory loggerFactory, IFileSystem fileSystem, IFunctionsSyncManager functionsSyncManager, IFunctionMetadataManager functionMetadataManager, IScriptHostManager hostManager)
 {
     _applicationOptions    = applicationOptions;
     _secretManagerProvider = secretManagerProvider;
     _logger                  = loggerFactory.CreateLogger(ScriptConstants.LogCategoryKeysController);
     _fileSystem              = fileSystem;
     _functionsSyncManager    = functionsSyncManager;
     _functionMetadataManager = functionMetadataManager;
     _hostManager             = hostManager;
 }
 public FunctionInstanceLogCollectorProvider(IFunctionMetadataManager metadataManager, IMetricsLogger metrics,
                                             IHostIdProvider hostIdProvider, IConfiguration configuration, ILoggerFactory loggerFactory, IDelegatingHandlerProvider delegatingHandlerProvider)
 {
     _metadataManager           = metadataManager ?? throw new ArgumentNullException(nameof(metadataManager));
     _metrics                   = metrics ?? throw new ArgumentNullException(nameof(metrics));
     _hostIdProvider            = hostIdProvider ?? throw new ArgumentNullException(nameof(hostIdProvider));
     _configuration             = configuration ?? throw new ArgumentNullException(nameof(configuration));
     _loggerFactory             = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
     _delegatingHandlerProvider = delegatingHandlerProvider ?? throw new ArgumentNullException(nameof(delegatingHandlerProvider));
 }
Пример #7
0
        public ExternalConfigurationStartupValidatorTests()
        {
            BindingMetadata bindingMetadata1 = new BindingMetadata
            {
                Type = "testTrigger",
                Raw  = JObject.FromObject(new
                {
                    key0 = _lookup,
                    key1 = "nonlookup",
                    key2 = true,
                    key3 = 1234,
                })
            };

            FunctionMetadata functionMetadata1 = new FunctionMetadata
            {
                Name = _functionName1
            };

            functionMetadata1.Bindings.Add(bindingMetadata1);

            BindingMetadata bindingMetadata2 = new BindingMetadata
            {
                Type = "testTrigger",
                Raw  = JObject.FromObject(new
                {
                    key0 = _bindingExpression
                })
            };

            FunctionMetadata functionMetadata2 = new FunctionMetadata
            {
                Name = _functionName2
            };

            functionMetadata2.Bindings.Add(bindingMetadata2);

            ICollection <FunctionMetadata> metadata = new Collection <FunctionMetadata>
            {
                functionMetadata1,
                functionMetadata2
            };

            _metadataManager = new MockMetadataManager(metadata);

            _configBuilder = new ConfigurationBuilder()
                             .AddInMemoryCollection(new Dictionary <string, string>()
            {
                { _lookup, "abc" },
                { _bindingExpressionLookup, "def" }
            });
        }
 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 FunctionInstanceLogger(
            IFunctionMetadataManager metadataManager,
            IMetricsLogger metrics,
            IHostIdProvider hostIdProvider,
            IConfiguration configuration,
            ILoggerFactory loggerFactory,
            IDelegatingHandlerProvider delegatingHandlerProvider)
            : this(metadataManager, metrics)
        {
            if (hostIdProvider == null)
            {
                throw new ArgumentNullException(nameof(hostIdProvider));
            }

            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }

            if (loggerFactory == null)
            {
                throw new ArgumentNullException(nameof(loggerFactory));
            }

            if (delegatingHandlerProvider == null)
            {
                throw new ArgumentNullException(nameof(delegatingHandlerProvider));
            }

            string accountConnectionString = configuration.GetWebJobsConnectionString(ConnectionStringNames.Dashboard);

            if (accountConnectionString != null)
            {
                CloudStorageAccount account = CloudStorageAccount.Parse(accountConnectionString);
                var restConfig = new RestExecutorConfiguration {
                    DelegatingHandler = delegatingHandlerProvider.Create()
                };
                var tableClientConfig = new TableClientConfiguration {
                    RestExecutorConfiguration = restConfig
                };

                var client        = new CloudTableClient(account.TableStorageUri, account.Credentials, tableClientConfig);
                var tableProvider = LogFactory.NewLogTableProvider(client);

                ILogger logger = loggerFactory.CreateLogger(ScriptConstants.LogCategoryHostGeneral);

                string hostId        = hostIdProvider.GetHostIdAsync(CancellationToken.None).GetAwaiter().GetResult() ?? "default";
                string containerName = Environment.MachineName;
                _writer = LogFactory.NewWriter(hostId, containerName, tableProvider, (e) => OnException(e, logger));
            }
        }
 internal FunctionInstanceLogger(IFunctionMetadataManager metadataManager, IProxyMetadataManager proxyMetadataManager, IMetricsLogger metrics)
 {
     _metrics = metrics ?? throw new ArgumentNullException(nameof(metrics));
     _proxyMetadataManager = proxyMetadataManager ?? throw new ArgumentNullException(nameof(proxyMetadataManager));
     _metadataManager      = metadataManager ?? throw new ArgumentNullException(nameof(metadataManager));
 }
Пример #11
0
        // Specify the "builtin binding types". These are types that are directly accesible without needing an explicit load gesture.
        // This is the set of bindings we shipped prior to binding extensibility.
        // Map from BindingType to the Assembly Qualified Type name for its IExtensionConfigProvider object.

        public ScriptHost(IOptions <JobHostOptions> options,
                          IOptions <HttpWorkerOptions> httpWorkerOptions,
                          IEnvironment environment,
                          IJobHostContextFactory jobHostContextFactory,
                          IConfiguration configuration,
                          IDistributedLockManager distributedLockManager,
                          IScriptEventManager eventManager,
                          ILoggerFactory loggerFactory,
                          IFunctionInvocationDispatcherFactory functionDispatcherFactory,
                          IFunctionMetadataManager functionMetadataManager,
                          IFileLoggingStatusManager fileLoggingStatusManager,
                          IMetricsLogger metricsLogger,
                          IOptions <ScriptJobHostOptions> scriptHostOptions,
                          ITypeLocator typeLocator,
                          IScriptHostManager scriptHostManager,
                          IDebugStateProvider debugManager,
                          IEnumerable <IScriptBindingProvider> bindingProviders,
                          IPrimaryHostStateProvider primaryHostStateProvider,
                          IJobHostMetadataProvider metadataProvider,
                          IHostIdProvider hostIdProvider,
                          IHttpRoutesManager httpRoutesManager,
                          IApplicationLifetime applicationLifetime,
                          IExtensionBundleManager extensionBundleManager,
                          ScriptSettingsManager settingsManager = null)
            : base(options, jobHostContextFactory)
        {
            _environment = environment;
            _typeLocator = typeLocator as ScriptTypeLocator
                           ?? throw new ArgumentException(nameof(typeLocator), $"A {nameof(ScriptTypeLocator)} instance is required.");

            _instanceId               = Guid.NewGuid().ToString();
            _hostOptions              = options;
            _configuration            = configuration;
            _storageConnectionString  = configuration.GetWebJobsConnectionString(ConnectionStringNames.Storage);
            _distributedLockManager   = distributedLockManager;
            _functionMetadataManager  = functionMetadataManager;
            _fileLoggingStatusManager = fileLoggingStatusManager;
            _applicationLifetime      = applicationLifetime;
            _hostIdProvider           = hostIdProvider;
            _httpRoutesManager        = httpRoutesManager;
            _isHttpWorker             = httpWorkerOptions.Value.Description != null;
            ScriptOptions             = scriptHostOptions.Value;
            _scriptHostManager        = scriptHostManager;
            FunctionErrors            = new Dictionary <string, ICollection <string> >(StringComparer.OrdinalIgnoreCase);
            EventManager              = eventManager;
            _functionDispatcher       = functionDispatcherFactory.GetFunctionDispatcher();
            _settingsManager          = settingsManager ?? ScriptSettingsManager.Instance;
            ExtensionBundleManager    = extensionBundleManager;

            _metricsLogger = metricsLogger;

            _hostLogPath = Path.Combine(ScriptOptions.RootLogPath, "Host");

            _workerRuntime = _environment.GetEnvironmentVariable(RpcWorkerConstants.FunctionWorkerRuntimeSettingName);

            _loggerFactory = loggerFactory;
            _logger        = loggerFactory.CreateLogger(LogCategories.Startup);
            Logger         = _logger;

            _debugManager             = debugManager;
            _primaryHostStateProvider = primaryHostStateProvider;
            _bindingProviders         = new List <IScriptBindingProvider>(bindingProviders);
            _metadataProvider         = metadataProvider;
            _eventSubscriptions.Add(EventManager.OfType <FunctionIndexingEvent>()
                                    .Subscribe(evt =>
            {
                HandleHostError(evt.Exception);
            }));
        }
Пример #12
0
 public ExternalConfigurationStartupValidator(IConfiguration config, IFunctionMetadataManager metadataManager)
 {
     _config          = config ?? throw new ArgumentNullException(nameof(config));
     _metadataManager = metadataManager ?? throw new ArgumentNullException(nameof(metadataManager));
     _nameResolver    = new DefaultNameResolver(config);
 }
 public MockInvoker(ScriptHost host, IMetricsLogger metrics, IFunctionMetadataManager functionMetadataManager, FunctionMetadata metadata, ILoggerFactory loggerFactory)
     : base(host, metadata, loggerFactory)
 {
     _instanceLogger = new FunctionInstanceLogger(functionMetadataManager, metrics);
 }
Пример #14
0
 public ChainFunctionMetadata(IFunctionMetadataManager functionMetadataManager)
 {
     Logger = NullLogger <ChainFunctionMetadata> .Instance;
     _functionMetadataManager = functionMetadataManager;
 }
Пример #15
0
 public FunctionMetadataService(IFunctionMetadataManager functionMetadataManager)
 {
     Logger                   = NullLogger <FunctionMetadataService> .Instance;
     chainFuncMetadata        = new ChainFunctionMetadata(_functionMetadataManager);
     _functionMetadataManager = functionMetadataManager;
 }