我使用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)
Pubsub函数不会"返回"消息。他们只是消费信息,通常不在乎信息来自哪里。这不是一种双向的沟通方式。
如果您想要双向通信,请改用HTTP触发器。您可以在HTTP响应的正文中发回一条消息。
如果由于任何原因无法使用HTTP,并且必须使用pubsub,请考虑将另一条消息发布到另一个主题,并安排发件人在该主题上接收该消息。或者使用某种webhook通知某人消息已被处理。