Schlagwort: Python

  • Google Cloud Pub/Sub – Basic Example mit Python

    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