Udostępnij za pośrednictwem


Set up local development for Azure Static Web Apps (Konfigurowanie lokalnego tworzenia aplikacji dla usługi Azure Static Web Apps)

Po opublikowaniu w chmurze witryna usługi Azure Static Web Apps łączy ze sobą wiele usług, które współpracują ze sobą tak, jakby były one tą samą aplikacją. Usługi te obejmują:

  • Statyczna aplikacja internetowa
  • Azure Functions API
  • Usługi uwierzytelniania i autoryzacji
  • Usługi routingu i konfiguracji

Te usługi muszą komunikować się ze sobą, a usługa Azure Static Web Apps obsługuje tę integrację w chmurze.

Jednak po uruchomieniu aplikacji lokalnie te usługi nie są automatycznie powiązane.

Aby zapewnić podobne środowisko, jak w przypadku korzystania z platformy Azure, interfejs wiersza polecenia usługi Azure Static Web Apps udostępnia następujące usługi:

  • Lokalny serwer statycznej lokacji
  • Serwer proxy do serwera programistycznego platformy frontonu
  • Serwer proxy dla punktów końcowych interfejsu API — dostępny za pośrednictwem narzędzi Azure Functions Core Tools
  • Pozorowanie uwierzytelniania i serwera autoryzacji
  • Wymuszanie tras lokalnych i ustawień konfiguracji

Uwaga

Często lokacje utworzone za pomocą platformy frontonu wymagają ustawienia konfiguracji serwera proxy, aby poprawnie obsługiwać żądania w api ramach trasy. W przypadku korzystania z interfejsu wiersza polecenia usługi Azure Static Web Apps wartość lokalizacji serwera proxy to /api, a bez interfejsu wiersza polecenia wartość to http://localhost:7071/api.

Jak to działa

Na poniższym wykresie przedstawiono sposób obsługi żądań lokalnie.

Diagram showing the Azure Static Web App CLI request and response flow.

Ważne

Przejdź do witryny http://localhost:4280 , aby uzyskać dostęp do aplikacji obsługiwanej przez interfejs wiersza polecenia.

  • Żądania wysyłane do portu 4280 są przekazywane do odpowiedniego serwera w zależności od typu żądania.

  • Żądania zawartości statycznej, takie jak HTML lub CSS, są obsługiwane przez wewnętrzny serwer zawartości statycznej interfejsu wiersza polecenia lub przez serwer platformy frontonu na potrzeby debugowania.

  • Żądania uwierzytelniania i autoryzacji są obsługiwane przez emulator, który udostępnia aplikacji fałszywy profil tożsamości.

  • Środowisko uruchomieniowenarzędzi Functions Core Tools 1 obsługuje żądania do interfejsu API witryny.

  • Odpowiedzi ze wszystkich usług są zwracane do przeglądarki tak, jakby wszystkie były pojedynczą aplikacją.

Po samodzielnym uruchomieniu interfejsu użytkownika i aplikacji interfejsu API usługi Azure Functions uruchom interfejs wiersza polecenia usługi Static Web Apps i wskaż uruchomione aplikacje przy użyciu następującego polecenia:

swa start http://localhost:<DEV-SERVER-PORT-NUMBER> --api-location http://localhost:7071

Opcjonalnie, jeśli używasz swa init polecenia, interfejs wiersza polecenia usługi Static Web Apps analizuje kod aplikacji i kompiluje plik konfiguracji swa-cli.config.json dla interfejsu wiersza polecenia. Gdy używasz pliku swa-cli.config.json , możesz uruchomić swa start polecenie , aby uruchomić aplikację lokalnie.

1 Narzędzia Azure Functions Core Tools są instalowane automatycznie przez interfejs wiersza polecenia, jeśli nie są jeszcze w systemie.

W poniższym artykule szczegółowo opisano kroki uruchamiania aplikacji opartej na węźle, ale proces jest taki sam dla dowolnego języka lub środowiska.

Wymagania wstępne

  • Istniejąca witryna usługi Azure Static Web Apps: jeśli jej nie masz, zacznij od aplikacji początkowej vanilla-api .
  • Node.js za pomocą narzędzia npm: uruchom wersję Node.js LTS, która obejmuje dostęp do narzędzia npm.
  • Visual Studio Code: używany do debugowania aplikacji interfejsu API, ale nie jest wymagany dla interfejsu wiersza polecenia.

Rozpocznij

Otwórz terminal w folderze głównym istniejącej witryny azure Static Web Apps.

  1. Zainstaluj interfejs wiersza polecenia.

    npm install -D @azure/static-web-apps-cli
    

    Napiwek

    Jeśli chcesz zainstalować interfejs wiersza polecenia programu SWA globalnie, użyj zamiast -Dprogramu -g . Zdecydowanie zaleca się jednak zainstalowanie struktury SWA jako zależności programistycznej.

  2. Skompiluj aplikację, jeśli jest to wymagane przez aplikację.

    Uruchom npm run buildpolecenie , lub równoważne polecenie dla projektu.

  3. Zainicjuj repozytorium interfejsu wiersza polecenia.

    swa init
    

    Odpowiedz na pytania zadawane przez interfejs wiersza polecenia, aby sprawdzić, czy ustawienia konfiguracji są poprawne.

  4. Uruchom interfejs wiersza polecenia.

    swa start
    
  5. Przejdź do witryny , http://localhost:4280 aby wyświetlić aplikację w przeglądarce.

Inne sposoby uruchamiania interfejsu wiersza polecenia

opis Command Komentarze
Obsługa określonego folderu swa start ./<OUTPUT_FOLDER_NAME> Zastąp <OUTPUT_FOLDER_NAME> ciąg nazwą folderu wyjściowego.
Korzystanie z uruchomionego serwera programistycznego platformy swa start http://localhost:3000 To polecenie działa, gdy masz wystąpienie aplikacji uruchomionej na porcie 3000. Zaktualizuj numer portu, jeśli konfiguracja jest inna.
Uruchamianie aplikacji usługi Functions w folderze swa start ./<OUTPUT_FOLDER_NAME> --api-location ./api Zastąp <OUTPUT_FOLDER_NAME> ciąg nazwą folderu wyjściowego. To polecenie oczekuje, że interfejs API aplikacji będzie miał pliki w folderze api . Zaktualizuj tę wartość, jeśli konfiguracja jest inna.
Korzystanie z uruchomionej aplikacji usługi Functions swa start ./<OUTPUT_FOLDER_NAME> --api-location http://localhost:7071 Zastąp <OUTPUT_FOLDER_NAME> ciąg nazwą folderu wyjściowego. To polecenie oczekuje, że aplikacja usługi Azure Functions będzie dostępna za pośrednictwem portu 7071. Zaktualizuj numer portu, jeśli konfiguracja jest inna.

Emulacja autoryzacji i uwierzytelniania

Interfejs wiersza polecenia usługi Static Web Apps emuluje przepływ zabezpieczeń zaimplementowany na platformie Azure. Po zalogowaniu użytkownika można zdefiniować fałszywy profil tożsamości zwrócony do aplikacji.

Na przykład podczas próby przejścia do /.auth/login/githubstrony zostanie zwrócona strona, która umożliwia zdefiniowanie profilu tożsamości.

Uwaga

Emulator działa z dowolnym dostawcą zabezpieczeń, a nie tylko z usługą GitHub.

Local authentication and authorization emulator

Emulator udostępnia stronę umożliwiającą podanie następujących wartości podmiotu zabezpieczeń klienta:

Wartość Opis
Nazwa użytkownika Nazwa konta skojarzona z dostawcą zabezpieczeń. Ta wartość jest wyświetlana jako userDetails właściwość w jednostce klienta i jest generowana automatycznie, jeśli nie podasz wartości.
Identyfikator użytkownika Wartość wygenerowana automatycznie przez interfejs wiersza polecenia.
Role Lista nazw ról, w której każda nazwa znajduje się w nowym wierszu.
Roszczenia Lista oświadczeń użytkowników, gdzie każda nazwa znajduje się w nowym wierszu.

Po zalogowaniu:

  • Możesz użyć punktu końcowego /.auth/me lub punktu końcowego funkcji, aby pobrać jednostkę klienta użytkownika.

  • Przejście w celu /.auth/logout wyczyszczenia podmiotu zabezpieczeń klienta i wylogowanie się z pozoru użytkownika.

Debugowanie

Istnieją dwa konteksty debugowania w statycznej aplikacji internetowej. Pierwsza dotyczy witryny zawartości statycznej, a druga dotyczy funkcji interfejsu API. Lokalne debugowanie jest możliwe, zezwalając interfejsowi wiersza polecenia usługi Static Web Apps na używanie serwerów deweloperskich dla jednego lub obu tych kontekstów.

W poniższych krokach przedstawiono typowy scenariusz korzystający z serwerów deweloperskich na potrzeby obu kontekstów debugowania.

  1. Uruchom serwer tworzenia statycznej lokacji. To polecenie jest specyficzne dla używanej platformy frontonu, ale często występuje w postaci poleceń, takich jak npm run build, npm startlub npm run dev.

  2. Otwórz folder aplikacji interfejsu API w programie Visual Studio Code i rozpocznij sesję debugowania.

  3. Uruchom interfejs wiersza polecenia usługi Static Web Apps przy użyciu następującego polecenia.

    swa start http://localhost:<DEV-SERVER-PORT-NUMBER> --appDevserverUrl http://localhost:7071
    

    Zastąp <DEV_SERVER_PORT_NUMBER> ciąg numerem portu serwera deweloperskiego.

Na poniższych zrzutach ekranu przedstawiono terminale dla typowego scenariusza debugowania:

Witryna zawartości statycznej jest uruchomiona za pośrednictwem polecenia npm run dev.

Static site development server

Aplikacja interfejsu API usługi Azure Functions uruchamia sesję debugowania w programie Visual Studio Code.

Visual Studio Code API debugging

Interfejs wiersza polecenia usługi Static Web Apps jest uruchamiany przy użyciu obu serwerów deweloperskich.

Azure Static Web Apps CLI terminal

Teraz żądania przechodzące przez port 4280 są kierowane do serwera programowania zawartości statycznej lub sesji debugowania interfejsu API.

Aby uzyskać więcej informacji na temat różnych scenariuszy debugowania, ze wskazówkami dotyczącymi dostosowywania portów i adresów serwera, zobacz repozytorium interfejsu wiersza polecenia usługi Azure Static Web Apps.

Przykładowa konfiguracja debugowania

Program Visual Studio Code używa pliku do włączania sesji debugowania w edytorze. Jeśli program Visual Studio Code nie generuje pliku launch.json, możesz umieścić następującą konfigurację w pliku .vscode/launch.json.

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Attach to Node Functions",
            "type": "node",
            "request": "attach",
            "port": 9229,
            "preLaunchTask": "func: host start"
        }
    ]
}

Następne kroki