Пример #1
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;
        }
Пример #2
0
 public WebFunctionsManager(IOptions <ScriptApplicationHostOptions> applicationHostOptions, IOptions <LanguageWorkerOptions> languageWorkerOptions, ILoggerFactory loggerFactory, HttpClient client, IProxyMetadataManager proxyMetadataManager)
 {
     _hostOptions          = applicationHostOptions.Value.ToHostOptions();
     _logger               = loggerFactory?.CreateLogger(ScriptConstants.LogCategoryKeysController);
     _client               = client;
     _workerConfigs        = languageWorkerOptions.Value.WorkerConfigs;
     _proxyMetadataManager = proxyMetadataManager;
 }
 public FunctionInstanceLogCollectorProvider(IFunctionMetadataManager metadataManager, IProxyMetadataManager proxyMetadataManager,
                                             IMetricsLogger metrics, IHostIdProvider hostIdProvider, IConfiguration configuration, ILoggerFactory loggerFactory)
 {
     _metadataManager      = metadataManager ?? throw new ArgumentNullException(nameof(metadataManager));
     _proxyMetadataManager = proxyMetadataManager ?? throw new ArgumentNullException(nameof(proxyMetadataManager));
     _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));
 }
        public FunctionInstanceLogger(
            IFunctionMetadataManager metadataManager,
            IProxyMetadataManager proxyMetadataManager,
            IMetricsLogger metrics,
            IHostIdProvider hostIdProvider,
            IConfiguration configuration,
            ILoggerFactory loggerFactory)
            : this(metadataManager, proxyMetadataManager, 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));
            }

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

            if (accountConnectionString != null)
            {
                CloudStorageAccount account = CloudStorageAccount.Parse(accountConnectionString);
                var client        = account.CreateCloudTableClient();
                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));
 }