Udostępnij za pośrednictwem


Szybki start: publikowanie i subskrybowanie komunikatów MQTT w przestrzeni nazw usługi Event Grid za pomocą witryny Azure Portal

W tym przewodniku Szybki start utworzysz przestrzeń nazw usługi Event Grid z włączonym brokerem MQTT, utworzysz zasoby podrzędne, takie jak klienci, grupy klientów i przestrzenie tematów, przyznasz klientom dostęp do publikowania i subskrybowania przestrzeni tematów, a następnie publikujesz i odbierasz komunikaty 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%).

  1. 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
    
  2. 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
    
  3. Aby wyświetlić odcisk palca, uruchom polecenie Krok.

    step certificate fingerprint client1-authn-ID.pem
    
  4. 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
    
  5. Aby wyświetlić odcisk palca do użycia z drugim klientem, uruchom polecenie Krok.

    step certificate fingerprint client2-authn-ID.pem
    

Tworzenie przestrzeni nazw

  1. Zaloguj się do Portalu Azure.

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

    Zrzut ekranu przedstawiający wyszukiwanie przestrzeni nazw usługi Event Grid w witrynie Azure Portal.

  3. Na stronie Przestrzenie nazw usługi Event Grid wybierz pozycję + Utwórz na pasku narzędzi.

  4. Na stronie Tworzenie przestrzeni nazw wykonaj następujące kroki:

    1. Wybierz subskrypcję platformy Azure.

    2. Wybierz istniejącą grupę zasobów lub wybierz pozycję Utwórz nową i wprowadź nazwę grupy zasobów.

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

    4. Wybierz lokalizację przestrzeni nazw usługi Event Grid. Obecnie przestrzeń nazw usługi Event Grid jest dostępna tylko w wybranych regionach.

      Zrzut ekranu przedstawiający kartę Podstawy tworzenia przestrzeni nazw usługi Event Grid.

  5. Wybierz pozycję Przejrzyj i utwórz w dolnej części strony.

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

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

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

  9. Na stronie Konfiguracja wybierz opcję Włącz brokera MQTT, a następnie wybierz pozycję Zastosuj , aby zastosować ustawienia.

    Zrzut ekranu przedstawiający stronę konfiguracji przestrzeni nazw usługi Event Grid w celu włączenia protokołu MQTT.

Tworzenie klientów

  1. W menu po lewej stronie wybierz pozycję Klienci w sekcji Broker MQTT.

  2. Na stronie Klienci wybierz pozycję + Klient na pasku narzędzi.

    Zrzut ekranu przedstawiający stronę Klienci z wybranym przyciskiem Dodaj.

  3. Na stronie Tworzenie klienta wprowadź nazwę klienta. Nazwy klientów muszą być unikatowe w przestrzeni nazw.

  4. 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 jak Username w pakiecie CONNECT.

  5. W tym samouczku użyjesz uwierzytelniania opartego na odcisku palca. Dołącz odcisk palca pierwszego certyfikatu klienta do podstawowego odcisku palca.

    Zrzut ekranu przedstawiający konfigurację klienta 1.

  6. Wybierz pozycję Utwórz na pasku narzędzi, aby utworzyć innego klienta.

  7. Powtórz powyższe kroki, aby utworzyć drugiego klienta o nazwie client2. Zmień nazwę uwierzytelniania na client2-authn-ID i dołącz odcisk palca drugiego certyfikatu klienta do podstawowego odcisku palca.

    Zrzut ekranu przedstawiający konfigurację klienta 2.

    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

  1. W menu po lewej stronie wybierz pozycję Miejsca tematów w sekcji brokera MQTT.

  2. Na stronie Miejsca do tematu wybierz pozycję + Obszar tematu na pasku narzędzi.

    Zrzut ekranu przedstawiający stronę Miejsca do tematu z wybranym przyciskiem tworzenia.

  3. Podaj nazwę obszaru tematu na stronie Tworzenie obszaru tematu.

    Zrzut ekranu przedstawiający tworzenie obszaru tematu o nazwie.

  4. Wprowadź contosotopics/topic1 szablon tematu, a następnie wybierz pozycję Utwórz , aby utworzyć przestrzeń tematu.

    Zrzut ekranu przedstawiający konfigurację obszaru tematu.

Konfigurowanie kontroli dostępu przy użyciu powiązań uprawnień

  1. W menu po lewej stronie wybierz pozycję Powiązania uprawnień w sekcji brokera MQTT.

  2. Na stronie Powiązania uprawnień wybierz pozycję + Powiązanie uprawnień na pasku narzędzi.

    Zrzut ekranu przedstawiający stronę Powiązania uprawnień z wybranym przyciskiem Utwórz.

  3. Skonfiguruj powiązanie uprawnień w następujący sposób:

    1. Podaj nazwę powiązania uprawnień. Na przykład contosopublisherbinding.

    2. W polu Nazwa grupy klientów wybierz pozycję $all.

    3. W polu Nazwa obszaru tematu wybierz przestrzeń tematu utworzoną w poprzednim kroku.

    4. Udziel uprawnienia wydawcy do grupy klienta w obszarze tematu.

      Zrzut ekranu przedstawiający tworzenie pierwszego powiązania uprawnień.

  4. Wybierz pozycję Utwórz , aby utworzyć powiązanie uprawnień.

  5. Utwórz jeszcze jedno powiązanie uprawnień (contososubscriberbinding), wybierając pozycję + Powiązanie uprawnień na pasku narzędzi.

  6. Podaj nazwę i nadaj grupie klienta $all subskrybentowi dostęp do obszaru ContosoTopicSpace, jak pokazano poniżej.

    Zrzut ekranu przedstawiający tworzenie drugiego powiązania uprawnień.

  7. Wybierz pozycję Utwórz , aby utworzyć powiązanie uprawnień.

Łączenie klientów z przestrzenią nazw EG przy użyciu aplikacji MQTTX

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

  2. Wybierz + na pasku nawigacyjnym po lewej stronie.

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

  4. Zaktualizuj nazwę hosta na nazwę hosta MQTT na stronie Przegląd przestrzeni nazw.

    Zrzut ekranu przedstawiający stronę przeglądu przestrzeni nazw usługi Event Grid z nazwą hosta MQTT.

  5. Zaktualizuj port na 8883.

  6. Przełącz protokół SSL/TLS na WŁ.

  7. Przełącz opcję Ssl Secure to ON (Włącz protokół SSL), aby upewnić się, że weryfikacja certyfikatu usługi.

  8. Wybierz pozycję Certyfikat jako urząd certyfikacji lub certyfikaty z podpisem własnym.

  9. Podaj ścieżkę dla pliku certyfikatu klienta.

  10. Podaj ścieżkę dla pliku klucza klienta.

  11. Pozostałe ustawienia można pozostawić ze wstępnie zdefiniowanymi wartościami domyślnymi.

    Zrzut ekranu przedstawiający konfigurację klienta 1 część 1 w aplikacji MQTTX.

  12. Wybierz pozycję Połącz, aby połączyć klienta z brokerem MQTT.

  13. Powtórz powyższe kroki, aby połączyć drugiego klienta client2 z odpowiednimi informacjami uwierzytelniania, jak pokazano.

    Zrzut ekranu przedstawiający konfigurację klienta 2 część 1 w aplikacji MQTTX.

    Zrzut ekranu przedstawiający konfigurację klienta 2 część 2 w aplikacji MQTTX.

Publikowanie/subskrybowanie przy użyciu aplikacji MQTTX

  1. Po nawiązaniu połączenia z klientami w polu client2 wybierz przycisk + Nowa subskrypcja .

  2. Dodaj contosotopics/topic1 jako temat i wybierz pozycję Potwierdź. Możesz pozostawić inne pola z istniejącymi wartościami domyślnymi.

    Zrzut ekranu przedstawiający konfigurację tematu subskrypcji w aplikacji MQTTX.

  3. Wybierz pozycję client1 w lewej szynie.

  4. W przypadku klienta client1 w górnej części pola redagowania komunikatów wpisz contosotopics/topic1 jako temat do opublikowania.

  5. Utwórz wiadomość. Możesz użyć dowolnego formatu lub formatu JSON, jak pokazano poniżej.

  6. Kliknij przycisk Wyślij.

    Zrzut ekranu przedstawiający publikowanie komunikatów w temacie w aplikacji MQTTX.

  7. Komunikat powinien być widoczny jako opublikowany w kliencie 1.

    Zrzut ekranu przedstawiający komunikat opublikowany w temacie w aplikacji MQTTX.

  8. Przejdź do klienta 2. Upewnij się, że klient client2 odebrał komunikat.

    Zrzut ekranu przedstawiający komunikat odebrany przez subskrybowającego klienta w aplikacji MQTTX.