Azure Static Web Apps — często zadawane pytania

Kompilacje i wdrożenia

Jakie struktury frontonu mogą być tworzone automatycznie przez usługę Static Web Apps?

Usługa Static Web Apps może automatycznie kompilować:

  • Popularne aplikacje jednostronicowe (SPA), w tym: React, Vue.js, Angular, Blazor WebAssembly
  • Często używane generatory witryn statycznych, w tym: Next.js, Nuxt.js, Gatsby, Hugo, Jekyll, Eleventy

Aby dowiedzieć się więcej, zobacz Konfigurowanie struktur frontonu.

Co się stanie podczas procesu kompilacji?

Aparat kompilacji usługi Azure Static Web Apps jest obsługiwany przez firmę Oryx, która kompiluje fronton i interfejs API aplikacji.

Po utworzeniu aplikacji oryx wykrywa kroki kompilacji i wykonuje je automatycznie. Jeśli na przykład aplikacja używa Node.js, instaluje pakiety przy użyciu narzędzia npm lub Yarn. Następnie uruchamia skrypt build lub build:azure podany w pliku package.json aplikacji.

Czy mogę dostosować proces kompilacji?

Jeśli chcesz mieć pełną kontrolę nad sposobem kompilowania aplikacji, możesz skonfigurować własne kroki kompilacji w przepływie pracy usługi GitHub aplikacji lub potoku usługi Azure DevOps. Następnie możesz użyć zadania GitHub Actions usługi Static Web Apps lub usługi Azure Pipelines, aby wdrożyć aplikację. Upewnij się, że ustawiono wartość skip_app_buildtrue. Aby dowiedzieć się więcej, zobacz Konfiguracja kompilacji.

Polecenie skip_app_build jest obsługiwane tylko w przypadku aplikacji frontonu. Aplikacja interfejsu API musi zostać skompilowana przez zadanie GitHub Actions lub Azure Pipelines usługi Azure Static Web Apps.

Nie można skompilować mojej aplikacji React z komunikatem "Traktowanie ostrzeżeń jako błędów, ponieważ process.env.CI = true". Jak mogę naprawić ten błąd?

Jeśli aplikacja używa polecenia create-react-app, polecenie kompilacji traktuje ostrzeżenia jako błędy podczas uruchamiania w środowisku ciągłej integracji, takim jak GitHub Actions lub Azure Pipelines. Jeśli masz ostrzeżenia w aplikacji, kompilacja nie powiedzie się. Aby rozwiązać te problemy, zmodyfikuj aplikację, aby usunąć ostrzeżenia. Jeśli chcesz, aby kompilacja zakończyła się pomyślnie, nawet jeśli występują ostrzeżenia, zaktualizuj skrypt kompilacji w package.json , aby usunąć ustawienie zmiennej środowiskowej CI :

"scripts": {
  "build": "CI= react-scripts build"
}

Jak mogę zmienić gałąź w usłudze GitHub?

Aby zmienić gałąź w celu skompilowania i wdrożenia, zaktualizuj nazwy gałęzi w przepływie pracy usługi GitHub aplikacji. Jeśli na przykład chcesz zmienić aplikację w celu skompilowania i wdrożenia z gałęzi o nazwie release, zaktualizuj sekcję on przepływu pracy:

on:
  push:
    branches:
      - release
  pull_request:
    types: [opened, synchronize, reopened, closed]
    branches:
      - release

W przypadku statycznych aplikacji internetowych utworzonych w okresie obowiązywania wersji zapoznawczej może być konieczne zresetowanie tokenu wdrożenia.

Czy muszę uruchomić akcję/zadanie usługi Static Web Apps w funkcji GitHub Actions systemu Linux lub agenta kompilacji usługi Azure Pipelines?

Aparat kompilacji usługi Azure Static Web Apps działa w kontenerze platformy Docker systemu Linux, więc można go uruchamiać tylko na agencie kompilacji systemu Linux.

Jak mogę wdrożyć aplikację korzystającą z usługi Git Large File Storage (LFS)?

W przepływie pracy usługi GitHub skonfiguruj actions/checkout akcję, aby włączyć funkcję LFS:

- uses: actions/checkout@v2
  with:
    submodules: true
    lfs: true

Czy muszę ręcznie przeczyścić lub unieważnić pamięć podręczną po wdrożeniu?

Usługa Azure Static Web Apps automatycznie obsługuje unieważnienie pamięci podręcznej. Po zakończeniu wdrażania wszystkie żądania są obsługiwane przez najnowszą wersję plików. Jednak pliki mogą być nadal buforowane w przeglądarkach użytkowników lub w usłudze CDN, jeśli je skonfigurowano. Aby kontrolować sposób buforowania zawartości przez przeglądarki i sieci CDN, skonfiguruj odpowiednie nagłówki w pliku konfiguracji aplikacji.

Czy mogę używać środowisk przedprodukcyjnego, jeśli wdrażam je za pomocą usługi Azure Pipelines?

Środowiska przedprodukcyjne są obecnie obsługiwane tylko w przypadku funkcji GitHub Actions.

Hosting

Czy usługa Static Web Apps obsługuje domeny niestandardowe i certyfikaty TLS?

Aplikację można skonfigurować tak, aby korzystała z domen niestandardowych, w tym domen wierzchołka. Usługa Static Web Apps automatycznie udostępnia bezpłatny certyfikat TLS podczas dodawania domeny niestandardowej. Aby dowiedzieć się więcej, zobacz Konfigurowanie domeny niestandardowej przy użyciu bezpłatnego certyfikatu.

Czy mogę dostosować stronę błędu 404 mojej aplikacji?

Niestandardowe strony błędów można skonfigurować przy użyciu responseOverrides sekcji pliku konfiguracji.

Jak mogę upewnić się, że moja aplikacja została wdrożona w określonym regionie świadczenia usługi Azure?

Azure Static Web Apps to usługa globalna. Statyczne zasoby aplikacji są globalnie dystrybuowane. Podczas tworzenia aplikacji wybierasz region, w którym wdrożono zarządzaną aplikację usługi Azure Functions. Jeśli potrzebujesz aplikacji usługi Functions w regionie, który nie obsługuje funkcji zarządzanych, możesz użyć funkcji Bring your own Functions z aplikacją usługi Functions wdrażaną oddzielnie.

Jak mogę skonfigurować statyczną aplikację internetową za usługą aplikacja systemu Azure Gateway lub usługą CDN, na przykład Azure Front Door?

Usługa Azure Static Web Apps obejmuje globalną dystrybucję statycznych zasobów aplikacji. Jeśli chcesz zmaksymalizować globalny ślad lub wymagać zaawansowanych funkcji, możesz dodać dedykowaną sieć dystrybucji zawartości (CDN) lub bramę aplikacja systemu Azure.

Aby ograniczyć ruch do określonej sieci CDN, skonfiguruj sieć CDN, aby dodać nagłówek zawierający wstępnie zdefiniowaną wartość wpisu tajnego do każdego żądania i skonfigurować usługę Static Web Apps, aby wymagać nagłówka. Aby ograniczyć ruch do usługi aplikacja systemu Azure Gateway, skonfiguruj aplikację tak, aby zezwalała na ruch tylko z adresu IP usługi Application Gateway.

Ponadto skonfiguruj aplikację tak, aby zezwalała na przekazywanie nazw hostów usługi CDN lub Application Gateway.

Aby dowiedzieć się więcej na temat konfigurowania usługi Azure Front Door, zobacz ten samouczek.

Jak mogę włączyć kompresję Gzip lub Brotli?

W przypadku zasobów z rozszerzeniami plików popularnych formatów tekstu, takich jak .html, .cssi .js, usługa Azure Static Web Apps automatycznie obsługuje skompresowane wersje Gzip lub Brotli zasobów statycznych, jeśli klient go obsługuje.

W przypadku innych typów plików usługa Static Web Apps umożliwia dołączenie skompresowanej wersji pliku Brotli z .br rozszerzeniem. Jeśli na przykład masz nieskompresowany plik o nazwie app.wasm, możesz dodać skompresowaną wersję o nazwie app.wasm.br do aplikacji. Ta wersja jest obsługiwana automatycznie, jeśli klient obsługujący żądania app.wasmBrotli .

Dlaczego moja statyczna aplikacja internetowa zwraca błąd 404 podczas uzyskiwania dostępu do trasy, która istnieje?

Większość struktur frontonu, takich jak React, Angular lub Blazor WebAssembly, używa routingu po stronie klienta do obsługi nawigacji. Trasy po stronie klienta są znane tylko aplikacji uruchomionej w przeglądarce. Jeśli żądasz trasy po stronie klienta z usługi Static Web Apps, zwraca błąd 404, ponieważ trasa nie istnieje w wdrożonych zasobach aplikacji. Aby rozwiązać ten problem, dodaj trasę rezerwową do pliku konfiguracji aplikacji.

Konfigurowanie

Jak mogę skonfigurować zmienne środowiskowe dla mojej aplikacji?

Istnieją różne typy zmiennych środowiskowych, które można ustawić dla aplikacji. Skonfiguruj zmienne wpływające na proces kompilacji frontonu aplikacji w konfiguracji kompilacji aplikacji. Aby skonfigurować zmienne używane przez interfejs API aplikacji, użyj ustawień aplikacji. Aby dowiedzieć się więcej, zobacz Omówienie konfiguracji.

Czy usługa Static Web Apps obsługuje tożsamość zarządzaną?

Usługa Static Web Apps obsługuje tożsamość zarządzaną, ale służy tylko do pobierania wpisów tajnych uwierzytelniania z usługi Key Vault.

Jeśli potrzebujesz tożsamości zarządzanej lub odwołań usługi Key Vault w interfejsie API, użyj funkcji bring your own Functions app, aby użyć oddzielnej aplikacji usługi Functions korzystającej z tożsamości zarządzanej.

Uwierzytelnianie

Ilu użytkowników może zalogować się do statycznej aplikacji internetowej?

Usługa Static Web Apps nie ma limitu liczby użytkowników, którzy mogą logować się do aplikacji. Role niestandardowe można przypisywać do maksymalnie 25 użytkowników przy użyciu wbudowanego systemu zaproszeń. Jeśli musisz przypisać role niestandardowe do większej liczby użytkowników, możesz użyć funkcji interfejsu API do programowego przypisywania ról.

Jak mogę użyć tokenu dostępu użytkownika lub oświadczeń od dostawcy tożsamości?

Token dostępu i oświadczenia użytkownika można pobrać podczas korzystania z funkcji interfejsu API na potrzeby zarządzania rolami.

Czy mam ograniczenie do korzystania z jednego dostawcy tożsamości?

W przypadku korzystania z wbudowanego uwierzytelniania usługi Static Web Apps użytkownicy mogą logować się przy użyciu dowolnego z obsługiwanych dostawców tożsamości. Jeśli chcesz uniemożliwić użytkownikom logowanie się za pomocą określonego dostawcy tożsamości, możesz go zablokować.

Jeśli używasz uwierzytelniania niestandardowego, możesz skonfigurować co najmniej jednego dostawcę tożsamości.

Funkcje interfejsu API

Jak mogę napisać moje interfejsy API przy użyciu języka lub wersji językowej, która nie obsługuje usługi Static Web Apps?

Aplikacje funkcji zarządzanej usługi Static Web Apps nie obsługują wszystkich języków ani wersji językowych obsługiwanych przez usługę Azure Functions. Możesz użyć funkcji bring your own Functions, aby połączyć oddzielną aplikację usługi Functions z statyczną aplikacją internetową.

Jak mogę tworzyć funkcje bezserwerowe, które reagują na zdarzenia inne niż HTTP?

Aplikacje funkcji zarządzanej w usłudze Static Web Apps są zoptymalizowane pod kątem scenariuszy interfejsu API i obsługują tylko wyzwalacze HTTP. Jeśli musisz użyć innych typów wyzwalaczy obsługiwanych przez usługę Azure Functions, takich jak zadania cron lub rozszerzenie Durable Functions na potrzeby stanowych przepływów pracy, możesz użyć funkcji bring your own Functions, aby połączyć oddzielną aplikację usługi Functions ze statyczną aplikacją internetową.

Ogólne

Jakie są ograniczenia planu Bezpłatnego?

Plan bezpłatny obejmuje wiele takich samych funkcji jak plan standardowy, takich jak dystrybucja globalna, domeny niestandardowe, bezpłatne certyfikaty TLS, funkcje zarządzanego interfejsu API i inne. Jeśli jednak potrzebujesz większej przepustowości, umowy dotyczącej poziomu usług (SLA) lub funkcji zaawansowanych, rozważ plan standardowy. Aby dowiedzieć się więcej, zobacz Plany hostingu i limity przydziału.

Czy mogę zmienić plan hostingu po utworzeniu aplikacji?

W dowolnym momencie możesz uaktualnić plan Bezpłatna do Standardowa. Możesz również obniżyć dół planu standardowego do planu Bezpłatna, jeśli nie używasz funkcji, które wymagają planu standardowego.

Czy mogę lokalnie opracowywać statyczną aplikację internetową bez jej wdrażania?

Większość platform frontonu udostępnia serwer deweloperów do lokalnego uruchamiania aplikacji. Jeśli jednak chcesz używać funkcji uwierzytelniania lub interfejsu API, testowanie wszystkich funkcji aplikacji może być trudne bez wdrażania jej na platformie Azure. Aby uruchomić aplikację lokalnie, możesz użyć interfejsu wiersza polecenia usługi Static Web Apps, który emuluje środowisko chmury, w tym uwierzytelnianie i integruje się z narzędziami Azure Functions Core Tools do uruchamiania funkcji interfejsu API. Istnieje również rozszerzenie Static Web Apps Visual Studio Code, którego można użyć do wdrożenia aplikacji na platformie Azure.

Jak uzyskać pomoc lub zasugerować nową funkcję?

Jeśli potrzebujesz pomocy lub masz sugestię, możesz utworzyć problem w repozytorium GitHub Static Web Apps.

Aby uzyskać natychmiastową pomoc dotyczącą problemu, skontaktuj się z pomoc techniczna platformy Azure.