Szybki start: publikowanie i subskrybowanie komunikatów MQTT w przestrzeni nazw usługi Event Grid za pomocą witryny Azure Portal
W tym artykule wykonasz następujące zadania za pomocą witryny Azure Portal:
- Tworzenie przestrzeni nazw usługi Event Grid i włączanie brokera MQTT
- Tworzenie zasobów podrzędnych, takich jak klienci, grupy klientów i przestrzenie tematów
- Udzielanie klientom dostępu do publikowania i subskrybowania obszarów tematów
- Publikowanie i odbieranie komunikatów między klientami
Wymagania wstępne
- Utwórz bezpłatne konto platformy Azure Jeśli nie masz subskrypcji platformy Azure.
- Zapoznaj się z omówieniem usługi Event Grid przed rozpoczęciem tego samouczka, jeśli dopiero zaczynasz korzystać z usługi Azure Event Grid.
- Upewnij się, że port 8883 jest otwarty w zaporze. Przykład w tym samouczku używa protokołu MQTT, który komunikuje się za pośrednictwem portu 8883. Ten port może zostać zablokowany w niektórych środowiskach sieci firmowych i edukacyjnych.
- Potrzebny jest certyfikat klienta X.509 do wygenerowania odcisku palca i uwierzytelnienia połączenia klienta.
Generowanie przykładowego certyfikatu klienta i odcisku palca
Jeśli nie masz jeszcze certyfikatu, możesz utworzyć przykładowy certyfikat przy użyciu interfejsu wiersza polecenia kroku. Rozważ ręczne instalowanie dla systemu Windows.
Po pomyślnej instalacji kroku należy otworzyć wiersz polecenia w folderze profilu użytkownika (Win+R wpisz %USERPROFILE%).
Aby utworzyć certyfikaty główne i pośrednie, uruchom następujące polecenie. Zapamiętaj hasło, które należy użyć w następnym kroku.
step ca init --deployment-type standalone --name MqttAppSamplesCA --dns localhost --address 127.0.0.1:443 --provisioner MqttAppSamplesCAProvisioner
Użyj wygenerowanych plików urzędu certyfikacji, aby utworzyć certyfikat dla pierwszego klienta. Upewnij się, że użyj poprawnej ścieżki dla plików certyfikatów i wpisów tajnych w poleceniu.
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
Aby wyświetlić odcisk palca, uruchom polecenie Krok.
step certificate fingerprint client1-authn-ID.pem
Teraz utwórz certyfikat dla drugiego klienta.
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
Aby wyświetlić odcisk palca do użycia z drugim klientem, uruchom polecenie Krok.
step certificate fingerprint client2-authn-ID.pem
Tworzenie przestrzeni nazw
Zaloguj się do Portalu Azure.
Na pasku wyszukiwania wpisz Event Grid Namespaces( Przestrzenie nazw usługi Event Grid), a następnie wybierz pozycję Przestrzenie nazw usługi Event Grid z listy rozwijanej.
Na stronie Przestrzenie nazw usługi Event Grid wybierz pozycję + Utwórz na pasku narzędzi.
Na stronie Tworzenie przestrzeni nazw wykonaj następujące kroki:
Wybierz subskrypcję platformy Azure.
Wybierz istniejącą grupę zasobów lub wybierz pozycję Utwórz nową i wprowadź nazwę grupy zasobów.
Podaj unikatową nazwę przestrzeni nazw. Nazwa przestrzeni nazw musi być unikatowa na region, ponieważ reprezentuje wpis DNS. Nie należy używać nazwy widocznej na obrazie. Zamiast tego utwórz własną nazwę — musi zawierać od 3 do 50 znaków i zawierać tylko wartości a-z, A-Z, 0-9 i
-
.Wybierz lokalizację przestrzeni nazw usługi Event Grid. Obecnie przestrzeń nazw usługi Event Grid jest dostępna tylko w wybranych regionach.
Wybierz pozycję Przejrzyj i utwórz w dolnej części strony.
Na karcie Przeglądanie i tworzenie na stronie Tworzenie przestrzeni nazw wybierz pozycję Utwórz.
Uwaga
Aby zachować prosty przewodnik Szybki start, użyjesz tylko strony Podstawy, aby utworzyć przestrzeń nazw. Aby uzyskać szczegółowe instrukcje dotyczące konfigurowania sieci, zabezpieczeń i innych ustawień na innych stronach kreatora, zobacz Tworzenie przestrzeni nazw.
Po pomyślnym zakończeniu wdrażania wybierz pozycję Przejdź do zasobu , aby przejść do strony Przegląd przestrzeni nazw usługi Event Grid dla przestrzeni nazw.
Na stronie Przegląd zobaczysz, że broker MQTT jest w stanie Wyłączone . Aby włączyć brokerA MQTT, wybierz link Wyłączone , spowoduje przekierowanie do strony Konfiguracja.
Na stronie Konfiguracja wybierz opcję Włącz brokera MQTT, a następnie wybierz pozycję Zastosuj , aby zastosować ustawienia.
Tworzenie klientów
W menu po lewej stronie wybierz pozycję Klienci w sekcji Broker MQTT.
Na stronie Klienci wybierz pozycję + Klient na pasku narzędzi.
Na stronie Tworzenie klienta wprowadź nazwę klienta. Nazwy klientów muszą być unikatowe w przestrzeni nazw.
Nazwa uwierzytelniania klienta jest domyślnie ustawiona na nazwę klienta. Na potrzeby tego samouczka zmień go na
client1-authn-ID
. Należy dołączyć tę nazwę tak jakUsername
w pakiecie CONNECT.W tym samouczku użyjesz uwierzytelniania opartego na odcisku palca. Dołącz odcisk palca pierwszego certyfikatu klienta do podstawowego odcisku palca.
Wybierz pozycję Utwórz na pasku narzędzi, aby utworzyć innego klienta.
Powtórz powyższe kroki, aby utworzyć drugiego klienta o nazwie
client2
. Zmień nazwę uwierzytelniania naclient2-authn-ID
i dołącz odcisk palca drugiego certyfikatu klienta do podstawowego odcisku palca.Uwaga
- Aby zachować prosty przewodnik Szybki start, użyjesz dopasowania odcisku palca do uwierzytelniania. Aby uzyskać szczegółowe instrukcje dotyczące używania łańcucha certyfikatów X.509 urzędu certyfikacji na potrzeby uwierzytelniania klienta, zobacz Uwierzytelnianie klienta przy użyciu łańcucha certyfikatów.
- Ponadto używamy domyślnej
$all
grupy klienta, która obejmuje wszystkich klientów w przestrzeni nazw w tym ćwiczeniu. Aby dowiedzieć się więcej na temat tworzenia niestandardowych grup klientów przy użyciu atrybutów klienta, zobacz grupy klientów.
Tworzenie obszarów tematów
W menu po lewej stronie wybierz pozycję Miejsca tematów w sekcji brokera MQTT.
Na stronie Miejsca do tematu wybierz pozycję + Obszar tematu na pasku narzędzi.
Podaj nazwę obszaru tematu na stronie Tworzenie obszaru tematu.
Wybierz pozycję + Dodaj szablon tematu.
Wprowadź
contosotopics/topic1
szablon tematu, a następnie wybierz pozycję Utwórz , aby utworzyć przestrzeń tematu.
Konfigurowanie kontroli dostępu przy użyciu powiązań uprawnień
W menu po lewej stronie wybierz pozycję Powiązania uprawnień w sekcji brokera MQTT.
Na stronie Powiązania uprawnień wybierz pozycję + Powiązanie uprawnień na pasku narzędzi.
Skonfiguruj powiązanie uprawnień w następujący sposób:
Podaj nazwę powiązania uprawnień. Na przykład
contosopublisherbinding
.W polu Nazwa grupy klientów wybierz pozycję $all.
W polu Nazwa obszaru tematu wybierz przestrzeń tematu utworzoną w poprzednim kroku.
Udziel uprawnienia wydawcy do grupy klienta w obszarze tematu.
Wybierz pozycję Utwórz , aby utworzyć powiązanie uprawnień.
Utwórz jeszcze jedno powiązanie uprawnień (
contososubscriberbinding
), wybierając pozycję + Powiązanie uprawnień na pasku narzędzi.Podaj nazwę i nadaj grupie klienta $all subskrybentowi dostęp do obszaru ContosoTopicSpace, jak pokazano poniżej.
Wybierz pozycję Utwórz , aby utworzyć powiązanie uprawnień.
Połączenie klientów do przestrzeni nazw EG przy użyciu aplikacji MQTTX
W przypadku publikowania/subskrybowania komunikatów MQTT można użyć dowolnego z ulubionych narzędzi. W celach demonstracyjnych publikowanie/subskrybowanie jest wyświetlane przy użyciu aplikacji MQTTX, którą można pobrać z https://mqttx.app/witryny .
Konfigurowanie klienta1 za pomocą polecenia
Nazwa jako
client1
(ta wartość może być niczym)Identyfikator klienta jako
client1-session1
(identyfikator klienta w pakiecie CONNECT służy do identyfikowania identyfikatora sesji dla połączenia klienta)Nazwa użytkownika jako
client1-authn-ID
. Ta wartość musi być zgodna z wartością Nazwa uwierzytelniania klienta określona podczas tworzenia klienta w witrynie Azure Portal.Ważne
Nazwa użytkownika musi być zgodna z nazwą uwierzytelniania klienta w metadanych klienta.
Zaktualizuj nazwę hosta na nazwę hosta MQTT na stronie Przegląd przestrzeni nazw.
Zaktualizuj port na 8883.
Przełącz protokół SSL/TLS na WŁ.
Przełącz opcję Ssl Secure to ON (Włącz protokół SSL), aby upewnić się, że weryfikacja certyfikatu usługi.
Wybierz pozycję Certyfikat jako Podpis własny.
Podaj ścieżkę dla pliku certyfikatu klienta.
Podaj ścieżkę dla pliku klucza klienta.
Pozostałe ustawienia można pozostawić ze wstępnie zdefiniowanymi wartościami domyślnymi.
Wybierz Połączenie, aby połączyć klienta z brokerem MQTT.
Powtórz powyższe kroki, aby połączyć drugiego klienta client2 z odpowiednimi informacjami uwierzytelniania, jak pokazano.
Publikowanie/subskrybowanie przy użyciu aplikacji MQTTX
Po nawiązaniu połączenia z klientami w polu client2 wybierz przycisk + Nowa subskrypcja .
Dodaj
contosotopics/topic1
jako temat i wybierz pozycję Potwierdź. Możesz pozostawić inne pola z istniejącymi wartościami domyślnymi.Wybierz pozycję client1 w lewej szynie.
W przypadku klienta client1 w górnej części pola redagowania komunikatów wpisz
contosotopics/topic1
jako temat do opublikowania.Utwórz wiadomość. Możesz użyć dowolnego formatu lub formatu JSON, jak pokazano poniżej.
Kliknij przycisk Wyślij.
Komunikat powinien być widoczny jako opublikowany w kliencie 1.
Przejdź do klienta 2. Upewnij się, że klient client2 odebrał komunikat.