繁体   English   中英

Google Cloud PubSub - 如何将多个 arguments 发送到云端 Function

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM