Udostępnij za pośrednictwem


Narzędzie lokalnego tunelu PubSub platformy Azure

Lokalny tunel Web PubSub udostępnia lokalne środowisko programistyczne dla klientów w celu ulepszenia lokalnego środowiska deweloperskiego. Nie ma już potrzeby używania narzędzi innych firm do uwidaczniania portów lokalnych, użyj tunelu lokalnego Web PubSub jako tunelu między usługą Web PubSub i serwerem lokalnym, aby zapewnić bezpieczeństwo i bezpieczeństwo lokalnego środowiska projektowego.

Tunel lokalny Web PubSub zapewnia:

  • Sposób tunelowania ruchu z usługi Web PubSub do serwera lokalnego
  • Sposób wyświetlania kompleksowego przepływu danych z klienta do usługi Web PubSub przez tunel i do serwera lokalnego
  • Udostępnia osadzony serwer nadrzędny, aby rozpocząć pracę
  • Zapewnia prostego klienta umożliwiającego rozpoczęcie opracowywania serwerów

Korzyści:

  • Zabezpieczone lokalnie: nie trzeba ujawniać serwera lokalnego publicznemu
  • Zabezpieczone połączenie: użyj zasad dostępu Microsoft Entra ID i Web PubSub, aby nawiązać połączenie
  • Prosta konfiguracja: zestawy szablonów adresów URL do tunnel:///<your_server_path>
  • Inspekcja danych: żywy widok danych i przepływu pracy

Warunek wstępny

  • Node.js w wersji 16 lub nowszej

Instalowanie

npm install -g @azure/web-pubsub-tunnel-tool

Użycie

Usage: awps-tunnel [options] [command]

A local tool to help tunnel Azure Web PubSub traffic to local web app and provide a vivid view to the end to end workflow.

Options:
  -v, --version   Show the version number.
  -h, --help      Show help details.

Commands:
  status          Show the current configuration status.
  bind [options]  Bind configurations to the tool so that you don't need to specify them every time running the tool.
  run [options]   Run the tool.
  help [command]  Display help details for subcommand.

You could also set WebPubSubConnectionString environment variable if you don't want to configure endpoint.

Przygotowywanie poświadczeń

Obsługiwane są zarówno parametry połączenia, jak i Microsoft Entra ID.

Korzystanie z parametry połączenia

  1. W portalu usługi Web PubSub skopiuj parametry połączenia z portalu usługi Web PubSub.

  2. Ustaw parametry połączenia na lokalną zmienną środowiskową i uruchom .awps-tunnel

export WebPubSubConnectionString="<your connection string>"

Korzystanie z tożsamości platformy Azure

  1. W portalu usługi Web PubSub przejdź do karty Kontrola dostępu i dodaj rolę Web PubSub Service Owner do tożsamości.

  2. W terminalu lokalnym użyj interfejsu wiersza polecenia az login platformy Azure, aby zalogować się do swojej tożsamości.

  3. Alternatywnie można ustawić informacje o koncie za pomocą zdefiniowanych zmiennych środowiskowych lub użyć uwierzytelniania tożsamości zarządzanej bezpośrednio w przypadku obsługiwanych usług platformy Azure.

Uruchom

  1. W portalu usługi Web PubSub przejdź do karty Ustawienia, określ szablon adresu URL procedury obsługi zdarzeń, który ma rozpoczynać się od tunnel:/// , aby zezwolić na połączenie tunelu.

    Zrzut ekranu przedstawiający konfigurowanie nadrzędnego adresu URL w ustawieniach centrum.

  2. Uruchom narzędzie za pomocą centrum ustawionego wcześniej, na przykład połącz się z punktem końcowym https://<awps-host-name>.webpubsub.azure.com za pomocą centrum chat:

    awps-tunnel run --hub chat --endpoint https://<awps-host-name>.webpubsub.azure.com
    

    Możesz również użyć awps-tunnel bind --hub chat --endpoint https://<awps-host-name>.webpubsub.azure.com polecenia , aby zapisać konfigurację, a następnie awps-tunnel run.

  3. Zobaczysz dane wyjściowe, takie jak Open webview at: http://127.0.0.1:4000, otwórz link w przeglądarce i zobaczysz stan tunelu i przepływ pracy.

  4. Teraz przejdź na kartę Serwer i zaznacz pole wyboru Wbudowany serwer echo , aby uruchomić wbudowany serwer nadrzędny z kodem podobnym do przykładowego kodu pokazanego poniżej.

    Zrzut ekranu przedstawiający uruchamianie wbudowanego serwera echo.

  5. Alternatywnie możesz uruchomić własny serwer nadrzędny pod adresem http://localhost:3000. Możesz również określić opcję--upstream http://localhost:<custom-port> , kiedy awps-tunnel run lub awps-tunnel bind skonfigurować własny serwer nadrzędny na porcie niestandardowym. Na przykład uruchom poniższy kod, aby uruchomić ten przykładowy serwer nadrzędny, po uruchomieniu nadrzędnego nadrzędnego serwera, nadrzędna usługa obsługuje żądania do http://localhost:3000/eventhandler/.

    git clone https://github.com/Azure/azure-webpubsub.git
    cd tools/awps-tunnel/server/samples/upstream
    npm install
    npm start
    
  6. Teraz przejdź do karty Klient , wybierz Connect , aby uruchomić testowe połączenie Protokołu WebSocket z usługą Azure Web PubSub. Zobaczysz, że ruch przechodzi przez sieć Web PubSub do tunelu lokalnego, a na koniec dociera do nadrzędnego serwera. Karta tunelu zawiera szczegółowe informacje o żądaniu i odpowiedziach, zapewniając żywy widok tego, co żąda serwera nadrzędnego i co odpowiada z nadrzędnego serwera.

    Zrzut ekranu przedstawiający uruchamianie testu połączenia protokołu WebSocket i wysyłanie komunikatu.

    Zrzut ekranu przedstawiający inspekcję ruchu.

Under the hood (Za kulisami usługi Azure RMS — działanie)

Jak działa narzędzie tunelowania? Pod maską uruchamia połączenie tunelu z usługą Web PubSub. Połączenie tunelu to trwałe połączenie (WebSocket) łączy się z /server/tunnel punktem końcowym i jest uznawane za jedno rodzaj połączeń serwera. Możesz również użyć reguł listy ACL w usłudze, aby wyłączyć takie połączenia z nawiązywaniem połączenia.