Schnellstart: Senden und Empfangen von Ereignissen mit Event Hubs mithilfe von Python (Version 1 von „azure-eventhub“)Quickstart: Send and receive events with Event Hubs using Python (azure-eventhub version 1)

In dieser Schnellstartanleitung erfahren Sie, wie Sie mithilfe des Python-Pakets azure-eventhub (Version 1) Ereignisse an einen Event Hub senden bzw. von dort empfangen.This quickstart shows how to send events to and receive events from an event hub using the azure-eventhub version 1 Python package.

Warnung

In dieser Schnellstartanleitung wird das alte Paket „azure-eventhub“ (Version 1) verwendet.This quickstart uses the old azure-eventhub version 1 package. Eine Schnellstartanleitung, in der die aktuelle Version 5 des Pakets verwendet wird, finden Sie unter Senden oder Empfangen von Ereignissen an bzw. von Event Hubs unter Verwendung von Python (Version 5 von „azure-eventhub“).For a quickstart that uses the latest version 5 of the package, see Send and receive events using azure-eventhub version 5. Informationen zur Umstellung Ihrer Anwendung vom alten auf das neue Paket finden Sie im Leitfaden zur Migration von Version 1 von „azure-eventhub“ zu Version 5.To move your application from using the old package to new one, see the Guide to migrate from azure-eventhub version 1 to version 5.

VoraussetzungenPrerequisites

Wenn Sie mit Azure Event Hubs noch nicht vertraut sind, lesen Sie vor dem Durcharbeiten dieser Schnellstartanleitung die Informationen unter Übersicht über Event Hubs.If you are new to Azure Event Hubs, see Event Hubs overview before you do this quickstart.

Zum Durchführen dieser Schnellstartanleitung benötigen Sie Folgendes:To complete this quickstart, you need the following prerequisites:

  • Microsoft Azure-Abonnement.Microsoft Azure subscription. Für die Verwendung von Azure-Diensten benötigen Sie ein Abonnement. Das gilt auch für Azure Event Hubs.To use Azure services, including Azure Event Hubs, you need a subscription. Falls Sie noch nicht über ein Azure-Konto verfügen, können Sie sich für eine kostenlose Testversion registrieren oder beim Erstellen eines Kontos Ihre MSDN-Abonnentenvorteile nutzen.If you don't have an existing Azure account, you can sign up for a free trial or use your MSDN subscriber benefits when you create an account.

  • Python 3.4 oder höher mit installiertem und aktualisiertem pip.Python 3.4 or later, with pip installed and updated.

  • Das Python-Paket für Event Hubs.The Python package for Event Hubs. Um das Paket zu installieren, führen Sie diesen Befehl in einer Eingabeaufforderung aus, in deren Pfad Python enthalten ist:To install the package, run this command in a command prompt that has Python in its path:

    pip install azure-eventhub==1.3.*
    
  • Erstellen Sie einen Event Hubs-Namespace und einen Event Hub.Create an Event Hubs namespace and an event hub. Verwenden Sie zunächst das Azure-Portal, um einen Namespace vom Typ „Event Hubs“ zu erstellen, und beschaffen Sie die Verwaltungsanmeldeinformationen, die Ihre Anwendung für die Kommunikation mit dem Event Hub benötigt.The first step is to use the Azure portal to create a namespace of type Event Hubs, and obtain the management credentials your application needs to communicate with the event hub. Erstellen Sie anhand der Anleitung in diesem Artikel einen Namespace und einen Event Hub.To create a namespace and an event hub, follow the procedure in this article. Gehen Sie anschließend wie im Artikel beschrieben vor, um den Wert des Zugriffsschlüssels für den Event Hub abzurufen: Abrufen der Verbindungszeichenfolge.Then, get the value of access key for the event hub by following instructions from the article: Get connection string. Sie verwenden den Zugriffsschlüssel im Code, den Sie später in dieser Schnellstartanleitung schreiben.You use the access key in the code you write later in this quickstart. Der Standardschlüsselname lautet: RootManageSharedAccessKey.The default key name is: RootManageSharedAccessKey.

Senden von EreignisseSend events

Um eine Python-Anwendung zu erstellen, die Ereignisse an einen Event Hub sendet:To create a Python application that sends events to an event hub:

Hinweis

Anstatt den Schnellstart durchzuarbeiten, können Sie auch die Beispiel-Apps von GitHub herunterladen und ausführen.Instead of working through the quickstart, you can download and run the sample apps from GitHub. Ersetzen Sie die Zeichenfolgen EventHubConnectionString und EventHubName durch Ihre Event Hub-Werte.Replace the EventHubConnectionString and EventHubName strings with your event hub values.

  1. Öffnen Sie Ihren bevorzugten Python-Editor, z. B. Visual Studio Code.Open your favorite Python editor, such as Visual Studio Code

  2. Erstellen Sie eine neue Datei mit dem Namen send.py.Create a new file called send.py. Dieses Skript sendet 100 Ereignisse an Ihren Event Hub.This script sends 100 events to your event hub.

  3. Fügen Sie den folgenden Code in send.py ein, und ersetzen Sie dabei die Angaben <namespace>, <eventhub>, <AccessKeyName> und <primary key value> von Event Hubs durch Ihre Werte:Paste the following code into send.py, replacing the Event Hubs <namespace>, <eventhub>, <AccessKeyName>, and <primary key value> with your values:

    import sys
    import logging
    import datetime
    import time
    import os
    
    from azure.eventhub import EventHubClient, Sender, EventData
    
    logger = logging.getLogger("azure")
    
    # Address can be in either of these formats:
    # "amqps://<URL-encoded-SAS-policy>:<URL-encoded-SAS-key>@<namespace>.servicebus.windows.net/eventhub"
    # "amqps://<namespace>.servicebus.windows.net/<eventhub>"
    # SAS policy and key are not required if they are encoded in the URL
    
    ADDRESS = "amqps://<namespace>.servicebus.windows.net/<eventhub>"
    USER = "<AccessKeyName>"
    KEY = "<primary key value>"
    
    try:
        if not ADDRESS:
            raise ValueError("No EventHubs URL supplied.")
    
        # Create Event Hubs client
        client = EventHubClient(ADDRESS, debug=False, username=USER, password=KEY)
        sender = client.add_sender(partition="0")
        client.run()
        try:
            start_time = time.time()
            for i in range(100):
                print("Sending message: {}".format(i))
                message = "Message {}".format(i)
                sender.send(EventData(message))
        except:
            raise
        finally:
            end_time = time.time()
            client.stop()
            run_time = end_time - start_time
            logger.info("Runtime: {} seconds".format(run_time))
    
    except KeyboardInterrupt:
        pass
    
  4. Speichern Sie die Datei .Save the file.

Um das Skript auszuführen, führen Sie den folgenden Befehl aus dem Verzeichnis aus, in dem Sie send.py gespeichert haben:To run the script, from the directory where you saved send.py, run this command:

start python send.py

Glückwunsch!Congratulations! Sie haben jetzt Nachrichten an einen Event Hub gesendet.You have now sent messages to an event hub.

Empfangen von EreignissenReceive events

Um eine Python-Anwendung zu erstellen, die Ereignisse von einem Event Hub empfängt:To create a Python application that receives events from an event hub:

  1. Erstellen Sie in Ihrem Python-Editor eine Datei namens recv.py.In your Python editor, create a file called recv.py.

  2. Fügen Sie den folgenden Code in recv.py ein, und ersetzen Sie dabei die Angaben <namespace>, <eventhub>, <AccessKeyName> und <primary key value> von Event Hubs durch Ihre Werte:Paste the following code into recv.py, replacing the Event Hubs <namespace>, <eventhub>, <AccessKeyName>, and <primary key value> with your values:

    import os
    import sys
    import logging
    import time
    from azure.eventhub import EventHubClient, Receiver, Offset
    
    logger = logging.getLogger("azure")
    
    # Address can be in either of these formats:
    # "amqps://<URL-encoded-SAS-policy>:<URL-encoded-SAS-key>@<mynamespace>.servicebus.windows.net/myeventhub"
    # "amqps://<namespace>.servicebus.windows.net/<eventhub>"
    # SAS policy and key are not required if they are encoded in the URL
    
    ADDRESS = "amqps://<namespace>.servicebus.windows.net/<eventhub>"
    USER = "<AccessKeyName>"
    KEY = "<primary key value>"
    
    
    CONSUMER_GROUP = "$default"
    OFFSET = Offset("-1")
    PARTITION = "0"
    
    total = 0
    last_sn = -1
    last_offset = "-1"
    client = EventHubClient(ADDRESS, debug=False, username=USER, password=KEY)
    try:
        receiver = client.add_receiver(
            CONSUMER_GROUP, PARTITION, prefetch=5000, offset=OFFSET)
        client.run()
        start_time = time.time()
        for event_data in receiver.receive(timeout=100):
            print("Received: {}".format(event_data.body_as_str(encoding='UTF-8')))
            total += 1
    
        end_time = time.time()
        client.stop()
        run_time = end_time - start_time
        print("Received {} messages in {} seconds".format(total, run_time))
    
    except KeyboardInterrupt:
        pass
    finally:
        client.stop()
    
  3. Speichern Sie die Datei .Save the file.

Um das Skript auszuführen, führen Sie den folgenden Befehl aus dem Verzeichnis aus, in dem Sie recv.py gespeichert haben:To run the script, from the directory where you saved recv.py, run this command:

start python recv.py

Nächste SchritteNext steps

Weitere Informationen zu Event Hubs finden Sie in den folgenden Artikeln:For more information about Event Hubs, see the following articles: