├── .gitattributes
├── .github
└── policies
│ └── resourceManagement.yml
├── .gitignore
├── CONTRIBUTING.md
├── CustomDictionary.xml
├── Directory.Build.props
├── Directory.Build.targets
├── ISSUE_TEMPLATE.md
├── LICENSE.txt
├── NuGet.Config
├── README.md
├── SECURITY.md
├── Settings.StyleCop
├── WebJobs.sln
├── eng
├── build
│ ├── Engineering.props
│ ├── Engineering.targets
│ ├── Release.props
│ ├── Release.targets
│ ├── RepositoryInfo.targets
│ ├── SharedReferences.props
│ ├── SharedReferences.targets
│ ├── Version.props
│ └── Version.targets
├── ci
│ ├── code-mirror.yml
│ ├── integration-tests.yml
│ ├── official-build.yml
│ ├── official-release.yml
│ ├── public-build.yml
│ └── templates
│ │ ├── jobs
│ │ ├── build.yml
│ │ └── run-integration-tests.yml
│ │ ├── steps
│ │ └── install-dotnet.yml
│ │ └── variables
│ │ └── build.yml
└── res
│ ├── icon.png
│ └── key.snk
├── global.json
├── sample
└── SampleHost
│ ├── Filters
│ ├── ErrorHandler.cs
│ └── WorkItemValidator.cs
│ ├── Functions.cs
│ ├── Models
│ └── WorkItem.cs
│ ├── Program.cs
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── SampleHost.csproj
│ ├── Services.cs
│ └── appsettings.json
├── src.ruleset
├── src
├── Directory.Build.props
├── Directory.Version.props
├── Microsoft.Azure.WebJobs.Extensions.Rpc
│ ├── Implementation
│ │ ├── ExtensionEndpointDataSource.cs
│ │ ├── GrpcExtension.cs
│ │ ├── IRpcExtension.cs
│ │ └── Logs.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── README.md
│ ├── WebJobs.Extensions.Rpc.csproj
│ └── WebJobsExtensionBuilderRpcExtensions.cs
├── Microsoft.Azure.WebJobs.Host.Storage
│ ├── AzureStorageProvider.cs
│ ├── BlobServiceClientProvider.cs
│ ├── BlobStorageConcurrencyStatusRepository.cs
│ ├── BlobStorageExtensions.cs
│ ├── CommonUtility.cs
│ ├── DefaultDelegatingHandlerProvider.cs
│ ├── DefaultStorageCredentialsValidator.cs
│ ├── Directory.Version.props
│ ├── IAzureBlobStorageProvider.cs
│ ├── IDelegatingHandlerProvider.cs
│ ├── JobHostInternalStorageOptions.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── README.md
│ ├── RuntimeStorageWebJobsBuilderExtensions.cs
│ ├── Singleton
│ │ └── BlobLeaseDistributedLockManager.cs
│ ├── StorageClientProvider.cs
│ ├── StorageServiceCollectionExtensions.cs
│ ├── Utility.cs
│ ├── WebJobs.Host.Storage.csproj
│ └── WebJobsStorageDelegatingHandler.cs
├── Microsoft.Azure.WebJobs.Host
│ ├── AppServicesHostingUtility.cs
│ ├── ApplicationInsights.config
│ ├── AssemblyNameCache.cs
│ ├── Bindings
│ │ ├── AmbientBindingContext.cs
│ │ ├── AsyncCollector
│ │ │ ├── AsyncCollectorValueProvider.cs
│ │ │ ├── OutArrayValueProvider.cs
│ │ │ ├── OutValueProvider.cs
│ │ │ ├── SyncAsyncCollectorAdapter.cs
│ │ │ └── TypedAsyncCollectorAdapter.cs
│ │ ├── AttributeCloner.cs
│ │ ├── AttributeConverter.cs
│ │ ├── BindStepOrder.cs
│ │ ├── BindingBase.cs
│ │ ├── BindingContext.cs
│ │ ├── BindingDataPathHelper.cs
│ │ ├── BindingDataProvider.cs
│ │ ├── BindingExceptionValueProvider.cs
│ │ ├── BindingFactory.cs
│ │ ├── BindingFactoryHelpers.cs
│ │ ├── BindingProviderContext.cs
│ │ ├── BindingProviders
│ │ │ ├── AsyncCollectorBindingProvider.cs
│ │ │ ├── BindToInputBindingProvider.cs
│ │ │ ├── BindToStreamBindingProvider.cs
│ │ │ ├── BindingRule.cs
│ │ │ ├── CompositeBindingProvider.cs
│ │ │ ├── FilterNode.cs
│ │ │ ├── FilteringBindingProvider.cs
│ │ │ ├── FluentBindingProvider.cs
│ │ │ ├── FluentBindingProviderExtensions.cs
│ │ │ ├── FunctionFilterBindingProvider.cs
│ │ │ ├── GenericCompositeBindingProvider.cs
│ │ │ ├── IBindingRuleProvider.cs
│ │ │ ├── ItemBindingProvider.cs
│ │ │ ├── TriggerAdapterBindingProvider.cs
│ │ │ └── ValidatingWrapperBindingProvider.cs
│ │ ├── BindingTemplateExtensions.cs
│ │ ├── CacheAwareValueProvider.cs
│ │ ├── Cancellation
│ │ │ ├── CancellationTokenBinding.cs
│ │ │ ├── CancellationTokenBindingProvider.cs
│ │ │ └── CancellationTokenValueProvider.cs
│ │ ├── ClassOutputConverter.cs
│ │ ├── ConstantValueProvider.cs
│ │ ├── ConverterManager.cs
│ │ ├── Data
│ │ │ ├── ClassDataBinding.cs
│ │ │ ├── ClassDataBindingProvider.cs
│ │ │ ├── CompositeArgumentBindingProvider.cs
│ │ │ ├── ConverterArgumentBindingProvider.cs
│ │ │ ├── DataBindingProvider.cs
│ │ │ ├── IDataArgumentBindingProvider.cs
│ │ │ ├── StringToTArgumentBindingProvider.cs
│ │ │ ├── StructDataBinding.cs
│ │ │ ├── StructDataBindingProvider.cs
│ │ │ └── TToStringArgumentBindingProvider.cs
│ │ ├── DefaultAttributeInvokerDescriptor.cs
│ │ ├── DefaultResolutionPolicy.cs
│ │ ├── ExecutionContext
│ │ │ ├── ExecutionContext.cs
│ │ │ ├── ExecutionContextBindingProvider.cs
│ │ │ └── ExecutionContextOptions.cs
│ │ ├── FuncArgumentBuilder.cs
│ │ ├── FunctionBinding.cs
│ │ ├── FunctionBindingContext.cs
│ │ ├── IArgumentBinding.cs
│ │ ├── IArgumentBindingProvider.cs
│ │ ├── IBindablePath.cs
│ │ ├── IBinding.cs
│ │ ├── IBindingDataProvider.cs
│ │ ├── IBindingProvider.cs
│ │ ├── IFunctionBinding.cs
│ │ ├── ILogger
│ │ │ ├── ILoggerBinding.cs
│ │ │ └── ILoggerBindingProvider.cs
│ │ ├── IOrderedValueBinder.cs
│ │ ├── IResolutionPolicy.cs
│ │ ├── IValueBinder.cs
│ │ ├── IValueProvider.cs
│ │ ├── IWatchable.cs
│ │ ├── IWatcher.cs
│ │ ├── ImmutableWatcher.cs
│ │ ├── Invoke
│ │ │ ├── ClassInvokeBinding.cs
│ │ │ ├── InvokeBinding.cs
│ │ │ └── StructInvokeBinding.cs
│ │ ├── ObjectToTypeConverterFactory.cs
│ │ ├── ObjectValueProvider.cs
│ │ ├── OpenType.cs
│ │ ├── Path
│ │ │ ├── BindingParameterResolver.cs
│ │ │ ├── BindingTemplate.cs
│ │ │ ├── BindingTemplateParser.cs
│ │ │ ├── BindingTemplateSource.cs
│ │ │ └── BindingTemplateToken.cs
│ │ ├── PatternMatcher.cs
│ │ ├── Runtime
│ │ │ ├── AttributeBindingSource.cs
│ │ │ ├── Binder.cs
│ │ │ ├── CollectingDisposable.cs
│ │ │ ├── IAttributeBindingSource.cs
│ │ │ ├── RuntimeBinding.cs
│ │ │ ├── RuntimeBindingProvider.cs
│ │ │ ├── RuntimeBindingWatcher.cs
│ │ │ └── RuntimeValueProvider.cs
│ │ ├── StringConverterObjectToTypeConverter.cs
│ │ ├── StructOutputConverter.cs
│ │ ├── SystemBindingData.cs
│ │ ├── TraceWriter
│ │ │ ├── LoggerTraceWriter.cs
│ │ │ ├── TextWriterTraceAdapter.cs
│ │ │ ├── TraceWriterBinding.cs
│ │ │ └── TraceWriterBindingProvider.cs
│ │ └── ValueBindingContext.cs
│ ├── ClassPropertyAccessorFactory.cs
│ ├── ClassPropertyGetter.cs
│ ├── ClassPropertySetter.cs
│ ├── Config
│ │ ├── ApplyConversion.cs
│ │ ├── ConcurrencyOptionsSetup.cs
│ │ ├── CoreWebJobsOptionsSetup.cs
│ │ ├── DirectInvokeString.cs
│ │ ├── ExtensionConfigContext.cs
│ │ ├── ExtensionOptionsProvider.cs
│ │ ├── FluentBindingRule.cs
│ │ ├── FluentConverterRules.cs
│ │ ├── IExtensionConfigProvider.cs
│ │ ├── IExtensionOptionsProvider.cs
│ │ ├── IWebJobsExtensionConfiguration.cs
│ │ ├── IWebhookProvider.cs
│ │ ├── JobHostFunctionTimeoutOptions.cs
│ │ ├── JobHostOptions.cs
│ │ ├── PrimaryHostCoordinatorOptionsSetup.cs
│ │ ├── WebJobsExtensionConfiguration.cs
│ │ └── WebJobsExtensionOptionsConfiguration.cs
│ ├── ConnectionStringNames.cs
│ ├── Constants.cs
│ ├── ContextAccessor.cs
│ ├── Converters
│ │ ├── AsyncConverter.cs
│ │ ├── ByteToStringConverter.cs
│ │ ├── CharToStringConverter.cs
│ │ ├── CompositeAsyncObjectToTypeConverter.cs
│ │ ├── CompositeObjectToTypeConverter.cs
│ │ ├── CompositeStringToTConverterFactory.cs
│ │ ├── ConversionResult.cs
│ │ ├── GuidToStringConverter.cs
│ │ ├── IAsyncConverter.cs
│ │ ├── IAsyncObjectToTypeConverter.cs
│ │ ├── IConverter.cs
│ │ ├── IObjectToTypeConverter.cs
│ │ ├── IStringToTConverterFactory.cs
│ │ ├── IdentityConverter.cs
│ │ ├── IdentityStringToTConverterFactory.cs
│ │ ├── Int16ToStringConverter.cs
│ │ ├── Int32ToStringConverter.cs
│ │ ├── Int64ToStringConverter.cs
│ │ ├── KnownTypesParseToStringConverterFactory.cs
│ │ ├── SByteToStringConverter.cs
│ │ ├── StringToBigIntegerConverter.cs
│ │ ├── StringToByteConverter.cs
│ │ ├── StringToDateTimeConverter.cs
│ │ ├── StringToDateTimeOffsetConverter.cs
│ │ ├── StringToDecimalConverter.cs
│ │ ├── StringToDoubleConverter.cs
│ │ ├── StringToGuidConverter.cs
│ │ ├── StringToInt16Converter.cs
│ │ ├── StringToInt32Converter.cs
│ │ ├── StringToInt64Converter.cs
│ │ ├── StringToSByteConverter.cs
│ │ ├── StringToSingleConverter.cs
│ │ ├── StringToTConverterFactory.cs
│ │ ├── StringToTimeSpanConverter.cs
│ │ ├── StringToUInt16Converter.cs
│ │ ├── StringToUInt32Converter.cs
│ │ ├── StringToUInt64Converter.cs
│ │ ├── TToStringConverterFactory.cs
│ │ ├── TryParseDelegate.cs
│ │ ├── TryParseStringToTConverter.cs
│ │ ├── TryParseStringToTConverterFactory.cs
│ │ ├── TypeConverterStringToTConverter.cs
│ │ ├── TypeConverterStringToTConverterFactory.cs
│ │ ├── UInt16ToStringConverter.cs
│ │ ├── UInt32ToStringConverter.cs
│ │ └── UInt64ToStringConverter.cs
│ ├── DefaultExtensionRegistry.cs
│ ├── DefaultExtensionRegistryFactory.cs
│ ├── DefaultNameResolver.cs
│ ├── Diagnostics
│ │ └── ExceptionFormatter.cs
│ ├── Dispatch
│ │ ├── DispatchQueueHandler.cs
│ │ ├── HostMessageListenerFactory.cs
│ │ ├── IDispatchQueueHandler.cs
│ │ ├── ILoadBalancerQueue.cs
│ │ ├── IMessageHandler.cs
│ │ ├── InMemoryDispatchQueueHandler.cs
│ │ └── SharedQueueHandler.cs
│ ├── Exceptions
│ │ ├── FunctionException.cs
│ │ └── RecoverableException.cs
│ ├── Executors
│ │ ├── AbortListenerFunctionExecutor.cs
│ │ ├── ActivatorInstanceFactory.cs
│ │ ├── BindingSource.cs
│ │ ├── DefaultHostIdProvider.cs
│ │ ├── DefaultInstanceServicesProvider.cs
│ │ ├── DefaultInstanceServicesProviderFactory.cs
│ │ ├── DefaultJobActivator.cs
│ │ ├── DelayedException.cs
│ │ ├── DelegatingFunctionExecutor.cs
│ │ ├── ExceptionDispatchInfoDelayedException.cs
│ │ ├── FixedHostIdProvider.cs
│ │ ├── FunctionActivityStatus.cs
│ │ ├── FunctionExecutor.cs
│ │ ├── FunctionExecutorExtensions.cs
│ │ ├── FunctionInstance.cs
│ │ ├── FunctionInstanceExtensions.cs
│ │ ├── FunctionInstanceFactory.cs
│ │ ├── FunctionInstanceFactoryContext.cs
│ │ ├── FunctionInstanceFactoryContextOfT.cs
│ │ ├── FunctionInvoker.cs
│ │ ├── FunctionInvokerFactory.cs
│ │ ├── FunctionInvokerWrapper.cs
│ │ ├── FunctionOutputIntervals.cs
│ │ ├── FunctionParameterLogIntervals.cs
│ │ ├── FunctionResult.cs
│ │ ├── HeartbeatFunctionExecutor.cs
│ │ ├── HeartbeatIntervals.cs
│ │ ├── HostIdValidator.cs
│ │ ├── HostMessageExecutor.cs
│ │ ├── IActivatorInstanceFactory.cs
│ │ ├── IBindingSource.cs
│ │ ├── IDelayedException.cs
│ │ ├── IFunctionActivityStatusProvider.cs
│ │ ├── IFunctionExecutor.cs
│ │ ├── IFunctionInstance.cs
│ │ ├── IFunctionInstanceFactory.cs
│ │ ├── IFunctionInvoker.cs
│ │ ├── IFunctionInvokerEx.cs
│ │ ├── IHostIdProvider.cs
│ │ ├── IInstanceServicesProvider.cs
│ │ ├── IInstanceServicesProviderFactory.cs
│ │ ├── IJobHostContextFactory.cs
│ │ ├── IJobInvoker.cs
│ │ ├── IMethodInvoker.cs
│ │ ├── IRetryNotifier .cs
│ │ ├── ITriggeredFunctionExecutor.cs
│ │ ├── Internal
│ │ │ └── FunctionInvoker.cs
│ │ ├── JobHostContext.cs
│ │ ├── JobHostContextFactory.cs
│ │ ├── MethodInvokerFactory.cs
│ │ ├── MethodInvokerWithReturnValue.cs
│ │ ├── NullInstanceFactory.cs
│ │ ├── ShutdownFunctionExecutor.cs
│ │ ├── TaskMethodInvoker.cs
│ │ ├── TriggeredFunctionData.cs
│ │ ├── TriggeredFunctionExecutor.cs
│ │ ├── VoidMethodInvoker.cs
│ │ └── VoidTaskMethodInvoker.cs
│ ├── ExponentialBackoffRetryAttribute.cs
│ ├── Extensions
│ │ ├── ExceptionExtensions.cs
│ │ ├── ExtensionInfo.cs
│ │ ├── FunctionMetadata .cs
│ │ ├── IConfigurationExtensions.cs
│ │ ├── IExtensionRegistryExtensions.cs
│ │ ├── IJobHostMetadataProvider.cs
│ │ ├── IJobHostMetadataProviderFactory.cs
│ │ ├── JobHostMetadataProvider.cs
│ │ └── JobHostMetadataProviderFactory.cs
│ ├── FastTableLoggerProvider.cs
│ ├── Filters
│ │ ├── FunctionExceptionContext.cs
│ │ ├── FunctionExceptionFilterAttribute.cs
│ │ ├── FunctionExecutedContext.cs
│ │ ├── FunctionExecutingContext.cs
│ │ ├── FunctionFilterContext.cs
│ │ ├── FunctionInvocationContext.cs
│ │ ├── FunctionInvocationFilterAttribute.cs
│ │ ├── IFunctionExceptionFilter.cs
│ │ ├── IFunctionFilter.cs
│ │ └── IFunctionInvocationFilter.cs
│ ├── FixedDelayRetryAttribute.cs
│ ├── FuncConverter.cs
│ ├── FunctionInvocationException.cs
│ ├── FunctionTimeoutException.cs
│ ├── GlobalSuppressions.cs
│ ├── HostContainerNames.cs
│ ├── HostDirectoryNames.cs
│ ├── HostQueueNames.cs
│ ├── Hosting
│ │ ├── DefaultStartupTypeLocator.cs
│ │ ├── DrainModeManager.cs
│ │ ├── FunctionDataCache
│ │ │ ├── FunctionDataCacheKey.cs
│ │ │ ├── ICacheAwareReadObject.cs
│ │ │ ├── ICacheAwareWriteObject.cs
│ │ │ ├── IFunctionDataCache.cs
│ │ │ └── SharedMemoryMetadata.cs
│ │ ├── IDrainModeManager.cs
│ │ ├── IPrimaryHostStateProvider.cs
│ │ ├── ITrackedConfigurationBuilder.cs
│ │ ├── ITrackedServiceCollection.cs
│ │ ├── IWebJobsBuilder.cs
│ │ ├── IWebJobsConfigurationBuilder.cs
│ │ ├── IWebJobsConfigurationStartup.cs
│ │ ├── IWebJobsExtensionBuilder.cs
│ │ ├── IWebJobsStartup.cs
│ │ ├── IWebJobsStartup2.cs
│ │ ├── IWebJobsStartupTypeLocator.cs
│ │ ├── JobHostService.cs
│ │ ├── OptionsFormatter
│ │ │ ├── IOptionsFormatter.Generic.cs
│ │ │ ├── IOptionsFormatter.cs
│ │ │ ├── IOptionsLoggingSource.cs
│ │ │ ├── LoggerFilterOptionsFormatter.cs
│ │ │ ├── OptionsLoggingService.cs
│ │ │ ├── OptionsLoggingSource.cs
│ │ │ └── WebJobsOptionsFactory.cs
│ │ ├── PrimaryHostCoordinator.cs
│ │ ├── PrimaryHostCoordinatorOptions.cs
│ │ ├── PrimaryHostStateProvider.cs
│ │ ├── TrackedConfigurationBuilder.cs
│ │ ├── TrackedServiceCollection.cs
│ │ ├── WebJobsBuilder.cs
│ │ ├── WebJobsBuilderContext.cs
│ │ ├── WebJobsBuilderExtensions.cs
│ │ ├── WebJobsConfigurationBuilder.cs
│ │ ├── WebJobsExtensionBuilder.cs
│ │ ├── WebJobsExtensionBuilderExtensions.cs
│ │ ├── WebJobsHostBuilderExtensions.cs
│ │ ├── WebJobsServiceCollectionExtensions.cs
│ │ └── WebJobsStartupAttribute.cs
│ ├── IContextGetter.cs
│ ├── IContextSetter.cs
│ ├── IConverterManager.cs
│ ├── IExtensionRegistry.cs
│ ├── IExtensionRegistryFactory.cs
│ ├── IFactory.cs
│ ├── IJobActivator.cs
│ ├── IJobActivatorEx.cs
│ ├── IJobHost.cs
│ ├── INameResolver.cs
│ ├── IPropertyAccessorFactory.cs
│ ├── IPropertyGetter.cs
│ ├── IPropertySetter.cs
│ ├── IRetryStrategy.cs
│ ├── ITypeLocator.cs
│ ├── Indexers
│ │ ├── CompositeBindingProviderFactory.cs
│ │ ├── DefaultTriggerBindingFactory.cs
│ │ ├── DefaultTypeLocator.cs
│ │ ├── FunctionDefinition.cs
│ │ ├── FunctionIndex.cs
│ │ ├── FunctionIndexProvider.cs
│ │ ├── FunctionIndexer.cs
│ │ ├── FunctionIndexingException.cs
│ │ ├── IFunctionDefinition.cs
│ │ ├── IFunctionIndex.cs
│ │ ├── IFunctionIndexCollector.cs
│ │ ├── IFunctionIndexLookup.cs
│ │ ├── IFunctionIndexProvider.cs
│ │ └── MethodInfoExtensions.cs
│ ├── JobHost.cs
│ ├── Listeners
│ │ ├── CompositeListener.cs
│ │ ├── CompositeListenerFactory.cs
│ │ ├── FunctionListener.cs
│ │ ├── FunctionListenerDecorator.cs
│ │ ├── FunctionListenerException.cs
│ │ ├── HeartbeatListener.cs
│ │ ├── HostListenerFactory.cs
│ │ ├── IListener.cs
│ │ ├── IListenerDecorator.cs
│ │ ├── IListenerFactory.cs
│ │ ├── ISharedContextProvider.cs
│ │ ├── ISharedListener.cs
│ │ ├── ITriggerExecutor.cs
│ │ ├── ListenerDecoratorContext.cs
│ │ ├── ListenerFactoryContext.cs
│ │ ├── ListenerFactoryListener.cs
│ │ ├── NullListener.cs
│ │ ├── NullListenerFactory.cs
│ │ ├── SharedContextProvider.cs
│ │ ├── ShutdownListener.cs
│ │ └── TimerListener.cs
│ ├── Loggers
│ │ ├── CompositeFunctionEventCollector.cs
│ │ ├── CompositeFunctionInstanceLogger.cs
│ │ ├── EventCollectorFactory.cs
│ │ ├── FunctionInstanceLogEntry.cs
│ │ ├── FunctionInstanceLogger.cs
│ │ ├── IDashboardLoggingSetup.cs
│ │ ├── IEventCollectorFactory.cs
│ │ ├── IEventCollectorProvider.cs
│ │ ├── IFunctionInstanceLogger.cs
│ │ ├── IFunctionInstanceLoggerProvider.cs
│ │ ├── IFunctionOutput.cs
│ │ ├── IFunctionOutputDefinition.cs
│ │ ├── IFunctionOutputLogger.cs
│ │ ├── IFunctionOutputLoggerProvider.cs
│ │ ├── IFunctionParameterLog.cs
│ │ ├── IHostInstanceLogger.cs
│ │ ├── IHostInstanceLoggerProvider.cs
│ │ ├── Logger
│ │ │ ├── Aggregator
│ │ │ │ ├── FunctionResultAggregate.cs
│ │ │ │ ├── FunctionResultAggregator.cs
│ │ │ │ ├── FunctionResultAggregatorFactory.cs
│ │ │ │ └── FunctionResultAggregatorOptions.cs
│ │ │ ├── Constants
│ │ │ │ ├── LogCategories.cs
│ │ │ │ ├── LogConstants.cs
│ │ │ │ └── ScopeKeys.cs
│ │ │ ├── FunctionOutputLogger
│ │ │ │ ├── FunctionOutputLogger.cs
│ │ │ │ └── FunctionOutputLoggerProvider.cs
│ │ │ ├── LoggerExtensions.cs
│ │ │ └── States
│ │ │ │ ├── FunctionResultAggregateState.cs
│ │ │ │ ├── FunctionResultState.cs
│ │ │ │ └── MetricState.cs
│ │ ├── NullFunctionOutputDefinition.cs
│ │ ├── NullFunctionOutputLogger.cs
│ │ └── NullHostInstanceLogger.cs
│ ├── NameResolverExtensions.cs
│ ├── NativeMethods.cs
│ ├── ObjectDictionaryConverter.cs
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ ├── Resource.Designer.cs
│ │ └── Resource.resx
│ ├── PropertyAccessorFactory.cs
│ ├── PropertyHelper.cs
│ ├── Protocols
│ │ ├── AbortHostInstanceMessage.cs
│ │ ├── BinderParameterDescriptor.cs
│ │ ├── BinderParameterLog.cs
│ │ ├── BinderParameterLogItem.cs
│ │ ├── BindingDataParameterDescriptor.cs
│ │ ├── BlobMetadataKeys.cs
│ │ ├── BlobNames.cs
│ │ ├── CallAndOverrideMessage.cs
│ │ ├── CallerSuppliedParameterDescriptor.cs
│ │ ├── CancellationTokenParameterDescriptor.cs
│ │ ├── CloudStorageAccountParameterDescriptor.cs
│ │ ├── ConsoleOutputParameterDescriptor.cs
│ │ ├── ContainerNames.cs
│ │ ├── DictionaryExtensions.cs
│ │ ├── ExecutionReason.cs
│ │ ├── FunctionCompletedMessage.cs
│ │ ├── FunctionDescriptor.cs
│ │ ├── FunctionFailure.cs
│ │ ├── FunctionStartedMessage.cs
│ │ ├── FunctionStartedMessageExtensions.cs
│ │ ├── FunctionStatusMessage.cs
│ │ ├── HeartbeatDescriptor.cs
│ │ ├── HostMessage.cs
│ │ ├── HostOutputMessage.cs
│ │ ├── HostStartedMessage.cs
│ │ ├── IHeartbeatCommand.cs
│ │ ├── IPersistentQueueReader.cs
│ │ ├── IPersistentQueueWriter.cs
│ │ ├── JTokenExtensions.cs
│ │ ├── JsonSerialization.cs
│ │ ├── JsonTypeNameAttribute.cs
│ │ ├── LocalBlobDescriptor.cs
│ │ ├── NullHeartbeatCommand.cs
│ │ ├── ParameterDescriptor.cs
│ │ ├── ParameterDisplayHints.cs
│ │ ├── ParameterLog.cs
│ │ ├── PersistentQueueMessage.cs
│ │ ├── PolymorphicJsonConverter.cs
│ │ ├── ReadBlobParameterLog.cs
│ │ ├── ServiceBusParameterDescriptor.cs
│ │ ├── ServiceBusTriggerParameterDescriptor.cs
│ │ ├── SingletonParameterLog.cs
│ │ ├── TableParameterLog.cs
│ │ ├── TextParameterLog.cs
│ │ ├── TriggerParameterDescriptor.cs
│ │ ├── WebJobRunIdentifier.cs
│ │ ├── WebJobTypes.cs
│ │ ├── WebSitesKnownKeyNames.cs
│ │ └── WriteBlobParameterLog.cs
│ ├── README.md
│ ├── RetryAttribute.cs
│ ├── RetryContext.cs
│ ├── Scale
│ │ ├── AggregateScaleStatus.cs
│ │ ├── ConcurrencyManager.cs
│ │ ├── ConcurrencyManagerService.cs
│ │ ├── ConcurrencyOptions.cs
│ │ ├── ConcurrencyStatus.cs
│ │ ├── ConcurrencyThrottleAggregateStatus.cs
│ │ ├── ConcurrencyThrottleStatus.cs
│ │ ├── DefaultConcurrencyThrottleManager.cs
│ │ ├── DefaultHostProcessMonitor.cs
│ │ ├── FunctionConcurrencySnapshot.cs
│ │ ├── HostConcurrencySnapshot.cs
│ │ ├── HostHealthState.cs
│ │ ├── HostHealthThrottleProvider.cs
│ │ ├── HostProcessStatus.cs
│ │ ├── IConcurrencyStatusRepository.cs
│ │ ├── IConcurrencyThrottleManager.cs
│ │ ├── IConcurrencyThrottleProvider.cs
│ │ ├── IHostProcessMonitor.cs
│ │ ├── IScaleMetricsRepository.cs
│ │ ├── IScaleMonitor.cs
│ │ ├── IScaleMonitorManager.cs
│ │ ├── IScaleMonitorProvider.cs
│ │ ├── IScaleStatusProvider.cs
│ │ ├── ITargetScaler.cs
│ │ ├── ITargetScalerManager.cs
│ │ ├── ITargetScalerProvider.cs
│ │ ├── InMemoryScaleMetricsRepository.cs
│ │ ├── NullConcurrencyStatusRepository.cs
│ │ ├── NullScaleMetricsRepository.cs
│ │ ├── ProcessMonitor.cs
│ │ ├── ProcessStats.cs
│ │ ├── ScaleManager.cs
│ │ ├── ScaleMetrics.cs
│ │ ├── ScaleMonitorDescriptor.cs
│ │ ├── ScaleMonitorManager.cs
│ │ ├── ScaleMonitorService.cs
│ │ ├── ScaleOptions.cs
│ │ ├── ScaleStatus.cs
│ │ ├── ScaleStatusContext.cs
│ │ ├── ScaleVote.cs
│ │ ├── TargetScalerContext.cs
│ │ ├── TargetScalerDescriptor.cs
│ │ ├── TargetScalerManager.cs
│ │ ├── TargetScalerResult.cs
│ │ ├── ThreadPoolStarvationThrottleProvider.cs
│ │ ├── ThrottleState.cs
│ │ └── TriggerMetadata.cs
│ ├── SharedListenerAttribute.cs
│ ├── SharedMemoryAttribute.cs
│ ├── Singleton
│ │ ├── IDistributedLock.cs
│ │ ├── IDistributedLockManager.cs
│ │ ├── InMemoryDistributedLockManager.cs
│ │ ├── RenewableLockHandle.cs
│ │ ├── SingletonListener.cs
│ │ ├── SingletonLock.cs
│ │ ├── SingletonManager.cs
│ │ ├── SingletonOptions.cs
│ │ └── SingletonValueProvider.cs
│ ├── StructPropertyAccessorFactory.cs
│ ├── StructPropertyGetter.cs
│ ├── StructPropertySetter.cs
│ ├── SupportsRetryAttribute.cs
│ ├── Timers
│ │ ├── DefaultWebJobsExceptionHandlerFactory.cs
│ │ ├── FixedDelayStrategy.cs
│ │ ├── IDelayStrategy.cs
│ │ ├── IRecurrentCommand.cs
│ │ ├── ITaskSeriesCommand.cs
│ │ ├── ITaskSeriesTimer.cs
│ │ ├── IWebJobsExceptionHandler.cs
│ │ ├── IWebJobsExceptionHandlerFactory.cs
│ │ ├── LinearSpeedupStrategy.cs
│ │ ├── NullRecurrentCommand.cs
│ │ ├── RandomExtensions.cs
│ │ ├── RandomizedExponentialBackoffStrategy.cs
│ │ ├── RecurrentTaskSeriesCommand.cs
│ │ ├── TaskSeriesCommandResult.cs
│ │ ├── TaskSeriesTimer.cs
│ │ └── WebJobsExceptionHandler.cs
│ ├── TraceEvent.cs
│ ├── TraceSource.cs
│ ├── TraceWriter.cs
│ ├── Triggers
│ │ ├── CompositeTriggerBindingProvider.cs
│ │ ├── ITriggerBinding.cs
│ │ ├── ITriggerBindingProvider.cs
│ │ ├── ITriggerBindingStrategy.cs
│ │ ├── ITriggerData.cs
│ │ ├── ITriggerDataArgumentBinding.cs
│ │ ├── ITriggeredFunctionBinding.cs
│ │ ├── ITriggeredFunctionInstanceFactory.cs
│ │ ├── StrategyTriggerBinding.cs
│ │ ├── TriggerArgumentBinding
│ │ │ ├── ArrayTriggerArgumentBinding.cs
│ │ │ ├── CustomTriggerArgumentBinding.cs
│ │ │ ├── PocoTriggerArgumentBinding.cs
│ │ │ ├── SimpleTriggerArgumentBinding.cs
│ │ │ └── StringTriggerArgumentBinding.cs
│ │ ├── TriggerBindingProviderContext.cs
│ │ ├── TriggerBindingSource.cs
│ │ ├── TriggerData.cs
│ │ ├── TriggeredFunctionBinding.cs
│ │ └── TriggeredFunctionInstanceFactory.cs
│ ├── TypeUtility.cs
│ ├── Utility.cs
│ ├── WebJobs.Host.Sources.csproj
│ ├── WebJobs.Host.csproj
│ ├── WebSitesKnownKeyNames.cs
│ └── WebjobsShutdownWatcher.cs
├── Microsoft.Azure.WebJobs.Logging.ApplicationInsights
│ ├── ApplicationInsightsLogger.cs
│ ├── ApplicationInsightsLoggerFilterRule.cs
│ ├── ApplicationInsightsLoggerOptions.cs
│ ├── ApplicationInsightsLoggerProvider.cs
│ ├── Constants
│ │ ├── ApplicationInsightsDiagnosticConstants.cs
│ │ ├── ApplicationInsightsScopeKeys.cs
│ │ └── LoggingConstants.cs
│ ├── DependencyTrackingOptions.cs
│ ├── DictionaryLoggerScope.cs
│ ├── Directory.Version.props
│ ├── Extensions
│ │ ├── ApplicationInsightsLoggingBuilderExtensions.cs
│ │ ├── ApplicationInsightsServiceCollectionExtensions.cs
│ │ └── LogLevelExtension.cs
│ ├── GlobalSuppressions.cs
│ ├── HttpAutoCollectionOptions.cs
│ ├── IRoleInstanceProvider.cs
│ ├── ISdkVersionProvider.cs
│ ├── Initializers
│ │ ├── MetricSdkVersionTelemetryInitializer.cs
│ │ ├── NullTelemetryInitializer.cs
│ │ ├── WebJobsRoleEnvironmentTelmetryInitializer.cs
│ │ └── WebJobsTelemetryInitializer.cs
│ ├── LoggerRuleSelector.cs
│ ├── NullTelemetryModule.cs
│ ├── Processors
│ │ ├── DelayedSamplingProcessor.cs
│ │ ├── FilteringTelemetryProcessor.cs
│ │ ├── OperationFilteringTelemetryProcessor.cs
│ │ └── TelemetryProcessorExtensions.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── ProviderAliasUtilities.cs
│ ├── QuickPulseInitializationScheduler.cs
│ ├── README.md
│ ├── SelfDiagnostics
│ │ ├── ApplicationInsightsEventListener.cs
│ │ └── SelfDiagnosticsTelemetryModule.cs
│ ├── TokenCredentialOptions.cs
│ └── WebJobs.Logging.ApplicationInsights.csproj
├── Microsoft.Azure.WebJobs.Logging
│ ├── ActivationEvent.cs
│ ├── Directory.Version.props
│ ├── Entities
│ │ ├── ContainerActiveEntity.cs
│ │ ├── FunctionDefinitionEntity.cs
│ │ ├── InstanceCountEntity.cs
│ │ ├── InstanceTableEntity.cs
│ │ ├── RecentPerFuncEntity.cs
│ │ └── TimelineAggregateEntity.cs
│ ├── FunctionId.cs
│ ├── FunctionInstanceLogItem.cs
│ ├── FunctionInstanceStatus.cs
│ ├── FunctionVolumeTimelineEntry.cs
│ ├── GlobalSuppressions.cs
│ ├── IAggregateEntry.cs
│ ├── IFunctionDefinition.cs
│ ├── IFunctionInstanceBaseEntry.cs
│ ├── ILogReader.cs
│ ├── ILogTableProvider.cs
│ ├── ILogWriter.cs
│ ├── IRecentFunctionEntry.cs
│ ├── Internal
│ │ ├── CloudTableInstanceCountLogger.cs
│ │ ├── ContainerActiveLogger.cs
│ │ ├── DefaultLogTableProvider.cs
│ │ ├── IEntityWithEpoch.cs
│ │ ├── InstanceCountLoggerBase.cs
│ │ ├── LogReader.cs
│ │ ├── LogWriter.cs
│ │ ├── ProjectionHelper.cs
│ │ ├── TableScheme.cs
│ │ ├── TimeBucket.cs
│ │ └── Utility.cs
│ ├── LogFactory.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── README.md
│ ├── RecentFunctionQuery.cs
│ ├── Segment.cs
│ └── WebJobs.Logging.csproj
├── Microsoft.Azure.WebJobs.Rpc.Core
│ ├── Internal
│ │ └── WebJobsRpcEndpointDataSource.cs
│ ├── README.md
│ └── WebJobs.Rpc.Core.csproj
├── Microsoft.Azure.WebJobs.Shared
│ ├── DictionaryExtensions.cs
│ ├── Sanitizer.cs
│ └── WebJobs.Shared.csproj
└── Microsoft.Azure.WebJobs
│ ├── AppSettingAttribute.cs
│ ├── AutoResolveAttribute.cs
│ ├── BinderExtensions.cs
│ ├── BindingAttribute.cs
│ ├── ConnectionProviderAttribute.cs
│ ├── ConnectionStringAttribute.cs
│ ├── DisableAttribute.cs
│ ├── ExtensionAttribute.cs
│ ├── FunctionNameAttribute.cs
│ ├── GlobalSuppressions.cs
│ ├── IAsyncCollector.cs
│ ├── IAttributeInvokeDescriptor.cs
│ ├── IBinder.cs
│ ├── ICollector.cs
│ ├── IConnectionProvider.cs
│ ├── NoAutomaticTriggerAttribute.cs
│ ├── ParameterBindingData.cs
│ ├── README.md
│ ├── SingletonAttribute.cs
│ ├── SingletonMode.cs
│ ├── SingletonScope.cs
│ ├── StorageAccountAttribute.cs
│ ├── TimeoutAttribute.cs
│ └── WebJobs.csproj
├── stylecop.json
└── test
├── Microsoft.Azure.WebJobs.Extensions.Rpc.UnitTests
├── Implementation
│ ├── ExtensionEndpointDataSourceTests.cs
│ └── GrpcExtensionTests.cs
├── Usings.cs
├── WebJobs.Extensions.Rpc.UnitTests.csproj
├── WebJobsExtensionBuilderExtensionsTests.cs
└── protos
│ └── test.proto
├── Microsoft.Azure.WebJobs.Host.EndToEndTests
├── ApplicationInsights
│ ├── ApplicationInsightsEndToEndTests.cs
│ ├── HttpDependencyCollectionTests.cs
│ ├── ServiceBusRequestAndDependencyCollectionTests.cs
│ ├── TelemetryValidationHelpers.cs
│ └── TestTelemteryChannel.cs
├── AsyncCancellationEndToEndTests.cs
├── AsyncChainEndToEndTests.cs
├── BlobStorageConcurrencyStatusRepositoryTests.cs
├── CustomObject.cs
├── DispatchQueueEndToEndTests.cs
├── DynamicConcurrencyEndToEndTests.cs
├── ExtensionWithDispatchQueue.cs
├── InternalStorageTests.cs
├── ParallelExecutionTests.cs
├── Properties
│ └── AssemblyInfo.cs
├── Scale
│ └── ScaleHostEndToEndTests.cs
├── SingletonEndToEndTests.cs
├── WebJobs.Host.EndToEndTests.csproj
└── appsettings.json
├── Microsoft.Azure.WebJobs.Host.FunctionalTests
├── AttributeClonerTests.cs
├── AzureStorageProviderTests.cs
├── BlobServiceClientProviderTests.cs
├── Configuration
│ └── WebJobsExtensionOptionsConfigurationTests.cs
├── DataBindingFunctionalTests.cs
├── DataBindingProviderTests.cs
├── DependencyInjection
│ └── DependencyInjectionTests.cs
├── DispatchQueueTests.cs
├── FunctionIndexCollector.cs
├── FunctionalTest.cs
├── HostListenerFactoryTests.cs
├── ILoggerTests.cs
├── Indexers
│ ├── FunctionIndexerFactory.cs
│ ├── FunctionIndexerIntegrationErrorTests.cs
│ ├── FunctionIndexerIntegrationTests.cs
│ └── FunctionIndexerTests.cs
├── JobHostMetadataProviderTests.cs
├── JobHostOptionsTests.cs
├── JobHostTests.cs
├── PrimaryHostCoordinatorTests.cs
├── Properties
│ └── AssemblyInfo.cs
├── PublicSurfaceTests.cs
├── Singleton
│ ├── SingletonConfigurationTests.cs
│ ├── SingletonEnd2EndTests.cs
│ ├── SingletonListenerTests.cs
│ ├── SingletonLockTests.cs
│ ├── SingletonManagerStorageIntegrationTests.cs
│ ├── SingletonManagerTests.cs
│ └── SingletonValueProviderTests.cs
├── StorageServiceUriOptionsTests.cs
├── TestDoubles
│ ├── BlobAttributes.cs
│ ├── ExpectInstanceFailureTaskFunctionInstanceLogger.cs
│ ├── ExpectInstanceSuccessTaskFunctionInstanceLogger.cs
│ ├── FakeFunctionInstanceLoggerProvider.cs
│ ├── StrictEncodings.cs
│ └── TaskBackgroundExceptionDispatcher.cs
├── TypeUtilityTests.cs
├── WebJobs.Host.FunctionalTests.csproj
└── appsettings.json
├── Microsoft.Azure.WebJobs.Host.TestCommon
├── AzureComponentFactoryWrapper.cs
├── Directory.Version.props
├── EnvVarHolder.cs
├── ExceptionAssert.cs
├── ExpectManualCompletionTaskFunctionInstanceLogger.cs
├── Fakes
│ ├── FakeActivator.cs
│ ├── FakeNameResolver.cs
│ ├── FakeTypeLocator.cs
│ ├── NullFunctionInstanceLogger.cs
│ ├── NullFunctionInstanceLoggerProvider.cs
│ ├── NullFunctionOutputLoggerProvider.cs
│ └── NullHostInstanceLoggerProvider.cs
├── InvariantCultureFixture.cs
├── JobHostFactory.cs
├── LogMessage.cs
├── Properties
│ └── AssemblyInfo.cs
├── QueueServiceClientProvider.cs
├── README.md
├── RandomNameResolver.cs
├── ScriptHelpers.cs
├── TaskExtensions.cs
├── TestConfigurationBuilderExtensions.cs
├── TestExceptionHandler.cs
├── TestHelpers.cs
├── TestJobHost.cs
├── TestLogger.cs
├── TestLoggerProvider.cs
├── TestTraits.cs
├── WebJobs.Host.TestCommon.csproj
└── WebJobsShutdownContext.cs
├── Microsoft.Azure.WebJobs.Host.UnitTests
├── AttributeClonerTests.cs
├── Bindings
│ ├── AmbientBindingContextTests.cs
│ ├── BindingContextTests.cs
│ ├── BindingDataPathHelperTests.cs
│ ├── BindingDataProviderTests.cs
│ ├── ExecutionContext
│ │ └── ExecutionContextBindingTests.cs
│ ├── FunctionBindingTests.cs
│ ├── Invoke
│ │ └── InvokeBindingTests.cs
│ ├── Path
│ │ ├── BindingParameterResolverTests.cs
│ │ ├── BindingTemplateParserTests.cs
│ │ └── BindingTemplateTests.cs
│ └── TraceWriter
│ │ └── TextWriterTraceAdapterTests.cs
├── ClassPropertyGetterTests.cs
├── ClassPropertySetterTests.cs
├── Common
│ ├── BindToGenericItemTests.cs
│ ├── BindToStreamTests.cs
│ ├── BindingPathAttribute.cs
│ ├── BindingProviderFilterTests.cs
│ ├── CollectorTests.cs
│ ├── FakeItemTests.cs
│ ├── HostCallTestsWithBindingData.cs
│ ├── TriggerAdapterTest.cs
│ ├── TriggerTests.cs
│ ├── TypedCollectorTests.cs
│ └── ValidationTests.cs
├── Configuration
│ ├── PrimaryHostCoordinatorOptionsSetupTests.cs
│ └── WebJobsExtensionOptionsConfigurationTests.cs
├── ConfigurationExtensionsTests.cs
├── ConverterManagerExtensions.cs
├── ConverterManagerTests.cs
├── Converters
│ ├── CultureInfoContext.cs
│ ├── StringToTConverterFactoryTests.cs
│ └── TToStringConverterFactoryTests.cs
├── DefaultExtensionRegistryTests.cs
├── DefaultNameResolverTests.cs
├── EmptyFunctionIndexProvider.cs
├── ExceptionFormatterTests.cs
├── Executors
│ ├── ActivatorInstanceFactoryTests.cs
│ ├── DefaultHostIdProviderTests.cs
│ ├── DefaultJobActivatorTests.cs
│ ├── FunctionExecutorExtensionsTests.cs
│ ├── FunctionExecutorTestHelper.cs
│ ├── FunctionExecutorTests.cs
│ ├── FunctionInvokerFactoryTests.cs
│ ├── FunctionInvokerTests.cs
│ ├── FunctionResultTests.cs
│ ├── MethodInvokerFactoryTests.cs
│ ├── NullInstanceFactoryTests.cs
│ ├── TaskMethodInvokerTests.cs
│ ├── TriggeredFunctionExecutorTests.cs
│ └── VoidMethodInvokerTests.cs
├── ExtensionConfigContextTests.cs
├── FakeQueue
│ ├── FakeQeueueTriggerAttribute.cs
│ ├── FakeQueueAttribute.cs
│ ├── FakeQueueClient.cs
│ ├── FakeQueueData.cs
│ ├── FakeQueueDataBatch.cs
│ ├── FakeQueueListener.cs
│ ├── FakeQueueTriggerBindingProvider.cs
│ └── FakeQueueTriggerBindingStrategy.cs
├── Filters
│ └── FunctionFilterTests.cs
├── GlobalSuppressions.cs
├── HostQueueNamesTest.cs
├── Hosting
│ ├── DrainModeManagerTests.cs
│ ├── FunctionDataCacheKeyTests.cs
│ ├── HostBuilderExtensionsTests.cs
│ ├── WebJobsConfigurationStartupTests.cs
│ ├── WebJobsOptionsFactoryTests.cs
│ └── WebJobsStartupTests.cs
├── Indexers
│ ├── DefaultTypeLocatorTests.cs
│ ├── FunctionNameTests.cs
│ ├── NameResolverTests.cs
│ └── ReturnValueTests.cs
├── JobHostContextTests.cs
├── JobHostMetadataProviderTests.cs
├── Listeners
│ └── FunctionListenerTests.cs
├── Loggers
│ ├── ApplicationInsightsConfigurationTests.cs
│ ├── ApplicationInsightsEventListenerTests.cs
│ ├── ApplicationInsightsLoggerProviderTests.cs
│ ├── ApplicationInsightsLoggerTests.cs
│ ├── FilteringTelemetryProcessorTests.cs
│ ├── FunctionExecutorLogOrdering.cs
│ ├── FunctionInstanceLoggerTests.cs
│ ├── FunctionResultAggregatorConfigurationTests.cs
│ ├── FunctionResultAggregatorTests.cs
│ ├── LogCategoriesTests.cs
│ ├── LoggerExtensionsTests.cs
│ ├── PerfCounterSdkVersionTelemetryInitializerTest.cs
│ ├── TestTelemetryChannel.cs
│ ├── TokenCredentialOptionsTests.cs
│ ├── WebJobsRoleEnvironmentTelemetryInitializerTests.cs
│ ├── WebJobsRoleInstanceProviderTests.cs
│ └── WebJobsTelemetryInitializerTests.cs
├── Properties
│ └── AssemblyInfo.cs
├── PropertyAccessorFactoryTests.cs
├── Protocols
│ ├── HostMessageTests.cs
│ ├── HostStartedMessageTests.cs
│ ├── JsonSerializationTests.cs
│ ├── JsonTypeNameAttributeTests.cs
│ ├── PolymorphicJsonConverterTests.cs
│ └── ProtocolSerializationTests.cs
├── PublicSurfaceTests.cs
├── Retry
│ └── RetryAttributeTests.cs
├── Scale
│ ├── ConcurrencyManagerServiceTests.cs
│ ├── ConcurrencyManagerTests.cs
│ ├── ConcurrencyOptionSetupTests.cs
│ ├── ConcurrencyOptionsTests.cs
│ ├── ConcurrencyStatusSnapshotTests.cs
│ ├── ConcurrencyStatusTests.cs
│ ├── DefaultConcurrencyThrottleManagerTests.cs
│ ├── DefaultHostProcessMonitorTests.cs
│ ├── HostHealthThrottleProviderTests.cs
│ ├── InMemoryScaleMetricsRepositoryTest.cs
│ ├── ProcessMonitorTests.cs
│ ├── ScaleManagerTests.cs
│ ├── ScaleMonitorServiceTests.cs
│ ├── TestScaleMonitor.cs
│ ├── TestTargetScaler.cs
│ └── ThreadPoolStarvationThrottleProviderTests.cs
├── StructPropertyGetterTests.cs
├── StructPropertySetterTests.cs
├── TimeoutAttributeTests.cs
├── Timers
│ ├── LinearSpeedupStrategyTests.cs
│ ├── RandomizedExponentialBackoffStrategyTests.cs
│ └── TaskSeriesTimerTests.cs
├── UtilityTests.cs
├── WebJobs.Host.UnitTests.csproj
├── WebJobsShutdownWatcherTests.cs
└── appsettings.json
├── Microsoft.Azure.WebJobs.Logging.FunctionalTests
├── FunctionIdTests.cs
├── GlobalSuppressions.cs
├── InstanceCountLoggerBaseTests.cs
├── LoggerTest.cs
├── ProjectionTests.cs
├── SafeCreateTests.cs
├── TimeBucket.cs
└── WebJobs.Logging.FunctionalTests.csproj
└── TestProjects
└── FSharpFunctions
├── FSharpFunctions.fsproj
└── Library.fs
/.gitattributes:
--------------------------------------------------------------------------------
1 | * text
2 |
3 | *.cs diff merge text
4 |
5 | *.eot binary
6 | *.otf binary
7 | *.png binary
8 | *.snk binary
9 | *.ttf binary
10 | *.woff binary
11 |
--------------------------------------------------------------------------------
/Directory.Build.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | $(MSBuildThisFileDirectory)
6 | $(RepoRoot)eng/
7 | $(EngRoot)build/
8 | $(EngRoot)res/
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Directory.Build.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/ISSUE_TEMPLATE.md:
--------------------------------------------------------------------------------
1 |
2 | Please provide a succinct description of the issue.
3 |
4 | #### Repro steps
5 |
6 | Provide the steps required to reproduce the problem
7 |
8 | 1. Step A
9 |
10 | 2. Step B
11 |
12 | #### Expected behavior
13 |
14 | Provide a description of the expected behavior.
15 |
16 | #### Actual behavior
17 |
18 | Provide a description of the actual behavior observed.
19 |
20 | #### Known workarounds
21 |
22 | Provide a description of any known workarounds.
23 |
24 | #### Related information
25 |
26 | Provide any related information
27 |
28 | * Package version
29 | * Links to source
30 |
31 |
--------------------------------------------------------------------------------
/NuGet.Config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/SECURITY.md:
--------------------------------------------------------------------------------
1 | # Security Policy
2 |
3 | ## Reporting a Vulnerability
4 |
5 | Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) through https://msrc.microsoft.com or by emailing secure@microsoft.com.
6 | You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your
7 | original message. Further information, including the MSRC PGP key, can be found in the [MSRC Report an Issue FAQ](https://www.microsoft.com/en-us/msrc/faqs-report-an-issue).
8 |
9 | Please do not open issues for anything you think might have a security implication.
10 |
--------------------------------------------------------------------------------
/eng/build/Engineering.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/eng/build/SharedReferences.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | true
5 |
6 |
7 |
8 | false
9 | false
10 | true
11 | true
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/eng/ci/code-mirror.yml:
--------------------------------------------------------------------------------
1 | trigger:
2 | branches:
3 | include:
4 | - dev
5 | - release/*
6 |
7 | resources:
8 | repositories:
9 | - repository: eng
10 | type: git
11 | name: engineering
12 | ref: refs/tags/release
13 |
14 | variables:
15 | - template: ci/variables/cfs.yml@eng
16 |
17 | extends:
18 | template: ci/code-mirror.yml@eng
19 |
--------------------------------------------------------------------------------
/eng/ci/integration-tests.yml:
--------------------------------------------------------------------------------
1 | trigger: none # ensure this is not ran as a CI build
2 |
3 | pr:
4 | branches:
5 | include:
6 | - dev
7 |
8 | resources:
9 | repositories:
10 | - repository: 1es
11 | type: git
12 | name: 1ESPipelineTemplates/1ESPipelineTemplates
13 | ref: refs/tags/release
14 | - repository: eng
15 | type: git
16 | name: engineering
17 | ref: refs/tags/release
18 |
19 | variables:
20 | - template: /eng/ci/templates/variables/build.yml@self
21 | - template: /ci/variables/cfs.yml@eng
22 |
23 | extends:
24 | template: v1/1ES.Unofficial.PipelineTemplate.yml@1es
25 | parameters:
26 | pool:
27 | name: 1es-pool-azfunc
28 | image: 1es-windows-2022
29 | os: windows
30 |
31 | stages:
32 | - stage: Test
33 | jobs:
34 | - template: /eng/ci/templates/jobs/run-integration-tests.yml@self
35 |
--------------------------------------------------------------------------------
/eng/ci/templates/steps/install-dotnet.yml:
--------------------------------------------------------------------------------
1 | steps:
2 |
3 | - task: UseDotNet@2 # Needed by some of our test resources
4 | displayName: Install .NET 8
5 | inputs:
6 | packageType: sdk
7 | version: 8.x
8 |
9 | - task: UseDotNet@2 # The pinned SDK we use to build
10 | displayName: Install .NET SDK from global.json
11 | inputs:
12 | packageType: sdk
13 | useGlobalJson: true
14 |
--------------------------------------------------------------------------------
/eng/ci/templates/variables/build.yml:
--------------------------------------------------------------------------------
1 | variables:
2 | - name: DOTNET_NOLOGO
3 | value: 1
4 | - name: DOTNET_SKIP_FIRST_TIME_EXPERIENCE
5 | value: 1
6 | - name: DOTNET_CLI_TELEMETRY_OPTOUT
7 | value: 1
8 | - name: configuration
9 | value: release
10 | - name: project
11 | value: WebJobs.sln
12 | - name: Build.Counter
13 | value: $[counter(format('{0:yyyyMMdd}', pipeline.startTime), 0)]
14 |
--------------------------------------------------------------------------------
/eng/res/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/azure-webjobs-sdk/45ca9fc1ed88fe32156dfe2452b217866749f32d/eng/res/icon.png
--------------------------------------------------------------------------------
/eng/res/key.snk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/azure-webjobs-sdk/45ca9fc1ed88fe32156dfe2452b217866749f32d/eng/res/key.snk
--------------------------------------------------------------------------------
/global.json:
--------------------------------------------------------------------------------
1 | {
2 | "sdk": {
3 | "version": "9.0.201",
4 | "rollForward": "latestFeature"
5 | },
6 | "msbuild-sdks": {
7 | "Microsoft.Build.NoTargets": "3.7.56",
8 | "Microsoft.Build.Traversal": "4.1.0"
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/sample/SampleHost/Models/WorkItem.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | namespace SampleHost.Models
5 | {
6 | public class WorkItem
7 | {
8 | public string ID { get; set; }
9 | public int Priority { get; set; }
10 | public string Region { get; set; }
11 | public int Category { get; set; }
12 | public string Description { get; set; }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/sample/SampleHost/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System.Reflection;
5 | using System.Runtime.CompilerServices;
6 | using System.Runtime.InteropServices;
7 |
8 |
9 | // Setting ComVisible to false makes the types in this assembly not visible
10 | // to COM components. If you need to access a type in this assembly from
11 | // COM, set the ComVisible attribute to true on that type.
12 | [assembly: ComVisible(false)]
13 |
14 | // The following GUID is for the ID of the typelib if this project is exposed to COM
15 | [assembly: Guid("93429246-cce9-4eb0-b94d-68522862ba79")]
16 |
17 | // Version information for an assembly consists of the following four values:
18 | //
19 | // Major Version
20 | // Minor Version
21 | // Build Number
22 | // Revision
23 |
--------------------------------------------------------------------------------
/sample/SampleHost/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "ConnectionStrings": {
3 | }
4 | }
--------------------------------------------------------------------------------
/src/Directory.Build.props:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 | true
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/Directory.Version.props:
--------------------------------------------------------------------------------
1 |
2 |
3 | 3.0.41
4 | true
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Extensions.Rpc/Implementation/IRpcExtension.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using Microsoft.AspNetCore.Routing;
5 | using Microsoft.Extensions.Logging;
6 |
7 | namespace Microsoft.Azure.WebJobs.Extensions.Rpc
8 | {
9 | ///
10 | /// Represents an extension for host/worker RPC communication.
11 | ///
12 | internal interface IRpcExtension
13 | {
14 | ///
15 | /// Applies the RPC extension to the .
16 | ///
17 | /// The to apply to.
18 | /// The logger to use during extension registration.
19 | void Apply(IEndpointRouteBuilder builder, ILogger logger);
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Extensions.Rpc/README.md:
--------------------------------------------------------------------------------
1 | # Microsoft.Azure.WebJobs.Extensions.Rpc
2 |
3 | This package provides RPC capabilities to the WebJobs SDK, allowing extensions to communicate between the host and worker via RPC. For more information, please visit https://go.microsoft.com/fwlink/?linkid=2279708.
4 |
5 | ## Commonly used types
6 |
7 | - `WebJobsExtensionBuilderRpcExtensions`
8 |
9 | ## Example usage
10 |
11 | The below example demonstrates how an extension can register a custom gRPC extension.
12 |
13 | ``` CSharp
14 | public static IWebJobsBuilder AddMyExtension(this IWebJobsBuilder builder, Action configure)
15 | {
16 | builder.AddExtension()
17 | .MapWorkerGrpcService();
18 |
19 | builder.Services.AddSingleton();
20 |
21 | return builder;
22 | }
23 | ```
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Extensions.Rpc/WebJobs.Extensions.Rpc.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net6.0
5 | latest
6 | Microsoft.Azure.WebJobs.Extensions.Rpc
7 | This package provides RPC capabilities to the WebJobs SDK, allowing extensions to communicate between the host and worker via RPC. For more information, please visit https://go.microsoft.com/fwlink/?linkid=2279708.
8 | Microsoft.Azure.WebJobs.Extensions.Rpc
9 | Microsoft.Azure.WebJobs.Extensions.Rpc
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host.Storage/CommonUtility.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System;
5 | using System.Collections.Generic;
6 | using System.Text;
7 |
8 | namespace Microsoft.Azure.WebJobs.Storage
9 | {
10 | internal static class CommonUtility
11 | {
12 | private const string AzureWebsiteSku = "WEBSITE_SKU";
13 | private const string DynamicSku = "Dynamic";
14 |
15 | private static readonly Lazy _isDynamicSku = new Lazy(() =>
16 | {
17 | string sku = Environment.GetEnvironmentVariable(AzureWebsiteSku);
18 | return sku != null && sku == DynamicSku;
19 | });
20 |
21 | public static bool IsDynamicSku => _isDynamicSku.Value;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host.Storage/DefaultDelegatingHandlerProvider.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System.Net.Http;
5 | using Microsoft.Azure.WebJobs.Storage;
6 | using Microsoft.Azure.WebJobs.Storage.Common;
7 |
8 | namespace Microsoft.Azure.WebJobs.Host.Storage
9 | {
10 | internal class DefaultDelegatingHandlerProvider : IDelegatingHandlerProvider
11 | {
12 | public DelegatingHandler Create()
13 | {
14 | return CommonUtility.IsDynamicSku ? new WebJobsStorageDelegatingHandler() : null;
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host.Storage/Directory.Version.props:
--------------------------------------------------------------------------------
1 |
2 |
3 | 5.0.1
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host.Storage/IDelegatingHandlerProvider.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System.Net.Http;
5 |
6 | namespace Microsoft.Azure.WebJobs.Host.Storage
7 | {
8 | ///
9 | /// Represents a type used to create a to be used by the WebJobs Azure Storage clients.
10 | ///
11 | internal interface IDelegatingHandlerProvider
12 | {
13 | ///
14 | /// Creates a new .
15 | ///
16 | /// The .
17 | DelegatingHandler Create();
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host.Storage/JobHostInternalStorageOptions.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | namespace Microsoft.Azure.WebJobs
5 | {
6 | ///
7 | /// The storage configuration that the JobHost needs for its own operations (independent of binding)
8 | /// For example, this can support , blob leases, timers, etc.
9 | /// This provides a common place to set storage that the various subsequent services can use.
10 | ///
11 | public class JobHostInternalStorageOptions
12 | {
13 | public string InternalSasBlobContainer { get; set; }
14 | }
15 | }
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host.Storage/RuntimeStorageWebJobsBuilderExtensions.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using Microsoft.Azure.WebJobs;
5 |
6 | namespace Microsoft.Extensions.Hosting
7 | {
8 | public static class RuntimeStorageWebJobsBuilderExtensions
9 | {
10 | // Make the Runtime itself use storage for its internal operations.
11 | // Uses v1 app settings, via a LegacyConfigSetup object.
12 | public static IWebJobsBuilder AddAzureStorageCoreServices(this IWebJobsBuilder builder)
13 | {
14 | builder.Services.AddAzureStorageCoreServices();
15 | return builder;
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host.Storage/Utility.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System;
5 | using Microsoft.Azure.WebJobs.Host;
6 |
7 | namespace Microsoft.Azure.WebJobs.Extensions.Storage
8 | {
9 | static class Utility
10 | {
11 | internal static int GetProcessorCount()
12 | {
13 | int processorCount = 1;
14 | var skuValue = Environment.GetEnvironmentVariable(Constants.AzureWebsiteSku);
15 | if (!string.Equals(skuValue, Constants.DynamicSku, StringComparison.OrdinalIgnoreCase))
16 | {
17 | processorCount = Environment.ProcessorCount;
18 | }
19 | return processorCount;
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/ApplicationInsights.config:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Bindings/AsyncCollector/SyncAsyncCollectorAdapter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System.Threading.Tasks;
5 |
6 | namespace Microsoft.Azure.WebJobs.Host.Bindings
7 | {
8 | // Adapter class to expose a ICollector on top of IAsyncCollector;
9 | internal class SyncAsyncCollectorAdapter : ICollector
10 | {
11 | private readonly IAsyncCollector _inner;
12 |
13 | public SyncAsyncCollectorAdapter(IAsyncCollector inner)
14 | {
15 | _inner = inner;
16 | }
17 |
18 | public void Add(T item)
19 | {
20 | Task.Run(async () => await _inner.AddAsync(item)).GetAwaiter().GetResult();
21 | }
22 | }
23 | }
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Bindings/BindingProviders/FluentBindingProvider.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System;
5 | using System.Reflection;
6 | using System.Threading.Tasks;
7 | using Microsoft.Azure.WebJobs.Host.Protocols;
8 |
9 | namespace Microsoft.Azure.WebJobs.Host
10 | {
11 | // Base class to aide in private backwards compatability hooks for some bindings.
12 | // Help in implementing a Fluent API design where these extra properties are set
13 | // via method cascading rather than all at once upfront.
14 | internal class FluentBindingProvider
15 | {
16 | protected internal Func BuildParameterDescriptor { get; set; }
17 | }
18 | }
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Bindings/Data/IDataArgumentBindingProvider.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System.Reflection;
5 |
6 | namespace Microsoft.Azure.WebJobs.Host.Bindings.Data
7 | {
8 | internal interface IDataArgumentBindingProvider
9 | {
10 | IArgumentBinding TryCreate(ParameterInfo parameter);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Bindings/ExecutionContext/ExecutionContextOptions.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | namespace Microsoft.Azure.WebJobs.Host.Bindings
5 | {
6 | public class ExecutionContextOptions
7 | {
8 | ///
9 | /// The application directory to be used when creating instances.
10 | ///
11 | public string AppDirectory { get; set; }
12 | }
13 | }
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Bindings/FuncArgumentBuilder.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | namespace Microsoft.Azure.WebJobs.Host.Bindings
5 | {
6 | // Deelegate for binding helpers. Converts from an attribute and binding context to an IValueProvider.
7 | // Common usage here is that this delegate is a closure that pulls in other information it needs to do the conversion.
8 | internal delegate IValueProvider FuncArgumentBuilder(TAttribute attribute, ValueBindingContext context);
9 | }
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Bindings/IArgumentBindingProvider.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System.Reflection;
5 |
6 | namespace Microsoft.Azure.WebJobs.Host.Bindings
7 | {
8 | ///
9 | /// Defines a provider of argument bindings of the specified type.
10 | ///
11 | /// The argument binding type.
12 | public interface IArgumentBindingProvider
13 | {
14 | ///
15 | /// Attempt to create an argument binding for the specified parameter.
16 | ///
17 | /// The property create a binding for.
18 | /// A binding extension if this provider can bind to
19 | /// the parameter, false otherwise.
20 | TArgumentBinding TryCreate(ParameterInfo parameter);
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Bindings/IBindingProvider.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System.Threading.Tasks;
5 |
6 | namespace Microsoft.Azure.WebJobs.Host.Bindings
7 | {
8 | ///
9 | /// Defines an interface for the creation of parameter bindings.
10 | ///
11 | public interface IBindingProvider
12 | {
13 | ///
14 | /// Try to create a binding using the specified context.
15 | ///
16 | /// The binding context.
17 | /// A task that returns the binding on completion.
18 | Task TryCreateAsync(BindingProviderContext context);
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Bindings/IFunctionBinding.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System.Collections.Generic;
5 | using System.Threading.Tasks;
6 |
7 | namespace Microsoft.Azure.WebJobs.Host.Bindings
8 | {
9 | internal interface IFunctionBinding
10 | {
11 | Task> BindAsync(ValueBindingContext context, IDictionary parameters);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Bindings/IOrderedValueBinder.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | namespace Microsoft.Azure.WebJobs.Host.Bindings
5 | {
6 | ///
7 | /// Defines an that provides an ordering hint./>
8 | ///
9 | public interface IOrderedValueBinder : IValueBinder
10 | {
11 | ///
12 | /// Gets the bind order for the binder.
13 | ///
14 | BindStepOrder StepOrder { get; }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Bindings/IValueBinder.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System.Threading;
5 | using System.Threading.Tasks;
6 |
7 | namespace Microsoft.Azure.WebJobs.Host.Bindings
8 | {
9 | ///
10 | /// Defines methods for binding to a value.
11 | ///
12 | public interface IValueBinder : IValueProvider
13 | {
14 | ///
15 | /// Sets the value
16 | ///
17 | /// The new value to set.
18 | /// The to use.
19 | /// A for the operation.
20 | Task SetValueAsync(object value, CancellationToken cancellationToken);
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Bindings/IWatchable.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System;
5 |
6 | namespace Microsoft.Azure.WebJobs.Host.Bindings
7 | {
8 | [Obsolete("Will be removed in a future release")]
9 | public interface IWatchable
10 | {
11 | IWatcher Watcher { get; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Bindings/IWatcher.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System;
5 | using Microsoft.Azure.WebJobs.Host.Protocols;
6 |
7 | namespace Microsoft.Azure.WebJobs.Host.Bindings
8 | {
9 | [Obsolete("Will be removed in a future release")]
10 | public interface IWatcher
11 | {
12 | ParameterLog GetStatus();
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Bindings/ImmutableWatcher.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using Microsoft.Azure.WebJobs.Host.Protocols;
5 |
6 | namespace Microsoft.Azure.WebJobs.Host.Bindings
7 | {
8 | internal class ImmutableWatcher : IWatcher
9 | {
10 | private readonly ParameterLog _status;
11 |
12 | public ImmutableWatcher(ParameterLog status)
13 | {
14 | _status = status;
15 | }
16 |
17 | public ParameterLog GetStatus()
18 | {
19 | return _status;
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Bindings/Runtime/IAttributeBindingSource.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System;
5 | using System.Threading;
6 | using System.Threading.Tasks;
7 |
8 | namespace Microsoft.Azure.WebJobs.Host.Bindings.Runtime
9 | {
10 | internal interface IAttributeBindingSource
11 | {
12 | AmbientBindingContext AmbientBindingContext { get; }
13 |
14 | Task BindAsync(Attribute attribute, Attribute[] additionalAttributes = null, CancellationToken cancellationToken = default(CancellationToken));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Config/ApplyConversion.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | namespace Microsoft.Azure.WebJobs.Host.Config
5 | {
6 | ///
7 | /// Used to register a converter that applies a New value to an existing value.
8 | /// This is semantically like a TNew to TExisting converter, but used when TExisting already exists.
9 | /// This is common for Streams. The converter doesn't create the stream, instead it just
10 | /// applies the new value onto an existing stream instantation.
11 | ///
12 | /// A new value
13 | /// An existing object that the new Value is getting applied to.
14 | public class ApplyConversion
15 | {
16 | public TNew Value;
17 | public TExisting Existing;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Config/DirectInvokeString.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | namespace Microsoft.Azure.WebJobs.Host.Config
5 | {
6 | // A short string serialization used to rehydrate the trigger. Sometimes this is the contents, and sometimes it's a moniker. For example:
7 | // For Blob, the DirectInvokeString is the blob path; whereas the String is the blob contents. (because blobs can be MB large)
8 | // For queue, both the DirectInvokeString and String are the queue contents. (because queue messages are generally small)
9 | public class DirectInvokeString
10 | {
11 | public string Value { get; set; }
12 |
13 | public DirectInvokeString(string value)
14 | {
15 | this.Value = value;
16 | }
17 |
18 | public static DirectInvokeString None = new DirectInvokeString("???");
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Config/ExtensionOptionsProvider.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using Microsoft.Azure.WebJobs.Hosting;
5 | using Microsoft.Extensions.Options;
6 | using System;
7 |
8 | namespace Microsoft.Azure.WebJobs.Host.Config
9 | {
10 | internal class ExtensionOptionsProvider : IExtensionOptionsProvider
11 | {
12 | private IOptionsMonitor _optionsMonitor;
13 | public ExtensionOptionsProvider(ExtensionInfo extensionInfo, IOptionsMonitor optionsMonitor)
14 | {
15 | ExtensionInfo = extensionInfo;
16 | _optionsMonitor = optionsMonitor;
17 | }
18 |
19 | public ExtensionInfo ExtensionInfo { get; private set; }
20 | public object GetOptions() => _optionsMonitor.CurrentValue;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Config/IExtensionOptionsProvider.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | namespace Microsoft.Azure.WebJobs.Host.Config
5 | {
6 | public interface IExtensionOptionsProvider
7 | {
8 | ExtensionInfo ExtensionInfo { get; }
9 | object GetOptions();
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Config/IWebJobsExtensionConfiguration.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System;
5 | using System.Collections.Generic;
6 | using System.Text;
7 | using Microsoft.Azure.WebJobs.Host.Config;
8 | using Microsoft.Extensions.Configuration;
9 |
10 | namespace Microsoft.Azure.WebJobs.Host.Configuration
11 | {
12 | public interface IWebJobsExtensionConfiguration where T : IExtensionConfigProvider
13 | {
14 | IConfigurationSection ConfigurationSection { get; }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Config/IWebhookProvider.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System;
5 |
6 | namespace Microsoft.Azure.WebJobs.Host.Config
7 | {
8 | ///
9 | /// Allow a host to expose a HTTP web hook for extensions.
10 | ///
11 | [Obsolete("Not ready for public consumption.")]
12 | public interface IWebHookProvider
13 | {
14 | ///
15 | /// Gets the WebHook URL for an extension.
16 | ///
17 | /// An instance of the extension to own the http handler.
18 | /// A URL (without a query string). Caller may append a query string.
19 | Uri GetUrl(IExtensionConfigProvider extension);
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/ConnectionStringNames.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | namespace Microsoft.Azure.WebJobs
5 | {
6 | /// Defines connection string names used by .
7 | public static class ConnectionStringNames
8 | {
9 | /// Gets the dashboard connection string name.
10 | public static readonly string Dashboard = "Dashboard";
11 |
12 | /// Gets the Azure Storage connection string name.
13 | public static readonly string Storage = "Storage";
14 |
15 | /// Gets an Azure Storage SAS connection for a blob container to use with internal operations.
16 | public static readonly string InternalSasStorage = "InternalSasBlobContainer";
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/ContextAccessor.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | namespace Microsoft.Azure.WebJobs.Host
5 | {
6 | internal class ContextAccessor : IContextGetter, IContextSetter
7 | {
8 | private TValue _value;
9 |
10 | public TValue Value
11 | {
12 | get { return _value; }
13 | }
14 |
15 | public void SetValue(TValue value)
16 | {
17 | _value = value;
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/ByteToStringConverter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System.Globalization;
5 |
6 | namespace Microsoft.Azure.WebJobs.Host.Converters
7 | {
8 | internal class ByteToStringConverter : IConverter
9 | {
10 | public string Convert(byte input)
11 | {
12 | return input.ToString(CultureInfo.InvariantCulture);
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/CharToStringConverter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System.Globalization;
5 |
6 | namespace Microsoft.Azure.WebJobs.Host.Converters
7 | {
8 | internal class CharToStringConverter : IConverter
9 | {
10 | public string Convert(char input)
11 | {
12 | return input.ToString(CultureInfo.InvariantCulture);
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/ConversionResult.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System.Diagnostics.CodeAnalysis;
5 |
6 | namespace Microsoft.Azure.WebJobs.Host.Converters
7 | {
8 | ///
9 | /// Represents the result of a conversion.
10 | ///
11 | /// The of the conversion result.
12 | [SuppressMessage("Microsoft.Performance", "CA1815:OverrideEqualsAndOperatorEqualsOnValueTypes")]
13 | internal struct ConversionResult
14 | {
15 | ///
16 | /// Gets a value indicating whether the conversion succeeded.
17 | ///
18 | public bool Succeeded { get; set; }
19 |
20 | ///
21 | /// Gets the conversion result.
22 | ///
23 | public TResult Result { get; set; }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/GuidToStringConverter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System;
5 |
6 | namespace Microsoft.Azure.WebJobs.Host.Converters
7 | {
8 | internal class GuidToStringConverter : IConverter
9 | {
10 | public string Convert(Guid input)
11 | {
12 | // Use the default format "D" (adds hyphens but not braces): 00000000-0000-0000-0000-000000000000
13 | return input.ToString();
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/IConverter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | namespace Microsoft.Azure.WebJobs
5 | {
6 | ///
7 | /// Defines methods for performing value conversions
8 | ///
9 | /// The input value type.
10 | /// The output value type.
11 | public interface IConverter
12 | {
13 | ///
14 | /// Convert the specified input value.
15 | ///
16 | /// The value to convert
17 | /// The converted value.
18 | TOutput Convert(TInput input);
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/IStringToTConverterFactory.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | namespace Microsoft.Azure.WebJobs.Host.Converters
5 | {
6 | internal interface IStringToTConverterFactory
7 | {
8 | IConverter TryCreate();
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/IdentityConverter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | namespace Microsoft.Azure.WebJobs.Host.Converters
5 | {
6 | ///
7 | /// A converter that simply returns the value to be converted,
8 | /// without performing any conversions.
9 | ///
10 | /// The being converted.
11 | internal class IdentityConverter : IConverter
12 | {
13 | ///
14 | public TValue Convert(TValue input)
15 | {
16 | return input;
17 | }
18 | }
19 | }
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/IdentityStringToTConverterFactory.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | namespace Microsoft.Azure.WebJobs.Host.Converters
5 | {
6 | internal class IdentityStringToTConverterFactory : IStringToTConverterFactory
7 | {
8 | public IConverter TryCreate()
9 | {
10 | if (typeof(TOutput) != typeof(string))
11 | {
12 | return null;
13 | }
14 |
15 | return (IConverter)new IdentityConverter();
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/Int16ToStringConverter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System.Globalization;
5 |
6 | namespace Microsoft.Azure.WebJobs.Host.Converters
7 | {
8 | internal class Int16ToStringConverter : IConverter
9 | {
10 | public string Convert(short input)
11 | {
12 | return input.ToString(CultureInfo.InvariantCulture);
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/Int32ToStringConverter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System.Globalization;
5 |
6 | namespace Microsoft.Azure.WebJobs.Host.Converters
7 | {
8 | internal class Int32ToStringConverter : IConverter
9 | {
10 | public string Convert(int input)
11 | {
12 | return input.ToString(CultureInfo.InvariantCulture);
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/Int64ToStringConverter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System.Globalization;
5 |
6 | namespace Microsoft.Azure.WebJobs.Host.Converters
7 | {
8 | internal class Int64ToStringConverter : IConverter
9 | {
10 | public string Convert(long input)
11 | {
12 | return input.ToString(CultureInfo.InvariantCulture);
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/SByteToStringConverter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System.Globalization;
5 |
6 | namespace Microsoft.Azure.WebJobs.Host.Converters
7 | {
8 | internal class SByteToStringConverter : IConverter
9 | {
10 | public string Convert(sbyte input)
11 | {
12 | return input.ToString(CultureInfo.InvariantCulture);
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/StringToBigIntegerConverter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System.Globalization;
5 | using System.Numerics;
6 |
7 | namespace Microsoft.Azure.WebJobs.Host.Converters
8 | {
9 | internal class StringToBigIntegerConverter : IConverter
10 | {
11 | public BigInteger Convert(string input)
12 | {
13 | return BigInteger.Parse(input, NumberStyles.AllowLeadingSign, CultureInfo.InvariantCulture);
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/StringToByteConverter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System;
5 | using System.Globalization;
6 |
7 | namespace Microsoft.Azure.WebJobs.Host.Converters
8 | {
9 | internal class StringToByteConverter : IConverter
10 | {
11 | public byte Convert(string input)
12 | {
13 | return Byte.Parse(input, NumberStyles.None, CultureInfo.InvariantCulture);
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/StringToDateTimeConverter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System;
5 | using System.Globalization;
6 |
7 | namespace Microsoft.Azure.WebJobs.Host.Converters
8 | {
9 | internal class StringToDateTimeConverter : IConverter
10 | {
11 | public DateTime Convert(string input)
12 | {
13 | return DateTime.ParseExact(input, "O", CultureInfo.InvariantCulture,
14 | DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal);
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/StringToDateTimeOffsetConverter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System;
5 | using System.Globalization;
6 |
7 | namespace Microsoft.Azure.WebJobs.Host.Converters
8 | {
9 | internal class StringToDateTimeOffsetConverter : IConverter
10 | {
11 | public DateTimeOffset Convert(string input)
12 | {
13 | return DateTimeOffset.ParseExact(input, "O", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal);
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/StringToDecimalConverter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System;
5 | using System.Globalization;
6 |
7 | namespace Microsoft.Azure.WebJobs.Host.Converters
8 | {
9 | internal class StringToDecimalConverter : IConverter
10 | {
11 | public decimal Convert(string input)
12 | {
13 | return Decimal.Parse(input, NumberStyles.AllowLeadingSign | NumberStyles.AllowDecimalPoint,
14 | CultureInfo.InvariantCulture);
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/StringToDoubleConverter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System;
5 | using System.Globalization;
6 |
7 | namespace Microsoft.Azure.WebJobs.Host.Converters
8 | {
9 | internal class StringToDoubleConverter : IConverter
10 | {
11 | public double Convert(string input)
12 | {
13 | const NumberStyles FloatWithoutWhitespace =
14 | NumberStyles.AllowLeadingSign | NumberStyles.AllowDecimalPoint | NumberStyles.AllowExponent;
15 |
16 | return Double.Parse(input, FloatWithoutWhitespace, CultureInfo.InvariantCulture);
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/StringToGuidConverter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System;
5 |
6 | namespace Microsoft.Azure.WebJobs.Host.Converters
7 | {
8 | internal class StringToGuidConverter : IConverter
9 | {
10 | public Guid Convert(string input)
11 | {
12 | return Guid.ParseExact(input, "D");
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/StringToInt16Converter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System;
5 | using System.Globalization;
6 |
7 | namespace Microsoft.Azure.WebJobs.Host.Converters
8 | {
9 | internal class StringToInt16Converter : IConverter
10 | {
11 | public short Convert(string input)
12 | {
13 | return Int16.Parse(input, NumberStyles.AllowLeadingSign, CultureInfo.InvariantCulture);
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/StringToInt32Converter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System;
5 | using System.Globalization;
6 |
7 | namespace Microsoft.Azure.WebJobs.Host.Converters
8 | {
9 | internal class StringToInt32Converter : IConverter
10 | {
11 | public int Convert(string input)
12 | {
13 | return Int32.Parse(input, NumberStyles.AllowLeadingSign, CultureInfo.InvariantCulture);
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/StringToInt64Converter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System;
5 | using System.Globalization;
6 |
7 | namespace Microsoft.Azure.WebJobs.Host.Converters
8 | {
9 | internal class StringToInt64Converter : IConverter
10 | {
11 | public long Convert(string input)
12 | {
13 | return Int64.Parse(input, NumberStyles.AllowLeadingSign, CultureInfo.InvariantCulture);
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/StringToSByteConverter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System;
5 | using System.Globalization;
6 |
7 | namespace Microsoft.Azure.WebJobs.Host.Converters
8 | {
9 | internal class StringToSByteConverter : IConverter
10 | {
11 | public sbyte Convert(string input)
12 | {
13 | return SByte.Parse(input, NumberStyles.AllowLeadingSign, CultureInfo.InvariantCulture);
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/StringToSingleConverter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System;
5 | using System.Globalization;
6 |
7 | namespace Microsoft.Azure.WebJobs.Host.Converters
8 | {
9 | internal class StringToSingleConverter : IConverter
10 | {
11 | public float Convert(string input)
12 | {
13 | const NumberStyles FloatWithoutWhitespace = NumberStyles.AllowLeadingSign | NumberStyles.AllowDecimalPoint |
14 | NumberStyles.AllowExponent;
15 |
16 | return Single.Parse(input, FloatWithoutWhitespace, CultureInfo.InvariantCulture);
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/StringToTConverterFactory.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | namespace Microsoft.Azure.WebJobs.Host.Converters
5 | {
6 | internal static class StringToTConverterFactory
7 | {
8 | private static readonly IStringToTConverterFactory Singleton = new CompositeStringToTConverterFactory(
9 | new IdentityStringToTConverterFactory(),
10 | new KnownTypesParseToStringConverterFactory(),
11 | new TryParseStringToTConverterFactory(),
12 | new TypeConverterStringToTConverterFactory());
13 |
14 | public static IStringToTConverterFactory Instance
15 | {
16 | get { return Singleton; }
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/StringToTimeSpanConverter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System;
5 | using System.Globalization;
6 |
7 | namespace Microsoft.Azure.WebJobs.Host.Converters
8 | {
9 | internal class StringToTimeSpanConverter : IConverter
10 | {
11 | public TimeSpan Convert(string input)
12 | {
13 | return TimeSpan.ParseExact(input, "c", CultureInfo.InvariantCulture);
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/StringToUInt16Converter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System;
5 | using System.Globalization;
6 |
7 | namespace Microsoft.Azure.WebJobs.Host.Converters
8 | {
9 | internal class StringToUInt16Converter : IConverter
10 | {
11 | public ushort Convert(string input)
12 | {
13 | return UInt16.Parse(input, NumberStyles.None, CultureInfo.InvariantCulture);
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/StringToUInt32Converter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System;
5 | using System.Globalization;
6 |
7 | namespace Microsoft.Azure.WebJobs.Host.Converters
8 | {
9 | internal class StringToUInt32Converter : IConverter
10 | {
11 | public uint Convert(string input)
12 | {
13 | return UInt32.Parse(input, NumberStyles.None, CultureInfo.InvariantCulture);
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/StringToUInt64Converter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System;
5 | using System.Globalization;
6 |
7 | namespace Microsoft.Azure.WebJobs.Host.Converters
8 | {
9 | internal class StringToUInt64Converter : IConverter
10 | {
11 | public ulong Convert(string input)
12 | {
13 | return UInt64.Parse(input, NumberStyles.None, CultureInfo.InvariantCulture);
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/TryParseDelegate.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | namespace Microsoft.Azure.WebJobs.Host.Converters
5 | {
6 | internal delegate bool TryParseDelegate(string input, out TOutput result);
7 | }
8 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/TypeConverterStringToTConverter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System.ComponentModel;
5 | using System.Diagnostics;
6 |
7 | namespace Microsoft.Azure.WebJobs.Host.Converters
8 | {
9 | internal class TypeConverterStringToTConverter : IConverter
10 | {
11 | private readonly TypeConverter _typeConverter;
12 |
13 | public TypeConverterStringToTConverter(TypeConverter typeConverter)
14 | {
15 | _typeConverter = typeConverter;
16 | Debug.Assert(typeConverter.CanConvertFrom(typeof(string)));
17 | }
18 |
19 | public TOutput Convert(string input)
20 | {
21 | return (TOutput)_typeConverter.ConvertFrom(input);
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/UInt16ToStringConverter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System.Globalization;
5 |
6 | namespace Microsoft.Azure.WebJobs.Host.Converters
7 | {
8 | internal class UInt16ToStringConverter : IConverter
9 | {
10 | public string Convert(ushort input)
11 | {
12 | return input.ToString(CultureInfo.InvariantCulture);
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/UInt32ToStringConverter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System.Globalization;
5 |
6 | namespace Microsoft.Azure.WebJobs.Host.Converters
7 | {
8 | internal class UInt32ToStringConverter : IConverter
9 | {
10 | public string Convert(uint input)
11 | {
12 | return input.ToString(CultureInfo.InvariantCulture);
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Converters/UInt64ToStringConverter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System.Globalization;
5 |
6 | namespace Microsoft.Azure.WebJobs.Host.Converters
7 | {
8 | internal class UInt64ToStringConverter : IConverter
9 | {
10 | public string Convert(ulong input)
11 | {
12 | return input.ToString(CultureInfo.InvariantCulture);
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Dispatch/IDispatchQueueHandler.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System;
5 | using System.Threading;
6 | using System.Threading.Tasks;
7 | using Newtonsoft.Json.Linq;
8 |
9 | namespace Microsoft.Azure.WebJobs.Host.Dispatch
10 | {
11 | ///
12 | /// Queue where user can add their function triggering messages,
13 | /// these messages will be distributed to multiple worker instance
14 | /// for later processing
15 | ///
16 | internal interface IDispatchQueueHandler
17 | {
18 | /// Add a message to the shared queue.
19 | /// A JObject to be later processed by IMessageHandler
20 | ///
21 | Task EnqueueAsync(JObject message, CancellationToken cancellationToken);
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Executors/BindingSource.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System.Collections.Generic;
5 | using System.Threading.Tasks;
6 | using Microsoft.Azure.WebJobs.Host.Bindings;
7 |
8 | namespace Microsoft.Azure.WebJobs.Host.Executors
9 | {
10 | internal class BindingSource : IBindingSource
11 | {
12 | private readonly IFunctionBinding _binding;
13 | private readonly IDictionary _parameters;
14 |
15 | public BindingSource(IFunctionBinding binding, IDictionary parameters)
16 | {
17 | _binding = binding;
18 | _parameters = parameters;
19 | }
20 |
21 | public Task> BindAsync(ValueBindingContext context)
22 | {
23 | return _binding.BindAsync(context, _parameters);
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Executors/DefaultInstanceServicesProviderFactory.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using Microsoft.Extensions.DependencyInjection;
5 |
6 | namespace Microsoft.Azure.WebJobs.Host.Executors
7 | {
8 | internal class DefaultInstanceServicesProviderFactory : IInstanceServicesProviderFactory
9 | {
10 | private readonly IServiceScopeFactory _serviceScopeFactory;
11 |
12 | public DefaultInstanceServicesProviderFactory(IServiceScopeFactory serviceScopeFactory)
13 | {
14 | _serviceScopeFactory = serviceScopeFactory;
15 | }
16 |
17 | public IInstanceServicesProvider CreateInstanceServicesProvider(FunctionInstanceFactoryContext functionInstanceFactoryContext)
18 | {
19 | return new DefaultInstanceServicesProvider(_serviceScopeFactory);
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Executors/DelayedException.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System;
5 |
6 | namespace Microsoft.Azure.WebJobs.Host.Executors
7 | {
8 | internal class DelayedException : IDelayedException
9 | {
10 | private readonly Exception _exception;
11 |
12 | public DelayedException(Exception exception)
13 | {
14 | _exception = exception;
15 | }
16 |
17 | public Exception Exception
18 | {
19 | get
20 | {
21 | return _exception;
22 | }
23 | }
24 |
25 | public void Throw()
26 | {
27 | throw _exception;
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Executors/ExceptionDispatchInfoDelayedException.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System;
5 | using System.Runtime.ExceptionServices;
6 |
7 | namespace Microsoft.Azure.WebJobs.Host.Executors
8 | {
9 | internal class ExceptionDispatchInfoDelayedException : IDelayedException
10 | {
11 | private readonly ExceptionDispatchInfo _exceptionInfo;
12 |
13 | public ExceptionDispatchInfoDelayedException(ExceptionDispatchInfo exceptionInfo)
14 | {
15 | _exceptionInfo = exceptionInfo;
16 | }
17 |
18 | public Exception Exception
19 | {
20 | get
21 | {
22 | return _exceptionInfo.SourceException;
23 | }
24 | }
25 |
26 | public void Throw()
27 | {
28 | _exceptionInfo.Throw();
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Executors/FixedHostIdProvider.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System;
5 | using System.Threading;
6 | using System.Threading.Tasks;
7 |
8 | namespace Microsoft.Azure.WebJobs.Host.Executors
9 | {
10 | internal class FixedHostIdProvider : IHostIdProvider
11 | {
12 | private readonly string _hostId;
13 |
14 | public FixedHostIdProvider(string hostId)
15 | {
16 | _hostId = hostId;
17 |
18 | if (_hostId == null)
19 | {
20 | _hostId = Guid.NewGuid().ToString("N");
21 | }
22 | }
23 |
24 | public Task GetHostIdAsync(CancellationToken cancellationToken)
25 | {
26 | return Task.FromResult(_hostId);
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Executors/FunctionActivityStatus.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | namespace Microsoft.Azure.WebJobs.Host.Executors
5 | {
6 | ///
7 | /// Represents activity status the of job host
8 | ///
9 | public class FunctionActivityStatus
10 | {
11 | ///
12 | /// Gets or sets number of outstanding invocations
13 | ///
14 | public int OutstandingInvocations { get; set; }
15 |
16 | ///
17 | /// Gets or sets number of outstanding retries
18 | ///
19 | public int OutstandingRetries { get; set; }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/Microsoft.Azure.WebJobs.Host/Executors/FunctionInstanceFactoryContext.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) .NET Foundation. All rights reserved.
2 | // Licensed under the MIT License. See License.txt in the project root for license information.
3 |
4 | using System;
5 | using System.Collections.Generic;
6 | using System.Threading.Tasks;
7 | using Microsoft.Azure.WebJobs.Host.Protocols;
8 |
9 | namespace Microsoft.Azure.WebJobs.Host.Executors
10 | {
11 | public class FunctionInstanceFactoryContext
12 | {
13 | public Guid Id { get; set; }
14 | public IDictionary TriggerDetails { get; set; }
15 | public Guid? ParentId { get; set; }
16 | public ExecutionReason ExecutionReason { get; set; }
17 | public IDictionary Parameters { get; set; }
18 | public Func>, Task