コード例 #1
0
        internal DotNetFunctionInvoker(ScriptHost host, FunctionMetadata functionMetadata,
            Collection<FunctionBinding> inputBindings, Collection<FunctionBinding> outputBindings,
            IFunctionEntryPointResolver functionEntryPointResolver, FunctionAssemblyLoader assemblyLoader,
            ICompilationServiceFactory compilationServiceFactory, ITraceWriterFactory traceWriterFactory = null)
            : base(host, functionMetadata, traceWriterFactory)
        {
            _metricsLogger = Host.ScriptConfig.HostConfig.GetService<IMetricsLogger>();
            _functionEntryPointResolver = functionEntryPointResolver;
            _assemblyLoader = assemblyLoader;
            _metadataResolver = new FunctionMetadataResolver(functionMetadata, host.ScriptConfig.BindingProviders, TraceWriter);
            _compilationService = compilationServiceFactory.CreateService(functionMetadata.ScriptType, _metadataResolver);
            _inputBindings = inputBindings;
            _outputBindings = outputBindings;
            _triggerInputName = functionMetadata.Bindings.FirstOrDefault(b => b.IsTrigger).Name;

            InitializeFileWatcher();

            _resultProcessor = CreateResultProcessor();

            _functionLoader = new FunctionLoader<MethodInfo>(CreateFunctionTarget);

            _reloadScript = ReloadScript;
            _reloadScript = _reloadScript.Debounce();

            _restorePackages = RestorePackages;
            _restorePackages = _restorePackages.Debounce();
        }
コード例 #2
0
        internal DotNetFunctionInvoker(ScriptHost host,
                                       FunctionMetadata functionMetadata,
                                       Collection <FunctionBinding> inputBindings,
                                       Collection <FunctionBinding> outputBindings,
                                       IFunctionEntryPointResolver functionEntryPointResolver,
                                       FunctionAssemblyLoader assemblyLoader,
                                       ICompilationServiceFactory <ICompilationService <IDotNetCompilation>, IFunctionMetadataResolver> compilationServiceFactory,
                                       ITraceWriterFactory traceWriterFactory     = null,
                                       IFunctionMetadataResolver metadataResolver = null)
            : base(host, functionMetadata, traceWriterFactory)
        {
            _metricsLogger = Host.ScriptConfig.HostConfig.GetService <IMetricsLogger>();
            _functionEntryPointResolver = functionEntryPointResolver;
            _assemblyLoader             = assemblyLoader;
            _metadataResolver           = metadataResolver ?? new FunctionMetadataResolver(functionMetadata, host.ScriptConfig.BindingProviders, TraceWriter, host.ScriptConfig.HostConfig.LoggerFactory);
            _compilationService         = compilationServiceFactory.CreateService(functionMetadata.ScriptType, _metadataResolver);
            _inputBindings    = inputBindings;
            _outputBindings   = outputBindings;
            _triggerInputName = functionMetadata.Bindings.FirstOrDefault(b => b.IsTrigger).Name;

            InitializeFileWatcher();

            _resultProcessor = CreateResultProcessor();

            _functionLoader = new FunctionLoader <MethodInfo>(CreateFunctionTarget);

            _reloadScript = ReloadScriptAsync;
            _reloadScript = _reloadScript.Debounce();

            _shutdown = () => Host.Shutdown();
            _shutdown = _shutdown.Debounce();

            _restorePackages = RestorePackages;
            _restorePackages = _restorePackages.Debounce();
        }
コード例 #3
0
 internal ScriptFunctionInvoker(string scriptFilePath, ScriptHost host, FunctionMetadata functionMetadata,
     Collection<FunctionBinding> inputBindings, Collection<FunctionBinding> outputBindings, ITraceWriterFactory traceWriterFactory = null)
     : base(host, functionMetadata, traceWriterFactory)
 {
     _scriptFilePath = scriptFilePath;
     _host = host;
     _inputBindings = inputBindings;
     _outputBindings = outputBindings;
 }
コード例 #4
0
        internal FunctionInvokerBase(ScriptHost host, FunctionMetadata functionMetadata, ITraceWriterFactory traceWriterFactory = null)
        {
            Host = host;
            Metadata = functionMetadata;
            _metrics = host.ScriptConfig.HostConfig.GetService<IMetricsLogger>();

            // Function file logging is only done conditionally
            traceWriterFactory = traceWriterFactory ?? new FunctionTraceWriterFactory(functionMetadata.Name, Host.ScriptConfig);
            TraceWriter traceWriter = traceWriterFactory.Create();
            FileTraceWriter = traceWriter.Conditional(t => Host.FileLoggingEnabled && (!(t.Properties?.ContainsKey(ScriptConstants.TracePropertyPrimaryHostKey) ?? false) || Host.IsPrimary));

            // The global trace writer used by the invoker will write all traces to both
            // the host trace writer as well as our file trace writer
            TraceWriter = host.TraceWriter != null ?
                new CompositeTraceWriter(new TraceWriter[] { FileTraceWriter, host.TraceWriter }) :
                FileTraceWriter;

            // Apply the function name as an event property to all traces
            var functionTraceProperties = new Dictionary<string, object>
            {
                { ScriptConstants.TracePropertyFunctionNameKey, Metadata.Name }
            };
            TraceWriter = TraceWriter.Apply(functionTraceProperties);
        }
 public ScriptFunctionInvokerBase(ScriptHost host, FunctionMetadata functionMetadata, ITraceWriterFactory traceWriterFactory)
     : base(host, functionMetadata, traceWriterFactory)
 {
 }
コード例 #6
0
 internal PowerShellFunctionInvoker(ScriptHost host, FunctionMetadata functionMetadata,
     Collection<FunctionBinding> inputBindings, Collection<FunctionBinding> outputBindings, ITraceWriterFactory traceWriterFactory = null)
     : base(host, functionMetadata, traceWriterFactory)
 {
     _host = host;
     _scriptFilePath = functionMetadata.ScriptFile;
     _functionName = functionMetadata.Name;
     _inputBindings = inputBindings;
     _outputBindings = outputBindings;
 }
 public MockInvoker(ScriptHost host, FunctionMetadata metadata, ITraceWriterFactory traceWriterFactory = null) : base(host, metadata, traceWriterFactory)
 {
 }
コード例 #8
0
 internal ScriptFunctionInvoker(string scriptFilePath, ScriptHost host, FunctionMetadata functionMetadata,
                                Collection <FunctionBinding> inputBindings, Collection <FunctionBinding> outputBindings, ITraceWriterFactory traceWriterFactory = null)
     : base(host, functionMetadata, traceWriterFactory)
 {
     _scriptFilePath = scriptFilePath;
     _host           = host;
     _inputBindings  = inputBindings;
     _outputBindings = outputBindings;
 }
コード例 #9
0
        internal FunctionInvokerBase(ScriptHost host, FunctionMetadata functionMetadata, ITraceWriterFactory traceWriterFactory = null)
        {
            Host     = host;
            Metadata = functionMetadata;
            _metrics = host.ScriptConfig.HostConfig.GetService <IMetricsLogger>();

            // Function file logging is only done conditionally
            traceWriterFactory = traceWriterFactory ?? new FunctionTraceWriterFactory(functionMetadata.Name, Host.ScriptConfig);
            TraceWriter traceWriter = traceWriterFactory.Create();

            FileTraceWriter = traceWriter.Conditional(t => Host.FileLoggingEnabled && (!(t.Properties?.ContainsKey(ScriptConstants.TracePropertyPrimaryHostKey) ?? false) || Host.IsPrimary));

            // The global trace writer used by the invoker will write all traces to both
            // the host trace writer as well as our file trace writer
            TraceWriter = host.TraceWriter != null ?
                          new CompositeTraceWriter(new TraceWriter[] { FileTraceWriter, host.TraceWriter }) :
                          FileTraceWriter;

            // Apply the function name as an event property to all traces
            var functionTraceProperties = new Dictionary <string, object>
            {
                { ScriptConstants.TracePropertyFunctionNameKey, Metadata.Name }
            };

            TraceWriter = TraceWriter.Apply(functionTraceProperties);
        }
コード例 #10
0
        internal DotNetFunctionInvoker(ScriptHost host, FunctionMetadata functionMetadata,
                                       Collection <FunctionBinding> inputBindings, Collection <FunctionBinding> outputBindings,
                                       IFunctionEntryPointResolver functionEntryPointResolver, FunctionAssemblyLoader assemblyLoader,
                                       ICompilationServiceFactory compilationServiceFactory, ITraceWriterFactory traceWriterFactory = null)
            : base(host, functionMetadata, traceWriterFactory)
        {
            _functionEntryPointResolver = functionEntryPointResolver;
            _assemblyLoader             = assemblyLoader;
            _metadataResolver           = new FunctionMetadataResolver(functionMetadata, host.ScriptConfig.BindingProviders, TraceWriter);
            _compilationService         = compilationServiceFactory.CreateService(functionMetadata.ScriptType, _metadataResolver);
            _inputBindings    = inputBindings;
            _outputBindings   = outputBindings;
            _triggerInputName = functionMetadata.Bindings.FirstOrDefault(b => b.IsTrigger).Name;

            InitializeFileWatcher();

            _resultProcessor = CreateResultProcessor();

            _functionValueLoader = FunctionValueLoader.Create(CreateFunctionTarget);

            _reloadScript = ReloadScript;
            _reloadScript = _reloadScript.Debounce();

            _restorePackages = RestorePackages;
            _restorePackages = _restorePackages.Debounce();
        }
コード例 #11
0
        internal NodeFunctionInvoker(ScriptHost host, BindingMetadata trigger, FunctionMetadata functionMetadata,
                                     Collection <FunctionBinding> inputBindings, Collection <FunctionBinding> outputBindings,
                                     ICompilationService <IJavaScriptCompilation> compilationService, ITraceWriterFactory traceWriterFactory = null)
            : base(host, functionMetadata, traceWriterFactory)
        {
            _trigger            = trigger;
            _inputBindings      = inputBindings;
            _outputBindings     = outputBindings;
            _entryPoint         = functionMetadata.EntryPoint;
            _compilationService = compilationService;

            // If the compilation service writes to the common file system, we only want the primary host to generate
            // compilation output
            if (_compilationService.PersistsOutput)
            {
                _compilationService = new ConditionalJavaScriptCompilationService(Host.SettingsManager, compilationService, () => Host.IsPrimary);
            }

            _functionLoader = new FunctionLoader <ScriptFunc>(CreateFunctionTarget);
            _metricsLogger  = Host.ScriptConfig.HostConfig.GetService <IMetricsLogger>();

            _reloadScript = ReloadScriptAsync;
            _reloadScript = _reloadScript.Debounce();

            InitializeFileWatcherIfEnabled();
        }
コード例 #12
0
        internal NodeFunctionInvoker(ScriptHost host, BindingMetadata trigger, FunctionMetadata functionMetadata,
                                     Collection <FunctionBinding> inputBindings, Collection <FunctionBinding> outputBindings, ITraceWriterFactory traceWriterFactory = null)
            : base(host, functionMetadata, traceWriterFactory)
        {
            _trigger = trigger;
            string scriptFilePath = functionMetadata.ScriptFile.Replace('\\', '/');

            _script         = string.Format(CultureInfo.InvariantCulture, _functionTemplate, scriptFilePath);
            _inputBindings  = inputBindings;
            _outputBindings = outputBindings;
            _entryPoint     = functionMetadata.EntryPoint;

            InitializeFileWatcherIfEnabled();
        }
コード例 #13
0
 public ScriptFunctionInvokerBase(ScriptHost host, FunctionMetadata functionMetadata, ITraceWriterFactory traceWriterFactory)
     : base(host, functionMetadata, traceWriterFactory)
 {
 }
コード例 #14
0
 public void EnableTracing(ITraceWriterFactory traceWriterFactory)
 {
     _traceWriterFactory = traceWriterFactory;
 }