Quickstart: MQTT-berichten publiceren en abonneren op Event Grid-naamruimte met Azure Portal
In dit artikel gebruikt u Azure Portal om de volgende taken uit te voeren:
- Een Event Grid-naamruimte maken en MQTT-broker inschakelen
- Subbronnen maken, zoals clients, clientgroepen en onderwerpruimten
- Clients toegang verlenen tot publiceren en abonneren op onderwerpruimten
- Berichten tussen clients publiceren en ontvangen
Vereisten
- Maak een gratis Azure-account als u geen Azure-abonnement hebt.
- Lees het Event Grid-overzicht door voordat u aan deze zelfstudie begint, als u geen toegang hebt tot Azure Event Grid.
- Zorg ervoor dat poort 8883 is geopend in uw firewall. Het voorbeeld in deze zelfstudie maakt gebruik van het MQTT-protocol, dat communiceert via poort 8883. Deze poort is in sommige netwerkomgevingen van bedrijven en onderwijsinstellingen mogelijk geblokkeerd.
- U hebt een X.509-clientcertificaat nodig om de vingerafdruk te genereren en de clientverbinding te verifiëren.
Voorbeeldclientcertificaat en vingerafdruk genereren
Als u nog geen certificaat hebt, kunt u een voorbeeldcertificaat maken met behulp van de stap CLI. Overweeg handmatig te installeren voor Windows.
Na een geslaagde installatie van Stap moet u een opdrachtprompt openen in uw gebruikersprofielmap (Win+R type %USERPROFILE%).
Voer de volgende opdracht uit om basis- en tussencertificaten te maken. Onthoud het wachtwoord, dat moet worden gebruikt in de volgende stap.
step ca init --deployment-type standalone --name MqttAppSamplesCA --dns localhost --address 127.0.0.1:443 --provisioner MqttAppSamplesCAProvisioner
Gebruik de CA-bestanden die zijn gegenereerd om een certificaat voor de eerste client te maken. Zorg ervoor dat u het juiste pad gebruikt voor het certificaat- en geheimenbestand in de opdracht.
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
Voer de opdracht Stap uit om de vingerafdruk weer te geven.
step certificate fingerprint client1-authn-ID.pem
Maak nu een certificaat voor de tweede 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
Als u de vingerafdruk wilt weergeven die u met de tweede client wilt gebruiken, voert u de opdracht Stap uit.
step certificate fingerprint client2-authn-ID.pem
Een naamruimte maken
Meld u aan bij de Azure-portal.
Typ in de zoekbalk Event Grid-naamruimten en selecteer vervolgens Event Grid-naamruimten in de vervolgkeuzelijst.
Selecteer + Maken op de werkbalk op de pagina Event Grid-naamruimten.
Voer op de pagina Naamruimte maken de volgende stappen uit:
Selecteer uw Azure-abonnement.
Selecteer een bestaande resourcegroep of selecteer Nieuwe maken en voer een naam in voor de resourcegroep.
Geef een unieke naam op voor de naamruimte. De naam van de naamruimte moet uniek zijn per regio omdat deze een DNS-vermelding vertegenwoordigt. Gebruik niet de naam die in de afbeelding wordt weergegeven. Maak in plaats daarvan uw eigen naam. Deze moet tussen 3 en 50 tekens zijn en alleen waarden a-z, A-Z, 0-9 en
-
.Selecteer een locatie voor de Event Grid-naamruimte. Op dit moment is de Event Grid-naamruimte alleen beschikbaar in bepaalde regio's.
Selecteer Controleren en maken onderaan de pagina.
Selecteer Maken op het tabblad Beoordelen en maken van de pagina Naamruimte maken de optie Maken.
Notitie
Als u de quickstart eenvoudig wilt houden, gebruikt u alleen de pagina Basisbeginselen om een naamruimte te maken. Zie Een naamruimte maken voor gedetailleerde stappen voor het configureren van netwerk, beveiliging en andere instellingen op andere pagina's van de wizard.
Nadat de implementatie is voltooid, selecteert u Ga naar de resource om naar de overzichtspagina van de Event Grid-naamruimte voor uw naamruimte te navigeren.
Op de pagina Overzicht ziet u dat de MQTT-broker de status Uitgeschakeld heeft. Als u MQTT-broker wilt inschakelen, selecteert u de uitgeschakelde koppeling. U wordt omgeleid naar de pagina Configuratie.
Selecteer op de pagina Configuratie de optie MQTT-broker inschakelen en selecteer vervolgens Toepassen om de instellingen toe te passen.
Clients maken
Selecteer clients in het linkermenu in de sectie MQTT-broker .
Selecteer + Client op de werkbalk op de pagina Clients.
Voer op de pagina Client maken een naam in voor de client. Clientnamen moeten uniek zijn in een naamruimte.
De clientverificatienaam wordt standaard ingesteld op de clientnaam. Voor deze zelfstudie wijzigt u deze in
client1-authn-ID
. U moet deze naam opnemen zoalsUsername
in het CONNECT-pakket.In deze zelfstudie gebruikt u verificatie op basis van vingerafdruk. Neem de vingerafdruk van het eerste clientcertificaat op in de primaire vingerafdruk.
Selecteer Maken op de werkbalk om een andere client te maken.
Herhaal de bovenstaande stappen om een tweede client met de naam
client2
te maken. Wijzig de verificatienaam inclient2-authn-ID
en voeg de vingerafdruk van het tweede clientcertificaat toe aan de primaire vingerafdruk.Notitie
- Als u de quickstart eenvoudig wilt houden, gebruikt u een vingerafdrukovereenkomst voor verificatie. Zie clientverificatie met behulp van certificaatketen X.509 voor gedetailleerde stappen voor het gebruik van X.509 CA-certificaatketen voor clientverificatie.
- Daarnaast gebruiken we de standaardclientgroep
$all
, die alle clients in de naamruimte voor deze oefening bevat. Zie clientgroepen voor meer informatie over het maken van aangepaste clientgroepen met behulp van clientkenmerken.
Onderwerpruimten maken
Selecteer in het linkermenu onderwerpruimten in de sectie MQTT-broker .
Selecteer + Onderwerpruimte op de werkbalk op de pagina Onderwerpruimten.
Geef een naam op voor de onderwerpruimte op de pagina Onderwerpruimte maken.
Selecteer + Onderwerpsjabloon toevoegen.
Voer
contosotopics/topic1
het onderwerpsjabloon in en selecteer Vervolgens Maken om de onderwerpruimte te maken.
Toegangsbeheer configureren met behulp van machtigingsbindingen
Selecteer in het linkermenu machtigingenbindingen in de sectie MQTT-broker .
Selecteer + Machtigingsbinding op de werkbalk op de pagina Machtigingenbindingen .
Configureer de machtigingsbinding als volgt:
Geef een naam op voor de machtigingsbinding. Bijvoorbeeld:
contosopublisherbinding
.Selecteer $all voor de naam van de clientgroep.
Selecteer voor de naam van de onderwerpruimte de onderwerpruimte die u in de vorige stap hebt gemaakt.
Ververleent de uitgever toestemming aan de clientgroep in de onderwerpruimte.
Selecteer Maken om de machtigingsbinding te maken.
Maak nog een machtigingsbinding (
contososubscriberbinding
) door + Machtigingsbinding op de werkbalk te selecteren.Geef een naam op en geef $all clientgroep Abonnee toegang tot contosoTopicSpace, zoals wordt weergegeven.
Selecteer Maken om de machtigingsbinding te maken.
Verbinding maken de clients naar de EG-naamruimte met behulp van de MQTTX-app
Voor het publiceren/abonneren van MQTT-berichten kunt u een van uw favoriete hulpprogramma's gebruiken. Voor demonstratiedoeleinden wordt publiceren/abonneren weergegeven met behulp van de MQTTX-app, die kan worden gedownload van https://mqttx.app/.
Client1 configureren met
Naam als
client1
(deze waarde kan alles zijn)Client-id als
client1-session1
(client-id in het CONNECT-pakket wordt gebruikt om de sessie-id voor de clientverbinding te identificeren)Gebruikersnaam als
client1-authn-ID
. Deze waarde moet overeenkomen met de waarde van de clientverificatienaam die u hebt opgegeven bij het maken van de client in Azure Portal.Belangrijk
De gebruikersnaam moet overeenkomen met de naam van de clientverificatie in de metagegevens van de client.
Werk de hostnaam bij naar MQTT-hostnaam op de pagina Overzicht van de naamruimte.
Werk de poort bij naar 8883.
SCHAKEL SSL/TLS in op AAN.
Schakel SSL Secure in op ON om validatie van servicecertificaten te garanderen.
Selecteer Certificaat als zelfondertekend.
Geef het pad op voor het clientcertificaatbestand.
Geef het pad op voor het clientsleutelbestand.
De rest van de instellingen kan worden achtergelaten met vooraf gedefinieerde standaardwaarden.
Selecteer Verbinding maken om de client te verbinden met de MQTT-broker.
Herhaal de bovenstaande stappen om verbinding te maken met de tweede clientclient2, met bijbehorende verificatiegegevens, zoals wordt weergegeven.
Publiceren/abonneren met MQTTX-app
Nadat u de clients hebt verbonden, selecteert u voor client2 de knop + Nieuw abonnement .
Voeg
contosotopics/topic1
toe als onderwerp en selecteer Bevestigen. U kunt de andere velden met bestaande standaardwaarden laten staan.Selecteer client1 in de linkerrail.
Typ voor client1 boven op het berichten opstellenvak
contosotopics/topic1
het onderwerp waarop u wilt publiceren.Een bericht opstellen. U kunt elke indeling of een JSON gebruiken zoals wordt weergegeven.
Selecteer de knop Verzenden.
Het bericht moet worden weergegeven als gepubliceerd in client 1.
Schakel over naar client2. Controleer of client2 het bericht heeft ontvangen.