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:

  1. Tworzenie przestrzeni nazw usługi Event Grid i włączanie brokera MQTT
  2. Tworzenie zasobów podrzędnych, takich jak klienci, grupy klientów i przestrzenie tematów
  3. Udzielanie klientom dostępu do publikowania i subskrybowania obszarów tematów
  4. 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%).

  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.

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

      Screenshot showing Event Grid namespace create flow basics tab.

  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.

    Screenshot showing Event Grid namespace configuration page to enable 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.

    Screenshot of the Clients page with Add button selected.

  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.

    Screenshot of client 1 configuration.

  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.

    Screenshot of client 2 configuration.

    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.

    Screenshot of Topic spaces page with create button selected.

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

  4. Wybierz pozycję + Dodaj szablon tematu.

    Screenshot of Create topic space with the name.

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

    Screenshot of topic space configuration.

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.

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

  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.

      Screenshot showing creation of first permission binding.

  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.

    Screenshot showing creation of second permission binding.

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

Połączenie klientów do 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 .

    Screenshot showing MQTTX app left rail to add new client.

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

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

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

  4. Zaktualizuj port na 8883.

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

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

  7. Wybierz pozycję Certyfikat jako Podpis własny.

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

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

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

    Screenshot showing client 1 configuration part 1 on MQTTX app.

  11. Wybierz Połączenie, aby połączyć klienta z brokerem MQTT.

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

    Screenshot showing client 2 configuration part 1 on MQTTX app.

    Screenshot showing client 2 configuration part 2 on MQTTX app.

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.

    Screenshot showing subscription topic configuration on MQTTX app.

  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.

    Screenshot showing message publishing on the topic in MQTTX app.

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

    Screenshot showing message published on the topic in MQTTX app.

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

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

Następne kroki