【问题标题】:python stackdriver google functions webhook listenerpython stackdriver 谷歌函数 webhook 监听器
【发布时间】:2019-06-16 23:08:33
【问题描述】:

我正在尝试使用以下脚本在谷歌云函数中创建一个 stackdriver webhook 侦听器:

import sys
import logging
import json

from flask import Flask
from flask import Response, request

def webhook(request):
    logging.info("Stackdriver ga360_merge_ready starting up on %s" % (str.replace(sys.version, '\n', ' ')))

    app = Flask(__name__)


    @app.route('/', methods=['POST'])
    def simple_handler():
        """ Handle a webhook post with no authentication method """
        json_data = json.loads(request.data)
        logging.info(json.dumps(json_data, indent=4))
        return Response("OK")

对于以上内容,我有以下网址:

https://xxxxx.cloudfunctions.net/webhook

“webhook”是云函数名称。当我将此 URL 放入带有结尾斜杠时,根据代码,它似乎没有从堆栈驱动程序中发送消息,本质上,我希望消息也能通过,目前,我得到的只是以下三个日志条目:

不确定我错过了什么,我是 python/webhooks 世界的新手

【问题讨论】:

    标签: python google-cloud-platform google-cloud-functions stackdriver google-cloud-stackdriver


    【解决方案1】:

    您的simple_handler 永远不会被调用,因为request 永远不会被路由到您创建的app

    你的函数设置成这样是有原因的吗?我希望它是这样的:

    import sys
    import logging
    import json
    
    logging.info("Stackdriver ga360_merge_ready starting up on %s" % (str.replace(sys.version, '\n', ' ')))
    
    def webhook(request):
        """ Handle a webhook post with no authentication method """
        logging.info(json.dumps(request.get_json(), indent=4))
        return Response("OK")
    

    【讨论】:

    • 谢谢!没有理由,只是我的noobyness! :D 但我明白现在发生了什么,非常感谢。
    猜你喜欢
    • 2019-08-31
    • 1970-01-01
    • 2016-12-26
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 2014-05-10
    • 1970-01-01
    相关资源
    最近更新 更多