Как вернуть JSON из функций Google Cloud, используя PUBSUB в качестве триггера? - PullRequest
0 голосов
/ 28 декабря 2018

Я публикую темы, используя клиент Python pubsub, и есть настроенная облачная функция, которая запускается сообщениями pubsub.Я могу правильно запустить функцию и сгенерировать желаемое возвращаемое значение, но не могу понять, чтобы вернуть это значение на стороне издателя / клиента.Спасибо всем!

код клиента:

def call_getTime():

    message_future = publisher.publish(topic_path,
                                       data=data,
                                       )
    message_future.add_done_callback(callback)
    print(message_future.result())


def callback(message_future):
    if message_future.exception(timeout=30):
        print('Publishing message threw an Exception {}.'.format(
            message_future.exception()))
    else:
        print(message_future.result())

Облачная функция:

def getTime(data, context):
        r = {'time': time.time()}
        return flask.jsonify(r)

1 Ответ

0 голосов
/ 28 декабря 2018

Функции Pubsub не «возвращают» сообщения.Они просто потребляют сообщения, и им, как правило, все равно, откуда пришло сообщение.Это не двусторонняя форма связи.

Если вы хотите двустороннюю связь, используйте вместо нее триггер HTTP.Вы можете отправить сообщение обратно в теле ответа HTTP.

Если вы не можете использовать HTTP по какой-либо причине и должны придерживаться pubsub, рассмотрите возможность публикации другого сообщения в другой теме и договоритесь с отправителемполучить это сообщение на эту другую тему.Или используйте какой-нибудь веб-крючок, чтобы уведомить кого-то, что сообщение было обработано.

...