Frage Führen Sie Azure WebJob aus Code aus


Ich habe eine Konsolenanwendung als Azure-Trigger-Webjob erstellt. Es funktioniert einwandfrei, wenn ich es vom Azure Portal aus starte. Ich möchte das von meinem C # -Code ausführen. Ich möchte keine Warteschlange oder Servicebus verwenden. Ich möchte es nur auslösen, wenn der Benutzer eine bestimmte Aktion in meiner Web-App ausführt.

Nach der Suche habe ich eine Lösung gefunden, um Job von einem geplanten zu lösen http://blog.davidebbo.com/2015/05/scheduled-webjob.html

Irgendeine Idee, wie man vom Code läuft?


8
2017-07-13 08:11


Ursprung


Antworten:


Wie Justin sagte, können wir die WebJob-API verwenden, um diese Anforderung zu erfüllen. Wir können diese KUDU API finden unter: https://github.com/projectkudu/kudu/wiki/WebJobs-API. Unten ist mein getesteter Code:

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("https://<web appname>.scm.azurewebsites.net/api/triggeredwebjobs/<web job name>/run");
request.Method = "POST";
var byteArray = Encoding.ASCII.GetBytes("user:password"); //we could find user name and password in Azure web app publish profile 
request.Headers.Add("Authorization", "Basic "+ Convert.ToBase64String(byteArray));            
request.ContentLength = 0;
try
{
    var response = (HttpWebResponse)request.GetResponse();
}
catch (Exception e) {

}

Es funktioniert auf meiner Seite. Ich hoffe es hilft.


7
2017-07-14 05:18



Sie können den WebJob über die WebJob-API auslösen. C # -Code in dem folgenden Post enthalten:

http://chriskirby.net/blog/running-your-azure-webjobs-with-the-kudu-api

HttpClient client = new HttpClient();
client.BaseAddress = new Uri("https://mysiteslot.scm.azurewebsites.net/api/");
// the creds from my .publishsettings file
var byteArray = Encoding.ASCII.GetBytes("username:password");
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
// POST to the run action for my job
var response = await client.PostAsync("triggeredwebjobs/moJobName/run", null)

8
2017-07-13 13:01