Snabbstart: Publicera och prenumerera på MQTT-meddelanden i Event Grid-namnområdet med Azure Portal
I den här snabbstarten använder du Azure Portal för att skapa ett Event Grid-namnområde med MQTT-asynkron meddelandekö aktiverat, skapa underresurser som klienter, klientgrupper och ämnesutrymmen, ge klienter åtkomst att publicera och prenumerera på ämnesutrymmen och sedan publicera och ta emot meddelanden mellan klienter.
Förutsättningar
- Skapa ett kostnadsfritt Azure-konto Om du inte har en Azure-prenumeration.
- Läs igenom Event Grid-översikten innan du påbörjar den här självstudien, om du är nybörjare på Azure Event Grid.
- Kontrollera att port 8883 är öppen i brandväggen. Exemplet i den här självstudien använder MQTT-protokollet, som kommunicerar via port 8883. Den här porten kan blockeras i vissa företags- och utbildningsnätverksmiljöer.
- Du behöver ett X.509-klientcertifikat för att generera tumavtrycket och autentisera klientanslutningen.
Generera exempelklientcertifikat och tumavtryck
Om du inte redan har ett certifikat kan du skapa ett exempelcertifikat med hjälp av steg CLI. Överväg att installera manuellt för Windows.
Efter en lyckad installation av Step bör du öppna en kommandotolk i användarprofilmappen (Win+R-typ %USERPROFILE%).
Kör följande kommando för att skapa rotcertifikat och mellanliggande certifikat. Kom ihåg lösenordet som måste användas i nästa steg.
step ca init --deployment-type standalone --name MqttAppSamplesCA --dns localhost --address 127.0.0.1:443 --provisioner MqttAppSamplesCAProvisioner
Använd ca-filerna som genereras för att skapa ett certifikat för den första klienten. Se till att använda rätt sökväg för certifikat- och hemlighetsfilerna i kommandot.
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
Om du vill visa tumavtrycket kör du kommandot Steg.
step certificate fingerprint client1-authn-ID.pem
Skapa nu ett certifikat för den andra klienten.
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
Om du vill visa tumavtrycket som ska användas med den andra klienten kör du kommandot Steg.
step certificate fingerprint client2-authn-ID.pem
Skapa ett namnområde
Logga in på Azure-portalen.
I sökfältet skriver du Event Grid-namnområden och väljer sedan Event Grid-namnområden i listrutan.
På sidan Event Grid-namnområden väljer du + Skapa i verktygsfältet.
Följ dessa steg på sidan Skapa namnområde:
Välj din Azure-prenumerationen.
Välj en befintlig resursgrupp eller välj Skapa ny och ange ett namn för resursgruppen.
Ange ett unikt namn för namnområdet. Namnområdets namn måste vara unikt per region eftersom det representerar en DNS-post. Använd inte det namn som visas på bilden. Skapa i stället ditt eget namn – det måste vara mellan 3 och 50 tecken och innehålla endast värden a-z, A-Z, 0-9 och
-
.Välj en plats för Event Grid-namnområdet. För närvarande är Event Grid-namnområdet endast tillgängligt i utvalda regioner.
Välj Granska + skapa längst ned på sidan.
På fliken Granska + skapa på sidan Skapa namnområde väljer du Skapa.
Kommentar
För att hålla snabbstarten enkel använder du bara sidan Grundläggande för att skapa ett namnområde. Detaljerade anvisningar om hur du konfigurerar nätverk, säkerhet och andra inställningar på andra sidor i guiden finns i Skapa ett namnområde.
När distributionen har slutförts väljer du Gå till resurs för att navigera till sidan Översikt över Event Grid-namnområde för ditt namnområde.
På sidan Översikt ser du att MQTT-koordinatorn är i inaktiverat tillstånd. Om du vill aktivera MQTT-asynkron meddelandekö väljer du länken Inaktiverad . Den omdirigerar dig till sidan Konfiguration.
På sidan Konfiguration väljer du alternativet Aktivera MQTT-koordinator och väljer sedan Tillämpa för att tillämpa inställningarna.
Skapa klienter
På den vänstra menyn väljer du Klienter i avsnittet MQTT-koordinator .
På sidan Klienter väljer du + Klient i verktygsfältet.
På sidan Skapa klient anger du ett namn för klienten. Klientnamn måste vara unika i ett namnområde.
Klientautentiseringsnamnet är som standard klientnamnet. I den här självstudien ändrar du den till
client1-authn-ID
. Du måste inkludera det här namnet somUsername
i CONNECT-paketet.I den här självstudien använder du tumavtrycksbaserad autentisering. Inkludera det första klientcertifikatets tumavtryck i primärt tumavtryck.
Välj Skapa i verktygsfältet för att skapa en annan klient.
Upprepa stegen ovan för att skapa en andra klient med namnet
client2
. Ändra autentiseringsnamnet tillclient2-authn-ID
och inkludera det andra klientcertifikatets tumavtryck i primärt tumavtryck.Kommentar
- För att hålla snabbstarten enkel använder du Tumavtrycksmatchning för autentisering. Detaljerade anvisningar om hur du använder X.509 CA-certifikatkedjan för klientautentisering finns i Klientautentisering med hjälp av certifikatkedjan.
- Dessutom använder vi standardklientgruppen
$all
, som innehåller alla klienter i namnområdet för den här övningen. Mer information om hur du skapar anpassade klientgrupper med hjälp av klientattribut finns i klientgrupper.
Skapa ämnesutrymmen
På den vänstra menyn väljer du Ämnesutrymmen i avsnittet MQTT-koordinator.
På sidan Ämnesutrymmen väljer du + Ämnesutrymme i verktygsfältet.
Ange ett namn för ämnesutrymmet på sidan Skapa ämnesutrymme .
Ange
contosotopics/topic1
för ämnesmallen och välj sedan Skapa för att skapa ämnesutrymmet.
Konfigurera åtkomstkontroll med hjälp av behörighetsbindningar
På den vänstra menyn väljer du Behörighetsbindningar i avsnittet MQTT-koordinator .
På sidan Behörighetsbindningar väljer du + Behörighetsbindning i verktygsfältet.
Konfigurera behörighetsbindningen på följande sätt:
Ange ett namn för behörighetsbindningen. Exempel:
contosopublisherbinding
Som klientgruppsnamn väljer du $all.
Som Namn på ämnesutrymme väljer du det ämnesutrymme som du skapade i föregående steg.
Ge publisher-behörigheten till klientgruppen för ämnesutrymmet.
Välj Skapa för att skapa behörighetsbindningen.
Skapa ytterligare en behörighetsbindning (
contososubscriberbinding
) genom att välja + Behörighetsbindning i verktygsfältet.Ange ett namn och ge $all klientgruppen Prenumerant åtkomst till ContosoTopicSpace enligt bilden.
Välj Skapa för att skapa behörighetsbindningen.
Ansluta klienterna till EG-namnområdet med hjälp av MQTTX-appen
För att publicera/prenumerera på MQTT-meddelanden kan du använda något av dina favoritverktyg. I demonstrationssyfte visas publicera/prenumerera med MQTTX-appen, som kan laddas ned från https://mqttx.app/.
Välj + i navigeringsfältet till vänster.
Konfigurera client1 med
Namn som (det här värdet kan vara vad som
client1
helst)Klient-ID som
client1-session1
(klient-ID i CONNECT-paketet används för att identifiera sessions-ID för klientanslutningen)Användarnamn som
client1-authn-ID
. Det här värdet måste matcha värdet för det klientautentiseringsnamn som du angav när du skapade klienten i Azure Portal.Viktigt!
Användarnamnet måste matcha klientautentiseringsnamnet i klientmetadata.
Uppdatera värdnamnet till MQTT-värdnamnet från sidan Översikt i namnområdet.
Uppdatera porten till 8883.
Växla SSL/TLS till PÅ.
Växla SSL Secure till PÅ för att säkerställa verifiering av tjänstcertifikat.
Välj Certifikat som certifikatutfärdare eller självsignerade certifikat.
Ange sökvägen för klientcertifikatfilen.
Ange sökvägen för klientnyckelfilen.
Resten av inställningarna kan lämnas med fördefinierade standardvärden.
Välj Anslut för att ansluta klienten till MQTT-koordinatorn.
Upprepa stegen ovan för att ansluta den andra klientklienten2 med motsvarande autentiseringsinformation som visas.
Publicera/prenumerera med MQTTX-appen
När du har anslutit klienterna väljer du knappen + Ny prenumeration för client2.
Lägg till
contosotopics/topic1
som ämne och välj Bekräfta. Du kan lämna de andra fälten med befintliga standardvärden.Välj client1 i vänster järnvägsspår.
För client1 skriver du som det ämne som ska publiceras ovanpå meddelanderutan
contosotopics/topic1
.Skriv ett meddelande. Du kan använda valfritt format eller JSON som du ser.
Välj knappen Skicka.
Meddelandet bör ses som publicerat i klient 1.
Växla till client2. Bekräfta att client2 tog emot meddelandet.