在 Azure 中,我可以从我的 C# WebJob 调用 Python 脚本吗?
In Azure, can I call a Python script from my C# WebJob?
我想用 C# 创建一个 WebJob。不幸的是,我需要使用 Python 3 脚本,因为目前没有适合我需要使用 C# 执行的 1 个特定任务的库。
例如,请参阅此 。
是否可以让我的 WebJob 调用 Python 脚本?我可以将 Python3 脚本放在 blob 容器中 - 然后我可以从我的 C# WebJob 调用并执行它吗?
不知道这是否是最好的方法,但这是我过去所做的:
创建一个 python 网络作业(手动、触发)(see tutorial)
创建一个 C# web 作业。
从 C# 作业触发 Python 作业:
using (var client = new HttpClient())
{
var username = "jobusername";
var password = "jobpassword";
var byteArray = Encoding.ASCII.GetBytes($"{username}:{password}");
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
var response = await client.PostAsync("joburl", null);
}
您可以从 Azure 门户的工作属性中找到工作凭证:
当然,可以通过您链接的 之后的 C# WebJob 调用 Python 3 脚本。首先,你需要安装一个Python 3 运行时间如下。
- 通过url
https://<your webapp name>.scm.azurewebsites.net
访问kudu工具,按照下图安装一个Python3运行时间。
- 比如安装
Python 3.5.2 x86
,会安装在D:\home\Python35
路径下,那么你只需要改变示例中的Python执行文件路径即可尝试运行它。
希望对您有所帮助。
更新:安装pip
工具和其他Python包。
- 访问 url
https://<your azure webapp name>.scm.azurewebsites.net/DebugConsole
.
命令如下。
D:\home>cd Python35
D:\home\Python35>curl https://bootstrap.pypa.io/get-pip.py --output get-pip.py
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1558k 100 1558k 0 0 6829k 0 --:--:-- --:--:-- --:--:-- 7179k
D:\home\Python35>python get-pip.py
Requirement already up-to-date: pip in d:\home\python35\lib\site-packages
Collecting wheel
Downloading wheel-0.29.0-py2.py3-none-any.whl (66kB)
Installing collected packages: wheel
Successfully installed wheel-0.29.0
例如安装numpy
包
D:\home\Python35>python get-pip.py numpy
Collecting numpy
Downloading numpy-1.13.1-cp35-none-win32.whl (6.8MB)
Installing collected packages: numpy
Successfully installed numpy-1.13.1
我想用 C# 创建一个 WebJob。不幸的是,我需要使用 Python 3 脚本,因为目前没有适合我需要使用 C# 执行的 1 个特定任务的库。
例如,请参阅此
是否可以让我的 WebJob 调用 Python 脚本?我可以将 Python3 脚本放在 blob 容器中 - 然后我可以从我的 C# WebJob 调用并执行它吗?
不知道这是否是最好的方法,但这是我过去所做的:
创建一个 python 网络作业(手动、触发)(see tutorial)
创建一个 C# web 作业。
从 C# 作业触发 Python 作业:
using (var client = new HttpClient()) { var username = "jobusername"; var password = "jobpassword"; var byteArray = Encoding.ASCII.GetBytes($"{username}:{password}"); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray)); var response = await client.PostAsync("joburl", null); }
您可以从 Azure 门户的工作属性中找到工作凭证:
当然,可以通过您链接的
- 通过url
https://<your webapp name>.scm.azurewebsites.net
访问kudu工具,按照下图安装一个Python3运行时间。 - 比如安装
Python 3.5.2 x86
,会安装在D:\home\Python35
路径下,那么你只需要改变示例中的Python执行文件路径即可尝试运行它。
希望对您有所帮助。
更新:安装pip
工具和其他Python包。
- 访问 url
https://<your azure webapp name>.scm.azurewebsites.net/DebugConsole
. 命令如下。
D:\home>cd Python35 D:\home\Python35>curl https://bootstrap.pypa.io/get-pip.py --output get-pip.py % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 1558k 100 1558k 0 0 6829k 0 --:--:-- --:--:-- --:--:-- 7179k D:\home\Python35>python get-pip.py Requirement already up-to-date: pip in d:\home\python35\lib\site-packages Collecting wheel Downloading wheel-0.29.0-py2.py3-none-any.whl (66kB) Installing collected packages: wheel Successfully installed wheel-0.29.0
例如安装
numpy
包D:\home\Python35>python get-pip.py numpy Collecting numpy Downloading numpy-1.13.1-cp35-none-win32.whl (6.8MB) Installing collected packages: numpy Successfully installed numpy-1.13.1