Delen via


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:

  1. Een Event Grid-naamruimte maken en MQTT-broker inschakelen
  2. Subbronnen maken, zoals clients, clientgroepen en onderwerpruimten
  3. Clients toegang verlenen tot publiceren en abonneren op onderwerpruimten
  4. 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%).

  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 de Azure-portal.

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

    Screenshot of searching for Event Grid namespace on 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.

      Screenshot showing Event Grid namespace create flow basics tab.

  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.

    Screenshot showing Event Grid namespace configuration page to enable MQTT.

Clients maken

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

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

    Screenshot of the Clients page with Add button selected.

  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.

    Screenshot of client 1 configuration.

  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.

    Screenshot of client 2 configuration.

    Notitie

Onderwerpruimten maken

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

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

    Screenshot of Topic spaces page with create button selected.

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

  4. Selecteer + Onderwerpsjabloon toevoegen.

    Screenshot of Create topic space with the name.

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

    Screenshot of topic space configuration.

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 .

    Screenshot that shows the Permission bindings page with the Create button selected.

  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.

      Screenshot showing creation of first permission binding.

  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.

    Screenshot showing creation of second permission binding.

  7. Selecteer Maken om de machtigingsbinding te maken.

Verbinding maken de clients naar 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/.

    Screenshot showing MQTTX app left rail to add new client.

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

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

    Screenshot showing Event Grid namespace overview page, which has MQTT hostname.

  4. Werk de poort bij naar 8883.

  5. SCHAKEL SSL/TLS in op AAN.

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

  7. Selecteer Certificaat als zelfondertekend.

  8. Geef het pad op voor het clientcertificaatbestand.

  9. Geef het pad op voor het clientsleutelbestand.

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

    Screenshot showing client 1 configuration part 1 on MQTTX app.

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

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

    Screenshot showing client 2 configuration part 1 on MQTTX app.

    Screenshot showing client 2 configuration part 2 on 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.

    Screenshot showing subscription topic configuration on 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.

    Screenshot showing message publishing on the topic in MQTTX app.

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

    Screenshot showing message published on the topic in MQTTX app.

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

    Screenshot showing the message received by the subscribing client on MQTTX app.

Volgende stappen