// Please set the following connection strings in app.config for this WebJob to run: // AzureWebJobsDashboard and AzureWebJobsStorage static void Main() { var config = new JobHostConfiguration(); var slackConfig = new SlackConfiguration(); WebHooksConfiguration webhookConfig; if (config.IsDevelopment) { config.UseDevelopmentSettings(); webhookConfig = new WebHooksConfiguration(3000); } else { webhookConfig = new WebHooksConfiguration(); } // These are optional and will be applied if no other value is specified. /* * slackConfig.WebHookUrl = ""; * // IT IS A BAD THING TO HARDCODE YOUR WEBHOOKURL, USE THE APP SETTING "AzureWebJobsSlackWebHookKeyName" * slackConfig.IconEmoji = ""; * slackConfig.Username = ""; * slackConfig.Channel = ""; */ config.UseSlack(slackConfig); config.UseWebHooks(webhookConfig); var host = new JobHost(config); // The following code ensures that the WebJob will be running continuously host.RunAndBlock(); }
public static void Main(string[] args) { JobHostConfiguration config = new JobHostConfiguration(); FilesConfiguration filesConfig = new FilesConfiguration(); // See https://github.com/Azure/azure-webjobs-sdk/wiki/Running-Locally for details // on how to set up your local environment if (config.IsDevelopment) { config.UseDevelopmentSettings(); filesConfig.RootPath = @"c:\temp\files"; } config.UseFiles(filesConfig); config.UseTimers(); config.UseSample(); config.UseEasyTables(); config.UseCore(); config.UseDocumentDB(); config.UseNotificationHubs(); var sendGridConfiguration = new SendGridConfiguration() { ToAddress = "*****@*****.**", FromAddress = new MailAddress("*****@*****.**", "WebJobs Extensions Samples") }; config.UseSendGrid(sendGridConfiguration); ConfigureTraceMonitor(config, sendGridConfiguration); EnsureSampleDirectoriesExist(filesConfig.RootPath); WebHooksConfiguration webHooksConfig = new WebHooksConfiguration(); webHooksConfig.UseReceiver <GitHubWebHookReceiver>(); config.UseWebHooks(webHooksConfig); JobHost host = new JobHost(config); // Add or remove types from this list to choose which functions will // be indexed by the JobHost. config.TypeLocator = new SamplesTypeLocator( typeof(ErrorMonitoringSamples), typeof(FileSamples), typeof(MiscellaneousSamples), typeof(SampleSamples), typeof(SendGridSamples), typeof(TableSamples), typeof(TimerSamples), typeof(WebHookSamples)); host.Call(typeof(MiscellaneousSamples).GetMethod("ExecutionContext")); host.Call(typeof(FileSamples).GetMethod("ReadWrite")); host.Call(typeof(SampleSamples).GetMethod("Sample_BindToStream")); host.Call(typeof(SampleSamples).GetMethod("Sample_BindToString")); host.Call(typeof(TableSamples).GetMethod("CustomBinding")); host.RunAndBlock(); }
/// <summary> /// Enables use of the WebHooks extensions. /// </summary> /// <remarks> /// <para> /// In addition to enabling HTTP POST invocation of functions decorated with <see cref="WebHookTriggerAttribute"/> /// this also enables HTTP invocation of other functions as well. For functions not decorated with /// <see cref="WebHookTriggerAttribute"/>, they can be invoked via an implicit route of the form /// {TypeName}/{FunctionName}. The body should be a valid json string representing the data that you would /// pass in to <see cref="JobHost.Call(System.Reflection.MethodInfo, object)"/>. /// </para> /// <para> /// Authentication of incoming requests is handled outside of this extension. When running under the normal /// Azure Web App host, the extension will be listening on a loopback port that the SCM host has opened for /// the job, and SCM forwards authenticated requests through (SCM credentials are required to invoke the SCM endpoints). /// </para> /// </remarks> /// <param name="config">The <see cref="JobHostConfiguration"/> to configure.</param> /// <param name="webHooksConfig">The <see cref="WebHooksConfiguration"/> to use.</param> public static void UseWebHooks(this JobHostConfiguration config, WebHooksConfiguration webHooksConfig = null) { if (config == null) { throw new ArgumentNullException("config"); } if (webHooksConfig == null) { webHooksConfig = new WebHooksConfiguration(); } config.RegisterExtensionConfigProvider(new WebHooksExtensionConfig(webHooksConfig)); }
public TestFixture() { int testPort = 43000; BaseUrl = string.Format("http://localhost:{0}/", testPort); Client = new HttpClient(); Client.BaseAddress = new Uri(BaseUrl); JobHostConfiguration config = new JobHostConfiguration { TypeLocator = new ExplicitTypeLocator(typeof(WebHookTestFunctions)) }; WebHooksConfiguration webHooksConfig = new WebHooksConfiguration(testPort); webHooksConfig.UseReceiver <GitHubWebHookReceiver>(); config.UseWebHooks(webHooksConfig); Host = new JobHost(config); Host.Start(); }
public WebHooksExtensionConfig(WebHooksConfiguration webHooksConfig) { _webHooksConfig = webHooksConfig; }