Freigeben über


Konfigurieren von MQTT-Dataflowendpunkten

Wichtig

Die von Azure Arc unterstützte Vorschauversion von „Azure IoT Einsatz“ befindet sich derzeit in der Vorschauphase. Sie sollten diese Vorschausoftware nicht in Produktionsumgebungen verwenden.

Sie müssen eine neue Installation von „Azure IoT Einsatz“ bereitstellen, wenn ein allgemein verfügbares Release verfügbar wird. Sie werden kein Upgrade für eine Preview-Installation durchführen können.

Die zusätzlichen Nutzungsbestimmungen für Microsoft Azure-Vorschauen enthalten rechtliche Bedingungen. Sie gelten für diejenigen Azure-Features, die sich in der Beta- oder Vorschauversion befinden oder aber anderweitig noch nicht zur allgemeinen Verfügbarkeit freigegeben sind.

MQTT-Dataflowendpunkte werden für MQTT-Quellen und -Ziele verwendet. Sie können die Endpunkteinstellungen, Transport Layer Security (TLS), die Authentifizierung und andere Einstellungen konfigurieren.

Voraussetzungen

Lokaler MQTT-Broker für Azure IoT Einsatz

Azure IoT Einsatz bietet einen integrierten MQTT-Broker, den Sie mit Dataflows verwenden können. Wenn Sie Azure IoT Einsatz bereitstellen, wird ein standardmäßiger MQTT-Broker-Dataflowendpunkt mit Standardeinstellungen erstellt. Sie können diesen Endpunkt als Quelle oder Ziel für Dataflows verwenden.

Sie können auch neue lokale MQTT-Brokerendpunkte mit benutzerdefinierten Einstellungen erstellen. Sie können beispielsweise einen neuen MQTT-Brokerendpunkt mit einem anderen Port, einer anderen Authentifizierung oder anderen Einstellungen erstellen.

  1. Wählen Sie im Einsatzerfahrungsportal die Dataflowendpunkte aus.

  2. Wählen Sie unter Neuen Dataflowendpunkt erstellen die Option Azure IoT Einsatz – Lokaler MQTT>Neu aus.

    Screenshot zeigt das Verwenden des Einsatzerfahrungsportals zum Erstellen eines neuen lokalen MQTT-Dataflowendpunkts.

    Geben Sie die folgenden Einstellungen für den Endpunkt ein:

    Einstellung BESCHREIBUNG
    Name Der Name des Dataflowendpunkts.
    Host Der Hostname und Port des MQTT-Brokers. Verwenden Sie das Format: <hostname>:<port>.
    Authentifizierungsmethode Die für die Authentifizierung verwendete Methode. Wählen Sie Systemseitig zugewiesene verwaltete Identität oder X509-Zertifikat aus
    X509-Clientzertifikat Das für die Authentifizierung verwendete X.509-Clientzertifikat. Erforderlich bei Verwendung des X509-Zertifikats.
    X509-Clientschlüssel Der private Schlüssel, der dem X.509-Clientzertifikat entspricht. Erforderlich bei Verwendung des X509-Zertifikats.
    X509-Zwischenzertifikate Die Zwischenzertifikate für die X.509-Clientzertifikatkette. Erforderlich bei Verwendung des X509-Zertifikats.

Konfigurieren eines Dataflowendpunkts für MQTT-Broker

Sie können einen MQTT-Broker-Dataflowendpunkt für Dataflowquellen und -ziele verwenden.

Azure Event Grid

Azure Event Grid bietet einen vollständig verwalteten MQTT-Broker, der mit Azure IoT Einsatz-Dataflows arbeitet.

Zum Konfigurieren eines Azure Event Grid-Endpunkts für den MQTT-Broker empfehlen wir Ihnen die Verwendung einer verwaltete Identität für die Authentifizierung.

  1. Wählen Sie im Einsatzerfahrungsportals die Registerkarte Dataflowendpunkte aus.

  2. Wählen Sie unter Neuen Dataflowendpunkt erstellen die Option Azure Event Grid MQTT>Neu aus.

    Screenshot zeigt das Verwenden des Einsatzerfahrungsportals zum Erstellen eines Azure Event Grid-Endpunkts.

    Geben Sie die folgenden Einstellungen für den Endpunkt ein:

    Einstellung BESCHREIBUNG
    Name Der Name des Dataflowendpunkts.
    Host Der Hostname und Port des MQTT-Brokers. Verwenden Sie das Format: <hostname>:<port>.
    Authentifizierungsmethode Die für die Authentifizierung verwendete Methode. Wählen Sie Systemseitig zugewiesene verwaltete Identität, Benutzerseitig zugewiesene verwaltete Identität oder X509-Zertifikat aus
    Client-ID Die Client-ID einer benutzerseitig zugewiesenen verwalteten Identität. Erforderlich bei Verwendung einer Benutzerseitig zugewiesenen verwalteten Identität.
    Mandanten-ID Die Instanz-ID der benutzerseitig zugewiesenen verwalteten Identität. Erforderlich bei Verwendung einer Benutzerseitig zugewiesenen verwalteten Identität.
    X509-Clientzertifikat Das für die Authentifizierung verwendete X.509-Clientzertifikat. Erforderlich bei Verwendung des X509-Zertifikats.
    X509-Clientschlüssel Der private Schlüssel, der dem X.509-Clientzertifikat entspricht. Erforderlich bei Verwendung des X509-Zertifikats.
    X509-Zwischenzertifikate Die Zwischenzertifikate für die X.509-Clientzertifikatkette. Erforderlich bei Verwendung des X509-Zertifikats.
  3. Wählen Sie Übernehmen aus, um den Endpunkt bereitzustellen.

Nachdem der Endpunkt erstellt wurde, können Sie ihn in einem Dataflow verwenden, um eine Verbindung mit dem Event Grid-MQTT-Broker als Quelle oder Ziel herzustellen. Die MQTT-Themen werden im Dataflow konfiguriert.

Verwenden der X.509-Zertifikatauthentifizierung mit Event Grid

Wir empfehlen die Verwendung der verwalteten Identität für die Authentifizierung. Sie können auch die X.509-Zertifikatauthentifizierung mit dem Event Grid-MQTT-Broker verwenden.

Wenn Sie die X.509-Authentifizierung mit einem MQTT-Broker für Event Grid verwenden, wechseln Sie zum Event Grid-Namespace >Configuration, und überprüfen Sie die folgenden Einstellungen:

  • MQTT aktivieren: Aktivieren Sie das Kontrollkästchen.
  • Alternative Namensquellen für die Clientauthentifizierung aktivieren: Aktivieren Sie das Kontrollkästchen.
  • Zertifikatsantragstellername: Wählen Sie diese Option in der Dropdownliste aus.
  • Maximale Clientsitzungen pro Authentifizierungsname: Legen Sie diesen Wert auf 3 oder mehr fest.

Mit den Optionen für die alternative Clientauthentifizierung und die maximalen Clientsitzungen können Datenflüsse zur Authentifizierung den Antragstellernamen für das Clientzertifikat anstelle von MQTT CONNECT Username verwenden. Diese Funktion ist wichtig, damit Datenflüsse mehrere Instanzen erzeugen und weiterhin eine Verbindung herstellen können. Weitere Informationen finden Sie unter MQTT-Clientzertifikatauthentifizierung in Event Grid und Unterstützung für mehrere Sitzungen.

Einschränkung des gemeinsamen Event Grid-Abonnements

Der Azure Event Grid-MQTT-Broker unterstützt keine gemeinsamen Abonnements, was bedeutet, dass Sie die instanceCount im Dataflowprofil nicht auf mehr als 1 festlegen können. Wenn Sie instanceCount auf einen Wert größer als 1 festlegen, kann der Dataflow nicht gestartet werden.

Weitere MQTT-Broker

Bei anderen MQTT-Brokern können Sie den Endpunkt, TLS, die Authentifizierung und weitere Einstellungen nach Bedarf konfigurieren.

  1. Wählen Sie im Einsatzerfahrungsportals die Registerkarte Dataflowendpunkte aus.

  2. Wählen Sie unter Neuen Dataflowendpunkt erstellen die Option Benutzerdefinierter MQTT-Broker>Neu aus.

    Screenshot zeigt das Verwenden des Einsatzerfahrungsportals zum Erstellen eines benutzerdefinierten MQTT-Brokerendpunkts.

  3. Geben Sie die folgenden Einstellungen für den Endpunkt ein:

    Einstellung BESCHREIBUNG
    Name Der Name des Dataflowendpunkts
    Host Der Hostname des MQTT-Brokerendpunkts im Format <hostname>.<port>.
    Authentifizierungsmethode Die für die Authentifizierung verwendete Methode. Wählen Sie Systemseitig zugewiesene verwaltete Identität, Benutzerseitig zugewiesene verwaltete Identität oder Dienstkontotoken aus.
    Dienstzielgruppe Die Zielgruppe für das Dienstkontotoken. Erforderlich, wenn das Dienstkontotoken verwendet wird.
    Client-ID Die Client-ID einer benutzerseitig zugewiesenen verwalteten Identität. Erforderlich bei Verwendung einer Benutzerseitig zugewiesenen verwalteten Identität.
    Mandanten-ID Die Instanz-ID der benutzerseitig zugewiesenen verwalteten Identität. Erforderlich bei Verwendung einer Benutzerseitig zugewiesenen verwalteten Identität.
    Name des geheimen Tokenschlüssels für den Zugriff Der Name des Kubernetes-Geheimnisses, der das SAS-Token enthält. Erforderlich bei Verwendung des Zugriffstokens.
  4. Wählen Sie Übernehmen aus, um den Endpunkt bereitzustellen.

Verwenden des Endpunkts in einer Dataflowquelle oder einem Dataflowziel

Nachdem Sie den Endpunkt konfiguriert haben, können Sie ihn in einem Dataflow sowohl als Quelle als auch als Ziel verwenden. Die MQTT-Themen werden in den Einstellungen der Dataflowquellen oder -ziele konfiguriert, sodass Sie dieselbe DataflowEndpoint-Ressource mit mehreren Dataflows und verschiedenen MQTT-Themen wiederverwenden können.

  1. Erstellen Sie im Azure IoT Einsatz Vorschau-Portal einen neuen Dataflow, oder bearbeiten Sie einen vorhandenen Dataflow, indem Sie die Registerkarte Dataflows auswählen. Wenn Sie einen neuen Dataflow erstellen, wählen Sie Dataflow erstellen aus, und ersetzen Sie <new-dataflow> mit dem Namen für den Dataflow.

  2. Wählen Sie im Editor MQTT als Endpunkt für den Quelldataflow aus.

    Geben Sie die folgenden Einstellungen für den Quellendpunkt ein:

    Einstellung Beschreibung
    MQTT-Themen Das Thema, für das der Dataflow abonniert (wenn Quelle) oder veröffentlicht (wenn Ziel).
    Nachrichtenschema Das Schema, das die Struktur der empfangenen (wenn Quelle) oder gesendeten (wenn Ziel) Nachrichten definiert. Sie können ein vorhandenes Schema auswählen oder ein neues Schema in die Schemaregistrierung hochladen.
  3. Wählen Sie den Dataflowendpunkt für das Ziel aus. Wählen Sie einen vorhandenen MQTT-Dataflowendpunkt aus. Der Endpunkt des MQTT-Standardbrokers oder ein benutzerdefinierter MQTT-Brokerendpunkt.

  4. Wählen Sie Fortfahren aus, um die Zieleinstellungen zu konfigurieren.

  5. Geben Sie das MQTT-Thema ein, in dem der Dataflow Nachrichten veröffentlicht.

  6. Wählen Sie Übernehmen aus, um den Dataflow bereitzustellen.

    Screenshot zeigt das Verwenden des Einsatzerfahrungsportals zum Erstellen eines Dataflows mit einer MQTT-Quelle und einem MQTT-Ziel.

Weitere Informationen zu den Einstellungen für Dataflowziele finden Sie unter Erstellen eines Dataflows.

Weitere Informationen zum Anpassen der MQTT-Endpunkteinstellungen finden Sie in den folgenden Abschnitten.

Verfügbare Authentifizierungsmethoden

Die folgenden Authentifizierungsmethoden sind für Dataflowendpunkte des MQTT-Brokers verfügbar. Weitere Informationen zum Aktivieren sicherer Einstellungen durch Konfigurieren eines Azure Key Vault und Aktivieren von Workloadidentitäten finden Sie unter Aktivieren sicherer Einstellungen in der Azure IoT Einsatz Vorschau-Bereitstellung.

X.509-Zertifikat

Viele MQTT Vermittler, z. B. Event Grid unterstützen die X.509-Authentifizierung. Dataflows können ein X.509-Clientzertifikat präsentieren und die TLS-Kommunikation aushandeln.

Um die X.509-Zertifikatauthentifizierung zu verwenden, müssen Sie ein Geheimnis mit dem Zertifikat und dem privaten Schlüssel erstellen. Verwenden Sie das Kubernetes-TLS-Geheimnis, welches das öffentliche Zertifikat und den privaten Schlüssel enthält. Zum Beispiel:

kubectl create secret tls my-tls-secret -n azure-iot-operations \
  --cert=path/to/cert/file \
  --key=path/to/key/file

Wählen Sie auf der Seite „Einstellungen“ für den Dataflowendpunkt im Einsatzerfahrungsportal die Registerkarte Allgemeine Informationen aus und dann Authentifizierungsmethode>X509-Zertifikat.

Geben Sie die folgenden Einstellungen für den Endpunkt ein:

Einstellung Beschreibung
X509-Clientzertifikat Das für die Authentifizierung verwendete X.509-Clientzertifikat.
X509-Zwischenzertifikate Die Zwischenzertifikate für die X.509-Clientzertifikatkette.
X509-Clientschlüssel Der private Schlüssel, der dem X.509-Clientzertifikat entspricht.

Systemseitig zugewiesene verwaltete Identität

Um die systemseitig zugewiesene verwaltete Identität für die Authentifizierung zu verwenden, müssen Sie kein Geheimnis erstellen. Die systemseitig zugewiesene verwaltete Identität wird verwendet, um sich beim MQTT-Broker zu authentifizieren.

Bevor Sie den Endpunkt konfigurieren, stellen Sie sicher, dass die verwaltete Azure IoT Einsatz-Identität über die erforderlichen Berechtigungen zum Herstellen einer Verbindung mit dem MQTT-Broker verfügt. Weisen Sie beispielsweise mit dem Azure Event Grid-MQTT-Broker die verwaltete Identität dem Event Grid-Namespace oder dem Themenbereich mit einer geeigneten Rolle zu.

Konfigurieren Sie dann den Endpunkt mit den Einstellungen der systemseitig zugewiesenen verwalteten Identität. In den meisten Fällen können Sie bei Verwendung mit Event Grid die Einstellungen leer lassen, wie im folgenden Beispiel gezeigt. Dadurch wird die Zielgruppe der verwalteten Identität auf die allgemeine Event Grid-Zielgruppe https://eventgrid.azure.net festgelegt.

Wählen Sie auf der Seite „Einstellungen“ für den Dataflowendpunkt im Einsatzerfahrungsportal die Registerkarte Allgemeine Informationen aus und dann Authentifizierungsmethode>Systemseitig zugewiesene verwaltete Identität.

Benutzerseitig zugewiesene verwaltete Identität

Wählen Sie auf der Seite „Einstellungen“ für den Dataflowendpunkt im Einsatzerfahrungsportal die Registerkarte Allgemeine Informationen aus und dann Authentifizierungsmethode>Benutzerseitig zugewiesene verwaltete Identität.

Geben Sie die Client-ID und die Mandanten-ID der benutzerseitig zugewiesenen verwalteten Identität in die entsprechenden Felder ein.

Kubernetes Dienstkontotoken (Service Account Token, SAT)

Um ein Kubernetes-Dienstkontotoken (Service Account Token, SAT) für die Authentifizierung zu verwenden, müssen Sie kein Geheimnis erstellen. Das SAT wird verwendet, um sich beim MQTT-Broker zu authentifizieren.

Wählen Sie auf der Seite „Einstellungen“ für den Dataflowendpunkt im Einsatzerfahrungsportal die Registerkarte Allgemeine Informationen aus und dann Authentifizierungsmethode>Dienstkontotoken.

Geben Sie die Dienstzielgruppe ein.

Wenn die Zielgruppe nicht angegeben ist, wird die Standardzielgruppe für den Azure IoT Einsatz-MQTT-Broker verwendet.

Anonym

Um die anonyme Authentifizierung zu verwenden, legen Sie die Authentifizierungsmethode auf Anonymous fest.

mqttSettings:
  authentication:
    method: Anonymous
    anonymousSettings:
      {}

Erweiterte Einstellungen

Sie können erweiterte Einstellungen für den MQTT-Broker-Dataflowendpunkt festlegen, z. B. TLS, vertrauenswürdiges Zertifizierungsstellenzertifikat, MQTT-Nachrichteneinstellungen und CloudEvents. Sie können diese Einstellungen auf der Portalregisterkarte Erweitert des Dataflowendpunkts oder in der benutzerdefinierten Ressource des Dataflowendpunkts festlegen.

Wählen Sie im Einsatzerfahrungsportal die Registerkarte Erweitert für den Dataflowendpunkt aus.

Screenshot zeigt das Verwenden des Einsatzerfahrungsportals zum Festlegen erweiterter Einstellungen des Kafka-Dataflowendpunkts.

Einstellung Beschreibung
Quality of Service (QoS, Servicequalität) Definiert die Garantiestufe für die Nachrichtenübermittlung. Die Werte sind 0 (höchstens einmal) oder 1 (mindestens einmal). Der Standardwert ist 1.
Keep-Alive Das Keepalive-Intervall (in Sekunden) ist die maximale Zeit, die der Dataflowclient im Leerlauf sein kann, bevor eine PINGREQ-Nachricht an den Broker gesendet wird. Der Standardwert ist 60 Sekunden.
Maximale Anzahl von In-Flight-Nachrichten Sie können die maximale Anzahl von In-Flight-Nachrichten festlegen, die der MQTT-Dataflowclient haben kann. Der Standard ist 100.
Protokoll Standardmäßig ist WebSockets nicht aktiviert. Um MQTT über WebSockets zu verwenden, legen Sie das Protokoll auf WebSockets fest.
Beibehalten V Geben Sie an, ob der Dataflow die Aufbewahrungskennzeichnung für MQTT-Nachrichten beibehalten soll. Der Standardwert ist „Beibehalten“.
Sitzungsablauf Das Sitzungsablaufintervall (in Sekunden) ist die maximale Zeit, die eine MQTT-Sitzung beibehalten wird, wenn der Dataflowclient getrennt wird. Der Standardwert ist 3600 Sekunden.
TLS-Modus aktiviert Gibt an, ob TLS für die sichere Kommunikation mit dem MQTT-Broker aktiviert ist.
Client-ID-Präfix Die Client-ID wird durch Anfügen des Instanznamens des Dataflows an das Präfix generiert.
Cloudereignisattribute Für das Verteilen werden CloudEvent-Eigenschaften für Nachrichten übergeben, welche die erforderlichen Eigenschaften enthalten. Wenn die Nachricht die erforderlichen Eigenschaften nicht enthält, wird die Nachricht unverändert übergeben. Für das Erstellen oder erneute Zuordnen werden CloudEvent-Eigenschaften für Nachrichten übergeben, welche die erforderlichen Eigenschaften enthalten. Wenn die Nachricht die erforderlichen Eigenschaften nicht enthält, werden die Eigenschaften generiert.