簡體   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