roo*_*roo 7 python azure python-3.x azure-functions
我的目标是将一些Python 3代码作为Azure函数运行,但我无法使Python 3工作(我发现Azure函数中的python支持仍然是实验性的).
这是我尝试过的.
创建一个新的功能应用程序 - 我给它一个名字,并将其他所有内容保留为默认值.
使用以下代码创建了一个Python HttpTrigger函数:
import sys
import os
response = open(os.environ['res'], 'w')
response.write(sys.version)
response.close()
Run Code Online (Sandbox Code Playgroud)运行此函数会得到"2.7.8 (default, Jun 30 2014, 16:03:49) [MSC v.1500 32 bit (Intel)]"预期的输出,因为2.7.8是Azure Functions环境中安装的python的默认版本.
当我再次运行该功能时,我得到输出"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 -> "
}
Run Code Online (Sandbox Code Playgroud)
日志显示:
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)
Run Code Online (Sandbox Code Playgroud)
如果我从d:\ site\tools删除python文件,那么函数再次开始工作,但运行v2.7.8
但是,我可以从Kudu控制台运行python 3.x:
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)]
Run Code Online (Sandbox Code Playgroud)
有没有其他人在Azure功能中成功运行Python 3?我需要做些什么才能让它发挥作用?
Tho*_*mas 10
目前有一个未解决的问题:
但作为一种解决方法,一切都在这里解释(作者的所有作品:Murat Eken)
使用备用Python版本安装站点扩展并配置处理程序映射以默认使用该安装.
2.1.转到"平台功能>所有设置>扩展程序> +添加"
2.2.安装"Python 3.6.2 x86"扩展.
2.3.转到"平台功能>应用程序设置"
2.4.添加处理程序映射:
扩展:FastCGI的
处理器:d:\家\ python362x86\python.exe
参数:d:\家\ python362x86\wfastcgi.py
2.5添加名为WEBSITE_USE_PLACEHOLDER的应用程序设置并将其值设置为0.这是解决Azure函数问题所必需的,该问题会导致Python扩展在卸载函数应用程序后停止工作.
2.6.保存您的应用设置.
这是我的函数的输出
"3.6.2 (v3.6.2:5fd33b5, Jul 8 2017, 04:14:34) [MSC v.1900 32 bit (Intel)]"
您可以使用ARM模板自动执行这些步骤,以下是模板的有趣部分:
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json",
"contentVersion": "1.0.0.0",
"parameters": {
//...
},
"variables": {
// ...
},
"resources": [
// ...
{
"type": "Microsoft.Web/sites",
// ...
"kind": "functionapp",
"properties": {
// ...
"siteConfig": {
"handlerMappings": [{
"arguments": "D:\\home\\python362x86\\wfastcgi.py",
"extension": "fastCgi",
"scriptProcessor": "D:\\home\\python362x86\\python.exe"
}]
// ...
},
"resources": [{
"name": "python362x86",
"type": "siteextensions",
"apiVersion": "2016-08-01",
"properties": {}
// ...
}]
// ...
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4489 次 |
| 最近记录: |