Beispiel #1
0
        // 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();
        }
Beispiel #3
0
        /// <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));
        }
Beispiel #4
0
            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();
            }
Beispiel #5
0
 public WebHooksExtensionConfig(WebHooksConfiguration webHooksConfig)
 {
     _webHooksConfig = webHooksConfig;
 }