【发布时间】:2017-11-09 17:41:32
【问题描述】:
我的目标是让一些 Python 3 代码作为 Azure Functions 运行,但我无法让 Python 3 工作(我意识到 Azure Functions 中的 python 支持仍处于试验阶段)。
这是我尝试过的。
创建一个新的函数应用程序 - 我给它起了一个名字,其他的都默认了。
-
创建了一个 Python HttpTrigger 函数,代码如下:
import sys import os response = open(os.environ['res'], 'w') response.write(sys.version) response.close()
运行此函数会按预期提供"2.7.8 (default, Jun 30 2014, 16:03:49) [MSC v.1500 32 bit (Intel)]" 的输出,因为 2.7.8 是安装在 Azure Functions 环境中的默认 python 版本。
- 然后我使用 Kudu 将可嵌入版本的 python 3.6.1 上传到 d:\site\tools,如this Azure wiki page 中所述
当我再次运行该函数时,我得到了输出 "3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 17:54:52) [MSC v.1900 32 bit (Intel)]" - 所以一切都很好。
但是,如果我重新启动函数应用程序(或者只是将其单独放置一段时间以使其关闭),那么一切都会中断。运行函数给出:
{
"id": "dd7c4462-0d73-49e0-8779-67b15a9bba82",
"requestId": "ff553805-501d-4ea6-93f6-7bd6fa445a37",
"statusCode": 500,
"errorCode": 0,
"message": "Exception while executing function: Functions.HttpTriggerPython31 -> "
}
日志显示:
2017-11-09T17:37:04.988 Function started (Id=941e5bef-e5e0-4604-8533-dd2a5fcaddf0)
2017-11-09T17:37:05.348 Exception while executing function: Functions.HttpTriggerPython31. Microsoft.Azure.WebJobs.Script: .
2017-11-09T17:37:05.364 Function completed (Failure, Id=941e5bef-e5e0-4604-8533-dd2a5fcaddf0, Duration=363ms)
如果我从 d:\site\tools 中删除 python 文件,则函数会再次开始工作,但使用 v2.7.8 运行
但是,我可以让 python 3.x 从 Kudu 控制台运行:
D:\home\site\tools>python -c "import sys;print(sys.version)"
3.6.3 (v3.6.3:2c5fed8, Oct 3 2017, 17:26:49) [MSC v.1900 32 bit (Intel)]
还有其他人在 Azure Functions 中成功运行 Python 3 吗?我需要做什么才能使其正常工作?
【问题讨论】:
标签: python python-3.x azure azure-functions