2017-02-15 67 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