Google Cloud Pub/Sub – Basic Example mit Python

Verfasst von

in

Ein Reminder für mich und vielleicht hilft es noch jemand anderem. Damit das ganze lokal getestet werden kann muss der pubsub emulator installiert werden:

gcloud beta emulators pubsub start

# Um dem Programm zu sagen, dass es auf den Emulator geht folgende Zeilen in jedem Terminal ausführen:

set PUBSUB_PROJECT_ID=rapnika-cluster
set PUBSUB_EMULATOR_HOST=localhost:8085

Publish

from google.cloud import pubsub
project           = "rapnika-cluster"
subscription_topic = "zwn-processor"

publisher = pubsub.PublisherClient()
topic_path = publisher.topic_path(project, subscription_topic)

try:
    topic = publisher.create_topic(topic_path)
except Exception:
    app.logger.info("Topic already exists")
data = "ein test"
data = data.encode('utf-8')
publisher.publish(topic_path, data=data)

Subscribe

project           = "rapnika-cluster"
subscription_name = "subscription-test"
subscription_topic = "zwn-processor"


subscriber = pubsub_v1.SubscriberClient()
topic_path = subscriber.topic_path(project, subscription_topic)
subscription_path = subscriber.subscription_path(project, subscription_name)

try:
    subscription = subscriber.create_subscription(subscription_path, topic_path)
    print('Subscription created: {}'.format(subscription))
except:
    app.logger.info("subscriptions already exists")


def callback(message):
    print('Received message: {}'.format(message))
    message.ack()

subscriber.subscribe(subscription_path, callback=callback)

Weiterführende Links

Die folgenden Links könnten nützlich sein:

  • https://cloud.google.com/pubsub/docs/pull
  • https://cloud.google.com/pubsub/docs/publisher
  • https://cloud.google.com/pubsub/docs/admin
  • https://cloud.google.com/pubsub/docs/emulator