How can I create a python webhook sender app?(如何创建 python webhook 发件人应用程序?)
问题描述
这是此帖子的后续问题.
我有一个通过 xxx.comdata
API 端点公开的数据仓库表
I have a data warehouse table exposed via xxx.comdata
API endpoint
我一直在使用以下代码查询该表并将其解析为如下数据框;
I have been querying this table using the following code and parsing it into a dataframe as follows;
import requests
import json
import http.client
import pandas as pd
url = "xxx.comdata?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
监听;
The warehouse table gets periodically updated and I am required to create a webhook to be listened to by the following 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 发送器.
When run,the httptrigger successfully listens to the following webhooker sender which I have created and am running locally on my disk.
import logging
import os
import json
import pandas as pd
data={'Lat': '0.000000',
'Long': '0.000000',
'Status': '1', 'Channel URL':"xxx.comdata"}
webhook_url="http://localhost:7071/api/HttpTrigger1"
r=requests.post(webhook_url, headers={'Content-Type':'application/json'}, data =json.dumps(l))
我的问题是;
- 如何将 webhook 发送器作为应用程序部署到云中,以便每次
xxx.comdata
"使用Lat==0
、Long=00
和Status=1
进行更新,是否向我的 webhook 侦听器发送了一条消息?
- How can I deploy the webhook sender to the cloud as an app so that every time "
xxx.comdata
" is updated withLat==0
,Long=00
andStatus=1
, a message is send to my webhook listener?
该应用可以是 Azure/Flask/postman 或任何其他基于 python 的 webhook 构建器.
The app can either be Azure/Flask/postman or any other python based webhook builder.
推荐答案
您目前有一些轮询逻辑(在
使用以下代码查询此表
下).如果您想将其移至云";然后 创建一个TimerTrigger
函数,并将你所有的 poller 代码放入其中.
You currently have some polling logic (under
querying this table using the following code
). If you want to move that to "Cloud" then create aTimerTrigger
function, and put all your poller code in it.
如果您想保持该轮询器代码不变,但想在云"中调用某些代码;每当轮询器检测到更改(使用 Lat==0,Long=00 和 Status=1
更新),您就可以创建一个 HTTPTrigger 函数,并在检测到更改时从轮询器调用它.
If you want to leave that poller code untouched, but want to call some code in "cloud" whenever poller detects a change (updated with Lat==0,Long=00 and Status=1
), then you can create an HTTPTrigger function and invoke it from poller whenever it detects the change.
令人困惑的部分是:您今天如何检测到这种变化?poller 代码托管在哪里,执行频率如何?
Confusing part is this: How do you detect this change today? Where is the poller code hosted and how often is it executed?
如果 DB 中的数据发生变化,那么只有您可以执行一些代码"的方法;每当数据发生变化时:
If data in DB is changing then only ways you can execute "some code" whenever the data changes is:
- 定期轮询数据库,比如每 1 分钟一次,如果有变化,则执行一些代码";或
- 此数据库的某些功能允许您配置一个 REST API(HTTP Webhook),只要有更改,该数据库就会调用该 API.实现一个 REST API(例如,作为一个
HttpTrigger
函数)并将一些代码"放在你想在里面执行.现在,只要有更改,数据库就会调用您的 webhook/REST-API 和一些代码".被执行.
- poll the DB periodically, say every 1 minute and if tehre is a change execute "some code" OR
- some feature of this DB allows you to configure a REST API (HTTP Webhook) that is called by the DB whenever there is a change. Implement a REST API (e.g. as an
HttpTrigger
function) and put that "some code" that you want executed inside it. Now whenever there is a change the DB calls your webhook/REST-API and "some code" is executed.
读取它的方法是调用 REST API (xxx.com/data?q=...
),那么您可以检测到的唯一方法
and the way to read it is to call a REST API (xxx.com/data?q=...
) then the only ways you can detect
这篇关于如何创建 python webhook 发件人应用程序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何创建 python webhook 发件人应用程序?


基础教程推荐
- 如何让 python 脚本监听来自另一个脚本的输入 2022-01-01
- 如何在海运重新绘制中自定义标题和y标签 2022-01-01
- 用于分类数据的跳跃记号标签 2022-01-01
- 在 Python 中,如果我在一个“with"中返回.块,文件还会关闭吗? 2022-01-01
- 何时使用 os.name、sys.platform 或 platform.system? 2022-01-01
- 线程时出现 msgbox 错误,GUI 块 2022-01-01
- 使用PyInstaller后在Windows中打开可执行文件时出错 2022-01-01
- Dask.array.套用_沿_轴:由于额外的元素([1]),使用dask.array的每一行作为另一个函数的输入失败 2022-01-01
- 筛选NumPy数组 2022-01-01
- Python kivy 入口点 inflateRest2 无法定位 libpng16-16.dll 2022-01-01