2016-07-13 15 views
7

AzureトリガーWebjobとしてコンソールアプリケーションアップロードを作成しました。 Azure Portalから実行するとうまくいきます。私はこれを私のC#コードから実行したい。私はキューやサービスバスを使いたくありません。私は、ユーザーがWebアプリケーションで特定のアクションを実行したときにトリガーしたいだけです。コードから実行されたAzure WebJobを実行する

検索した後、私は、コードから実行する方法、スケジュール http://blog.davidebbo.com/2015/05/scheduled-webjob.html

任意のアイデアから仕事をトリガーするためのソリューションを持って?

答えて

6

ジャスティンが言ったように、我々は、この要件を達成するためにWebJobのAPIを使用することができます。このKUDU APIはhttps://github.com/projectkudu/kudu/wiki/WebJobs-APIにあります。

  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) { 

      } 

それは私の側に動作します。以下は、私のテストコードです。それが役に立てば幸い。

7

WebJob APIを介してWebJobをトリガすることができます。 C#のコードは、次の記事に含ま:

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) 
関連する問題