【发布时间】:2021-01-12 04:11:11
【问题描述】:
这是post 的后续问题。
我有一个通过xxx.com\data API 端点公开的数据仓库表
我一直在使用以下代码查询此表并将其解析为数据框,如下所示;
import requests
import json
import http.client
import pandas as pd
url = "xxx.com\data?q=Active%20%3D1%20and%20LATITUDE%20%3D%20%20%220.000000%22%20and%20LONGITUDE%20%3D%20%220.000000%22&pageSize =300"
payload = {}
headers = {'Authorization': access_token}
response = requests.request("GET", url, headers=headers, data = payload)
j=json.loads(response.text.encode('utf8'))
df = pd.json_normalize(j['DataSet'])
仓库表会定期更新,我需要创建一个 webhook 以供以下 Azure httptrigger 监听;
import logging
import os
import json
import pandas as pd
import azure.functions as func
def main(req: func.HttpRequest) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')
d={
'Date' :['2016-10-30','2016-10-30','2016-11-01','2016-10-30'],
'Time':['09:58:11', '10:05:34', '10:07:57', '11:15:32'],
'Transaction':[2,3,1,1]
}
df=pd.DataFrame(d, columns=['Date','Time','Transaction'])
output = df.to_csv (index_label="idx", encoding = "utf-8")
return func.HttpResponse(output)
运行时,httptrigger 成功侦听了我创建并在我的磁盘上本地运行的以下 webhooker 发送器。
import logging
import os
import json
import pandas as pd
data={'Lat': '0.000000',
'Long': '0.000000',
'Status': '1', 'Channel URL':"xxx.com\data"}
webhook_url="http://localhost:7071/api/HttpTrigger1"
r=requests.post(webhook_url, headers={'Content-Type':'application/json'}, data =json.dumps(l))
我的问题是;
- 如何将 webhook 发送器作为应用程序部署到云中,以便每次使用
Lat==0、Long=00和Status=1更新“xxx.com\data”时,都会向我的 webhook 侦听器发送一条消息?
该应用可以是 Azure/Flask/postman 或任何其他基于 python 的 webhook 构建器。
【问题讨论】:
-
你想让webhook sender持续运行吗(当表中的数据发生变化时,向httptrigger发送请求)?
-
Yap,一个 webhook 发件人,最好在 Azure 上部署为应用程序。如果应用程序是在任何其他平台上开发的,只要它是 python 驱动的,请不要介意。
-
您的问题仍然很不清楚,并且使用了诸如“webhooker sender”之类的虚构术语。 Webhook 是某人调用的回调 URL。一个人不会“听” webhooker。反正。我会尝试发布一个答案,因为它不适合这个评论框。
-
@Kashyap 我们不能调用 webhooks url....它们是自定义函数的 url。这个函数有一个listerner url、polling url和payload。否则每个 url 都会是一个 webhook,不是吗?
标签: python flask azure-functions azure-web-app-service