如何区分对同一Flask Webhook的两个不同调用?

时间:2019-08-17 20:48:55

标签: python heroku flask webhooks

我正在使用Heroku平台放置简单的Webhook,该Webhook是在python上编写的,并使用Flask。我使用的云系统向Webhook发送POST请求,向我发送一些数据,我应该做出响应。

我想保留所有请求和响应的日志。 有时会发生,云系统可能再次将相同的请求发送到我的webhook(无论出于何种原因-我没有在指定的时间或类似的时间发送响应)。

我想区分这种要求。如果我只是将有关获得的信息放到日志中,则可能会在日志中看到类似以下内容的

1)开始处理请求(第一个请求)

2)开始处理请求(第二个请求)

3)计算响应(第一个请求)

4)计算响应(第二响应)

我想在每行上添加一些唯一的标识符,例如会话ID,以过滤属于同一进程的所有条目。

这怎么可能?

这是示例代码:

# import of necessary modules
import modules

app = Flask(__name__)
app.config.from_json('config.json')


@app.route("/", methods=['GET', 'POST'])
def index():
    body = request.data
    signature = request.headers['x-pyrus-sig']
    secret = str.encode(app.config['SECRET_KEY'])

    if _is_signature_correct(body, secret, signature):
        return _prepare_response(body.decode('utf-8'))


def _is_signature_correct(message, secret, signature):
    ...
    # Verifying that request is from trusted source

def _prepare_response(body):
    ...
    # Sending the response

if __name__ == "__main__":
    app.run()

1 个答案:

答案 0 :(得分:0)

似乎与其尝试从系统中查找唯一的会话ID,不如生成自己的会话ID。

类似这样的事情: How can I generate a unique ID in Python?