python stackdriver функции google слушатель webhook - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь создать слушатель webhook стека-драйвера в облачных функциях Google, используя следующий скрипт:

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

Для вышесказанного у меня есть следующий URL:

https://xxxxx.cloudfunctions.net/webhook

"webhook" - это имя облачных функций. когда я добавляю этот URL с конечной косой чертой, как показано в коде, кажется, что он не пересылает сообщение из stackdriver, по сути, я хочу, чтобы сообщение также проходило, в настоящее время все, что я получаю, это нижеприведенные три записи в журнале:

enter image description here

Не уверен, что мне не хватает, я новичок в мире python / webhooks

1 Ответ

0 голосов
/ 23 января 2019

Ваш 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")
...