Delen via


Quickstart: MQTT-berichten publiceren en abonneren op Event Grid-naamruimte met Azure Portal

In deze quickstart gebruikt u Azure Portal om een Event Grid-naamruimte te maken waarvoor MQTT-broker is ingeschakeld, subbronnen zoals clients, clientgroepen en onderwerpruimten te maken, clients toegang te verlenen tot publiceren en abonneren op onderwerpruimten, en vervolgens berichten tussen clients te publiceren en te 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 kan worden geblokkeerd in sommige bedrijfs- en onderwijsnetwerkomgevingen.
  • 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%).

  1. 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
    
  2. 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
    
  3. Voer de opdracht Stap uit om de vingerafdruk weer te geven.

    step certificate fingerprint client1-authn-ID.pem
    
  4. 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
    
  5. 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

  1. Meld u aan bij het Azure Portal.

  2. Typ in de zoekbalk Event Grid-naamruimten en selecteer vervolgens Event Grid-naamruimten in de vervolgkeuzelijst.

    Schermopname van het zoeken naar Event Grid-naamruimte in Azure Portal.

  3. Selecteer + Maken op de werkbalk op de pagina Event Grid-naamruimten.

  4. Voer op de pagina Naamruimte maken de volgende stappen uit:

    1. Selecteer uw Azure-abonnement.

    2. Selecteer een bestaande resourcegroep of selecteer Nieuwe maken en voer een naam in voor de resourcegroep.

    3. 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 -.

    4. Selecteer een locatie voor de Event Grid-naamruimte. Op dit moment is de Event Grid-naamruimte alleen beschikbaar in bepaalde regio's.

      Schermopname van het tabblad Basisbeginselen voor stroom maken in Event Grid-naamruimte.

  5. Selecteer Controleren en maken onderaan de pagina.

  6. 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.

  7. 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.

  8. 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.

  9. Selecteer op de pagina Configuratie de optie MQTT-broker inschakelen en selecteer vervolgens Toepassen om de instellingen toe te passen.

    Schermopname van de configuratiepagina van de Event Grid-naamruimte om MQTT in te schakelen.

Clients maken

  1. Selecteer clients in het linkermenu in de sectie MQTT-broker .

  2. Selecteer + Client op de werkbalk op de pagina Clients.

    Schermopname van de pagina Clients met de knop Toevoegen geselecteerd.

  3. Voer op de pagina Client maken een naam in voor de client. Clientnamen moeten uniek zijn in een naamruimte.

  4. De clientverificatienaam wordt standaard ingesteld op de clientnaam. Voor deze zelfstudie wijzigt u deze in client1-authn-ID. U moet deze naam opnemen zoals Username in het CONNECT-pakket.

  5. In deze zelfstudie gebruikt u verificatie op basis van vingerafdruk. Neem de vingerafdruk van het eerste clientcertificaat op in de primaire vingerafdruk.

    Schermopname van de configuratie van client 1.

  6. Selecteer Maken op de werkbalk om een andere client te maken.

  7. Herhaal de bovenstaande stappen om een tweede client met de naam client2te maken. Wijzig de verificatienaam in client2-authn-ID en voeg de vingerafdruk van het tweede clientcertificaat toe aan de primaire vingerafdruk.

    Schermopname van de configuratie van client 2.

    Notitie

Onderwerpruimten maken

  1. Selecteer in het linkermenu onderwerpruimten in de sectie MQTT-broker .

  2. Selecteer + Onderwerpruimte op de werkbalk op de pagina Onderwerpruimten.

    Schermopname van de pagina Onderwerpruimten met de knop Maken geselecteerd.

  3. Geef een naam op voor de onderwerpruimte op de pagina Onderwerpruimte maken.

    Schermopname van de onderwerpruimte maken met de naam.

  4. Voer contosotopics/topic1 het onderwerpsjabloon in en selecteer Vervolgens Maken om de onderwerpruimte te maken.

    Schermopname van de configuratie van de onderwerpruimte.

Toegangsbeheer configureren met behulp van machtigingsbindingen

  1. Selecteer in het linkermenu machtigingenbindingen in de sectie MQTT-broker .

  2. Selecteer + Machtigingsbinding op de werkbalk op de pagina Machtigingenbindingen .

    Schermopname van de pagina Machtigingenbindingen met de knop Maken geselecteerd.

  3. Configureer de machtigingsbinding als volgt:

    1. Geef een naam op voor de machtigingsbinding. Bijvoorbeeld: contosopublisherbinding.

    2. Selecteer $all voor de naam van de clientgroep.

    3. Selecteer voor de naam van de onderwerpruimte de onderwerpruimte die u in de vorige stap hebt gemaakt.

    4. Ververleent de uitgever toestemming aan de clientgroep in de onderwerpruimte.

      Schermopname van het maken van de eerste machtigingsbinding.

  4. Selecteer Maken om de machtigingsbinding te maken.

  5. Maak nog een machtigingsbinding (contososubscriberbinding) door + Machtigingsbinding op de werkbalk te selecteren.

  6. Geef een naam op en geef $all clientgroep Abonnee toegang tot contosoTopicSpace, zoals wordt weergegeven.

    Schermopname van het maken van een tweede machtigingsbinding.

  7. Selecteer Maken om de machtigingsbinding te maken.

De clients verbinden met de EG-naamruimte met behulp van de MQTTX-app

  1. 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/.

  2. Selecteer + de navigatiebalk aan de linkerkant.

  3. 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.

  4. Werk de hostnaam bij naar MQTT-hostnaam op de pagina Overzicht van de naamruimte.

    Schermopname van de overzichtspagina van de Event Grid-naamruimte, met MQTT-hostnaam.

  5. Werk de poort bij naar 8883.

  6. SCHAKEL SSL/TLS in op AAN.

  7. Schakel SSL Secure in op ON om validatie van servicecertificaten te garanderen.

  8. Selecteer Certificaat als CA of zelfondertekende certificaten.

  9. Geef het pad op voor het clientcertificaatbestand.

  10. Geef het pad op voor het clientsleutelbestand.

  11. De rest van de instellingen kan worden achtergelaten met vooraf gedefinieerde standaardwaarden.

    Schermopname van client 1-configuratieonderdeel 1 in de MQTTX-app.

  12. Selecteer Verbinding maken om de client te verbinden met de MQTT-broker.

  13. Herhaal de bovenstaande stappen om verbinding te maken met de tweede clientclient2, met bijbehorende verificatiegegevens, zoals wordt weergegeven.

    Schermopname van client 2-configuratieonderdeel 1 in de MQTTX-app.

    Schermopname van client 2-configuratieonderdeel 2 in de MQTTX-app.

Publiceren/abonneren met MQTTX-app

  1. Nadat u de clients hebt verbonden, selecteert u voor client2 de knop + Nieuw abonnement .

  2. Voeg contosotopics/topic1 toe als onderwerp en selecteer Bevestigen. U kunt de andere velden met bestaande standaardwaarden laten staan.

    Schermopname van de configuratie van abonnementsonderwerp in de MQTTX-app.

  3. Selecteer client1 in de linkerrail.

  4. Typ voor client1 boven op het berichten opstellenvak contosotopics/topic1 het onderwerp waarop u wilt publiceren.

  5. Een bericht opstellen. U kunt elke indeling of een JSON gebruiken zoals wordt weergegeven.

  6. Selecteer de knop Verzenden.

    Schermopname van het publiceren van berichten in het onderwerp in de MQTTX-app.

  7. Het bericht moet worden weergegeven als gepubliceerd in client 1.

    Schermopname van het bericht dat is gepubliceerd in het onderwerp in de MQTTX-app.

  8. Schakel over naar client2. Controleer of client2 het bericht heeft ontvangen.

    Schermopname van het bericht dat is ontvangen door de abonneerclient in de MQTTX-app.