Schnellstart: Veröffentlichen und Abonnieren von MQTT-Nachrichten im Event Grid-Namespace mit dem Azure-Portal
In diesem Artikel wird das Azure-Portal für die folgenden Aufgaben verwendet:
- Erstellen eines Event Grid-Namespaces und Aktivieren von MQTT-Vermittlers
- Erstellen von Unterressourcen wie Clients, Clientgruppen und Themenbereichen
- Gewähren des Zugriffs von Clients zum Veröffentlichen und Abonnieren von Themenbereichen
- Veröffentlichen und Empfangen von Nachrichten zwischen Clients
Voraussetzungen
- Falls Sie über kein Azure-Abonnement verfügen, erstellen Sie ein kostenloses Azure-Konto.
- Wenn Sie noch nicht mit Azure Event Grid vertraut sind, lesen Sie den Überblick über Event Grid, bevor Sie mit diesem Tutorial beginnen.
- Stellen Sie sicher, dass Port 8883 in Ihrer Firewall geöffnet ist. Für das Beispiel in diesem Tutorial wird das MQTT-Protokoll verwendet, das über Port 8883 kommuniziert. In einigen Netzwerkumgebungen von Unternehmen oder Bildungseinrichtungen ist dieser Port unter Umständen blockiert.
- Sie benötigen ein X.509-Clientzertifikat, um den Fingerabdruck zu generieren und die Clientverbindung zu authentifizieren.
Generieren eines Beispielclientzertifikats und Fingerabdrucks
Wenn Sie noch kein Zertifikat besitzen, können Sie mit der Step CLI ein Beispielzertifikat generieren. Erwägen Sie die manuelle Installation für Windows.
Nach einer erfolgreichen Installation von Step sollten Sie eine Eingabeaufforderung in Ihrem Benutzerprofilordner öffnen (WINDOWS+R, geben Sie %USERPROFILE% ein).
Führen Sie den folgenden Befehl aus, um Stamm- und Zwischenzertifikate zu erstellen. Merken Sie sich das Kennwort. Es muss im nächsten Schritt verwendet werden.
step ca init --deployment-type standalone --name MqttAppSamplesCA --dns localhost --address 127.0.0.1:443 --provisioner MqttAppSamplesCAProvisioner
Verwenden der generierten Zertifizierungsstellendateien zum Erstellen eines Zertifikats für den ersten Client. Stellen Sie sicher, dass Sie den richtigen Pfad für die Zertifikat- und Geheimnisdateien im Befehl verwenden.
step certificate create client1-authn-ID client1-authn-ID.pem client1-authn-ID.key --ca .step/certs/intermediate_ca.crt --ca-key .step/secrets/intermediate_ca_key --no-password --insecure --not-after 2400h
Führen Sie zum Anzeigen des Fingerabdrucks den Step-Befehl aus.
step certificate fingerprint client1-authn-ID.pem
Erstellen Sie nun ein Zertifikat für den zweiten Client
step certificate create client2-authn-ID client2-authn-ID.pem client2-authn-ID.key --ca .step/certs/intermediate_ca.crt --ca-key .step/secrets/intermediate_ca_key --no-password --insecure --not-after 2400h
Um den Fingerabdruck anzuzeigen, der mit dem zweiten Client verwendet werden soll, führen Sie den Step-Befehl aus:
step certificate fingerprint client2-authn-ID.pem
Erstellen eines Namespace
Melden Sie sich beim Azure-Portalan.
Geben Sie auf der Suchleiste „Event Grid-Namespaces“ ein, und wählen Sie dann Event Grid-Namespaces aus der Dropdownliste aus.
Wählen Sie auf der Seite „Event Grid-Namespaces“ die Option + Erstellen auf der Symbolleiste aus.
Führen Sie auf der Seite „Namespace erstellen“ die folgenden Schritte aus:
Wählen Sie Ihr Azure-Abonnement.
Wählen Sie eine bereits vorhandene Ressourcengruppe aus, oder wählen Sie „Neu erstellen“ aus, und geben Sie einen Namen für die Ressourcengruppe ein.
Geben Sie einen eindeutigen Namen für den Namespace an. Der Namespacename muss pro Region eindeutig sein, da er einen DNS-Eintrag darstellt. Verwenden Sie nicht den Namen, der in der Abbildung zu sehen ist. Erstellen Sie stattdessen einen eigenen Namen. Dieser muss zwischen drei und 50 Zeichen lang sein und darf nur folgende Zeichen enthalten: a–z, A–Z, 0–9 und Bindestriche (
-
).Wählen Sie einen Speicherort für den Event Grid-Namespace aus. Derzeit ist der Event Grid-Namespace nur in ausgewählten Regionen verfügbar.
Wählen Sie am unteren Rand der Seite die Option Bewerten + erstellen aus.
Wählen Sie auf der Registerkarte Überprüfen und erstellen der Seite Namespace erstellen die Option Erstellen aus.
Hinweis
Um den Schnellstart einfach zu halten, verwenden Sie nur die Seite „Grundeinstellungen“, um einen Namespace zu erstellen. Ausführliche Schritte zur Konfiguration von Netzwerk-, Sicherheits- und anderen Einstellungen auf anderen Seiten des Assistenten finden Sie unter Erstellen eines Namespaces.
Nachdem die Bereitstellung erfolgreich war, wählen Sie Zu Ressource wechseln, um zur Übersichtsseite des Event Grid-Namespaces für Ihren Namespace zu navigieren.
Auf der Übersichtsseite sehen Sie, dass sich der MQTT-Vermittler im Status Deaktiviert befindet. Um den MQTT-Vermittler zu aktivieren, wählen Sie den Link Deaktiviert aus, der Sie zur Konfigurationsseite weiterleitet.
Wählen Sie auf der Seite Konfiguration die Option MQTT-Vermittler aktivieren und dann Anwenden aus, um die Einstellungen zu übernehmen.
Erstellen von Clients
Wählen Sie im linken Menü im Abschnitt MQTT-Vermittler die Option Clients aus.
Wählen Sie auf der Seite Clients die Option + Client auf der Symbolleiste aus.
Geben Sie auf der Seite Client erstellen unter Name einen Namen für den Client ein. Clientnamen müssen in einem Namespace eindeutig sein.
Der Clientauthentifizierungsname ist standardmäßig der Clientname. Ändern Sie ihn für dieses Tutorial in
client1-authn-ID
. Sie müssen diesen Namen als Benutzernamen (Username
) in das CONNECT-Paket aufnehmen.In diesem Tutorial verwenden Sie die fingerabdruckbasierte Authentifizierung. Fügen Sie den Zertifikatfingerabdruck des ersten Clients unter Primärer Fingerabdruck ein.
Wählen Sie in der Symbolleiste die Option Erstellen aus, um einen weiteren Client zu erstellen.
Wiederholen Sie die oben aufgeführten Schritte, um einen zweiten Client namens
client2
zu erstellen. Ändern Sie den Authentifizierungsnamen inclient2-authn-ID
, und geben Sie den Zertifikatfingerabdruck des zweiten Clients unter Primärer Fingerabdruck ein.Hinweis
- Um den Schnellstart einfach zu halten, verwenden Sie den Fingerabdruckabgleich zur Authentifizierung. Detaillierte Schritte zur Verwendung der X.509 CA-Zertifikatskette für die Clientauthentifizierung finden Sie unter Clientauthentifizierung mit Zertifikatskette.
- Außerdem verwenden wir für diese Übung die Standardclientgruppe
$all
, die alle Clients im Namespace umfasst. Weitere Informationen zum Erstellen von benutzerdefinierten Clientgruppen mithilfe von Clientattributen finden Sie unter „Clientgruppen“.
Erstellen von Themenbereichen
Wählen Sie im linken Menü im Abschnitt MQTT-Vermittler die Option Themenbereiche aus.
Wählen Sie auf der Seite Themenbereiche die Option + Themenbereich auf der Symbolleiste aus.
Geben Sie einen Namen für den Themenbereich auf der Seite Themabereich erstellen ein.
Wählen Sie + Themenvorlage hinzufügen aus.
Geben Sie
contosotopics/topic1
für die Themenvorlage ein, und wählen Sie dann Erstellen aus, um den Themenbereich zu erstellen.
Konfigurieren der Zugriffssteuerung mithilfe von Berechtigungsbindungen
Wählen Sie im linken Menü im Abschnitt MQTT-Vermittler die Option Berechtigungsbindungen aus.
Wählen Sie auf der Seite „Berechtigungsbindungen“ die Option + Berechtigungsbindung auf der Symbolleiste aus.
Konfigurieren Sie die Berechtigungsbindung wie folgt:
Geben Sie einen Namen für die Berechtigungsbindung an. Beispiel:
contosopublisherbinding
.Wählen Sie für Clientgruppenname den Namen $allaus.
Wählen Sie unter Name des Themenbereichs den Themenbereich aus, den Sie im vorherigen Schritt erstellt haben.
Erteilen Sie der Clientgruppe die Berechtigung Herausgeber für den Themenbereich.
Wählen Sie Erstellen aus, um die Berechtigungsbindung zu erstellen.
Erstellen Sie eine weitere Berechtigungsbindung (
contososubscriberbinding
), indem Sie + Berechtigungsbindung auf der Symbolleiste auswählen.Geben Sie einen Namen an, und erteilen Sie wie dargestellt der Clientgruppe $all Zugriff vom Typ Abonnent auf ContosoTopicSpace.
Wählen Sie Erstellen aus, um die Berechtigungsbindung zu erstellen.
Herstellen einer Verbindung zwischen den Clients mit dem EG-Namespace mithilfe der MQTTX-App
Zum Veröffentlichen/Abonnieren von MQTT-Nachrichten können Sie jedes Ihrer bevorzugten Tools verwenden. Zur Veranschaulichung wird das Veröffentlichen/Abonnieren mithilfe der MQTTX-App gezeigt, die Sie unter https://mqttx.app/ herunterladen können.
Konfigurieren von „client1“ mit
Name als
client1
(dieser Wert kann beliebig sein)Client-ID als
client1-session1
(Die Client-ID im CONNECT-Paket wird verwendet, um die Sitzungs-ID für die Clientverbindung zu identifizieren.)Benutzername als
client1-authn-ID
. Dieser Wert muss mit dem Wert Clientauthentifizierungsname übereinstimmen, den Sie beim Erstellen des Clients im Azure-Portal angegeben haben.Wichtig
Der Benutzername muss mit dem Clientauthentifizierungsnamen in den Clientmetadaten übereinstimmen.
Aktualisieren Sie auf der Übersichtsseite für den Namespace den Hostnamen in „MQTT-Hostname“.
Aktualisieren Sie Port auf 8883.
Schalten Sie SSL/TLS auf „EIN“.
Schalten Sie SSL Secure auf „EIN“ um, um die Überprüfung des Dienstzertifikats sicherzustellen.
Wählen Sie für Zertifikat die Option Selbstsigniert aus.
Geben Sie den Pfad der Clientzertifikatdatei an.
Geben Sie den Pfad für die Clientschlüsseldatei an.
Für die restlichen Einstellungen können Sie die vordefinierten Standardwerte belassen.
Wählen Sie Verbinden aus, um den Client mit dem MQTT-Vermittler zu verbinden.
Wiederholen Sie die obigen Schritte, um eine Verbindung des zweiten Clients client2 mit den entsprechenden Authentifizierungsinformationen wie dargestellt herzustellen.
Veröffentlichen/Abonnieren mithilfe der MQTTX-App
Nachdem Sie die Verbindung mit den Clients hergestellt haben, wählen Sie für „client2“ die Schaltfläche + Neues Abonnement aus.
Fügen Sie
contosotopics/topic1
als Thema hinzu, und wählen Sie Bestätigen aus. Für die anderen Felder können Sie die vorhandenen Standardwerte belassen.Wählen Sie client1 auf der linken Leiste aus.
Geben Sie in „client1“ über dem Feld zum Verfassen von Nachrichten
contosotopics/topic1
als Thema für die Veröffentlichung ein.Erstellen Sie eine Nachricht. Sie können ein beliebiges Format oder das JSON-Format wie gezeigt verwenden.
Wählen Sie die Schaltfläche Send (Senden) aus.
Die Nachricht sollte in Client 1 als „Veröffentlicht“ angezeigt werden.
Wechseln Sie zu client2. Überprüfen Sie, ob client2 die Nachricht empfangen hat.