我试图通过 azure 函数使 hello world 示例适用于 python。基本函数尝试通过 url 检索输入的名称,然后响应“Hello Name”。事实证明,通过天蓝色门户提供的示例模板不能开箱即用。基本示例如下所示:
import os
import json
postreqdata = json.loads(open(os.environ['req']).read())
response = open(os.environ['res'], 'w')
response.write("hello world from "+postreqdata['name'])
response.close()
两个环境变量 req 和 res 是将函数的输入和输出存储为 json 的临时文件的路径。这个想法是通过 url 传递的输入应该在 json.loads() 返回的字典中可用。唯一的困境是,无论我做什么,位于 os.environ['req'] 的文件都是空的。
os.path.isfile(os.environ['req'])
# Returns True so the file is located at:
# D:\local\Temp\Functions\Binding\79fcec12-baf3-470e-87c3-113f64ffcef0\req
# during the execution
我也尝试了 Hello world JavaScript 示例,它可以直接在 azure-functions 上开箱即用。我的 python 脚本在 azure-portal 中执行时工作正常,但在从 Web 浏览器触发时失败。
该函数在 Python 2.7.13 上运行,扩展名 &name=MyName 为 https 地址。
我相信错误不在脚本本身中,而是隐藏在主干的某个地方。有人尝试过同样的吗?
您参考的默认示例(来源here https://github.com/Azure/azure-webjobs-sdk-templates/tree/dev/Functions.Templates/Templates/HttpTrigger-Python) 接受 http POST 请求,并要求您的请求正文是具有“name”属性的 JSON 有效负载。
为了访问 URL 查询参数,我们将它们作为不同的环境变量提供给您。例如,如果您发送查询参数“foo”,您可以通过以下方式访问它os.environ['req_query_foo']
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)