[英]Google Cloud PubSub - How to send multiple arguments to the Cloud Function
我一直在使用 Google Cloud PubSub 来触发 Google Cloud Functions。 到目前为止,我一直在使用一个参数“uuid”,现在我还需要发送开发/生产标志。
以下是 Google App Engine/Django 中的发布者:
publisher = pubsub_v1.PublisherClient()
topic_name = 'projects/project/topics/cloudfunction_topic'
message_to_publish = video.uuid
publisher.publish(topic_name, data=message_to_publish.encode('utf-8'), spam='')
以下是 GCF 中的订阅者部分:
if os.getenv('GCF', None):
uuid = base64.b64decode(event['data']).decode('utf-8')
我应该如何更改它以便消息中可以有多个 arguments (video.uuid, production/development)?
最简单的方法(IMO)是创建一个 json 结构,并将其序列化为发送端的 utf-8 字符串,然后将其反序列化回 json 结构
Pub/Sub 消息是 base64 编码的,因此您可以编写 json 并将其从 Pub/Sub 发送到云端 Function,或者您可以从 Pub/Bub 传递属性,即 json 和纯文本。
例如,如果您像这样手动运行 Pub/Sub:
您可以添加属性:
“测试”这个词是 base64 但是像这样的 console.dir(event) 例如......
exports.getData = (event, context) => {...
console.dir(event);
...将在 Cloud Logging 中显示:
然后很容易解析和使用您的 Cloud Function 中的 Pub/Sub 属性。显然,这是 Node,但在 Python 中它会类似。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.