2017-02-15 61 views
1

是否有可能從python調用webjob?
我目前在azure上有一個web應用程序和webjob。我的webjob被設置爲觸發/手動,並且希望在用戶執行特定操作時從python代碼運行它。
像這樣從C#:從python調用webjob

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"); 
request.Headers.Add("Authorization", "Basic "+ Convert.ToBase64String(byteArray));    
request.ContentLength = 0; 

我做了一些研究,我看到一個帖子說建議使用azure-sdk-for-python。但我不確定這是否有任何幫助,只要「觸發webjob」。

+0

作爲參考,請查閱捻wiki頁面https://github.com/projectkudu/kudu/wiki/WebJobs-API和使用webjob REST的API。 –

回答

1

如果需要簡單地張貼到蔚藍的請求時,你可以使用一個httplibhttp.client在Python 3)所示:

import base64, httplib 
headers = {"Authorization": "Basic " + base64.b64encode("user:password")} 

conn = httplib.HTTPConnection("https://<web appname>.scm.azurewebsites.net/api/triggeredwebjobs/<web job name>/run") 
conn.request("POST", "", "", headers) 
response = conn.getresponse() 
print response.status, response.reason 

如果你需要一些更復雜的,你最好investigateazure-sdk-for-python包,但我現在還無法看到有關webjobs的任何信息。

這適用於郵遞員: enter image description here

+0

謝謝你的回答。經過更多的研究,我發現webjob確實可以通過郵政調用來調用。它使用郵遞員工作,但不適用於與您發佈的代碼類似的代碼。我認爲它可能與語法有關。 – Gio

+0

上面的代碼是針對Python 2的,對於Python 3它稍有不同 – VMAtm

+0

代碼沒問題,我使用的是python3,並且必須使用http.client和其他一些較小的更改進行修改。它運行沒有錯誤只是不做任何事情(不會啓動webjob)。我可以發佈郵遞員的截圖和我的代碼,以便更好地理解。 – Gio