python - 通过 url 将参数传递给 python azure 函数

标签 python azure azure-functions

我正在尝试通过 azure 函数使 hello world 示例适用于 python。基本函数尝试通过 url 检索输入的名称,然后响应“Hello Name”。事实证明,通过 azure 门户提供的示例模板不能开箱即用。基本示例如下所示:

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 )接受 http POST 请求,并要求您的请求正文是具有“name”属性的 JSON 负载。

为了访问 URL 查询参数,我们将它们作为不同的环境变量提供给您。例如,如果您发送查询参数“foo”,则可以通过 os.environ['req_query_foo'] 访问它.

关于python - 通过 url 将参数传递给 python azure 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46094637/

相关文章:

database - 如何仅在 Azure Cosmos DB 中的文档创建(而不是修改)后触发 Azure 函数?

azure - 复制 Azure Application Insights 仪表板并指向新的 Application Insights 实例

azure - 如何使用Azure数据流替换列中的多个文本?

c# - 在异步 Azure 函数中捕获异常的位置

python - 在 CPU 而不是 GPU 上运行 BERT

python - Pandas :只保留累积变化超过阈值的每一行?

javascript - 在 weppy 中,我如何使用 ajax() 从 javascript 将数据发送到 python

python - 如何在Python中获取SQL Server的SYSTEM_USER

azure - 如何在Azure容器实例中设置cloud_RoleName?

python - 有人知道如何使用 Ruby 或 Python 在屏幕上显示内容(覆盖任何窗口)吗?