1

我正在使用具有以下代码的 Azure Function HTTP Python 模板:

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()

这一切都很好。但是当试图在我的 python 脚本包中实现它时,响应永远不会被发回。

这是我的代码的外观:

import os
import json

postreqdata = json.loads(open(os.environ['req']).read())

while True:

mode = 0

 if mode == 0:

        response = open(os.environ['res'], 'w')
        response.write("Mode selected is 0, testing has begun.")
        response.close()
        test.testing()

如您所见,我的 python 脚本test.testing()在自己的循环中运行并成功运行,但我从未得到响应。即使我把“响应”代码放在最后。

我只是想调用 HTTP POST,它执行脚本并获得 OUTPUT

“选择的模式为 0,测试已开始。”

只发送一次消息,并让test.testing()脚本在循环中发挥其魔力。

我很确定我的逻辑不正确,如果有人能指出我正确的方向,请告诉我。Python 当前版本是 2.7,不想为此升级到 3。

4

1 回答 1

0

函数应该是短暂的,它们不应该运行长循环,尤其是永恒循环。

只有在您的功能完成时才会发送响应,据我所知,上面的代码永远不会发生这种情况。

去掉While或添加一个break,并确保整个函数执行时间低于 5 分钟(或任何您的最大预期响应时间)。

于 2018-06-13T16:59:52.750 回答