Udostępnij za pośrednictwem


Obsługa interfejsu API w Azure Static Web Apps przy użyciu Azure Functions

Aplikacje frontendowe często odwołują się do interfejsów API zaplecza dla danych i usług. Domyślnie Azure Static Web Apps udostępnia wbudowane bezserwerowe punkty końcowe interfejsu API za pośrednictwem Azure Functions.

interfejsy API Azure Functions w aplikacjach Static Web Apps są udostępniane w dwóch możliwych konfiguracjach w zależności od planu hostingu:

  • Zarządzane funkcje: Domyślnie interfejs API statycznej aplikacji internetowej to aplikacja Azure Functions zarządzana i wdrażana przez Azure Static Web Apps skojarzone z pewnymi ograniczeniami.

  • Dostarcz swoje własne funkcje: Opcjonalnie możesz dostarcz istniejącą aplikację Azure Functions dowolnego typu planu, która obejmuje wszystkie funkcjonalności Azure Functions. Dzięki tej konfiguracji odpowiadasz za obsługę oddzielnego wdrożenia aplikacji usługi Functions.

W poniższej tabeli przedstawiono różnice między używaniem funkcji zarządzanych i istniejących.

Funkcja Funkcje zarządzane Przynieś swoje funkcje
Dostęp do funkcji Azure wyzwalaczy i powiązań Tylko protokół HTTP wszystkie
Obsługiwane Azure Functions runtimes1 Zobacz obsługiwane języki i środowiska uruchomieniowe. wszystkie
Obsługiwane plany hostingowe w Azure Functions Zużycie Zużycie
Premium
Dedykowana
Zintegrowane zabezpieczenia z bezpośrednim dostępem do uwierzytelniania użytkowników i danych autoryzacji opartej na rolach
Integracja routingu, która umożliwia /api bezpieczne udostępnianie trasy aplikacji internetowej bez konieczności używania niestandardowych reguł CORS.
Durable Functions model programowania
Tożsamość zarządzana
Azure App Service Uwierzytelnianie i autoryzacja zarządzanie tokenami
Funkcje interfejsu API dostępne poza Azure Static Web Apps
odniesienia do Key Vault

1 Aby określić wersję środowiska uruchomieniowego w funkcjach zarządzanych, dodaj plik konfiguracji do aplikacji frontendowej apiRuntime i ustaw właściwość. Pomoc techniczna podlega zasadom obsługi środowiska uruchomieniowego języka Azure Functions.

Opcje interfejsu API dla Static Web Apps obejmują następujące usługi Azure:

Aby uzyskać więcej informacji, zobacz omówienie interfejsów API.

Konfigurowanie

Punkty końcowe interfejsu API są dostępne dla aplikacji internetowej za pośrednictwem api ścieżki.

Funkcje zarządzane Przynieś swoje własne funkcje
/api Chociaż trasa jest stała, masz kontrolę nad lokalizacją folderu kodu źródłowego aplikacji funkcji zarządzanych. Tę lokalizację można zmienić, edytując plik YAML przepływu pracy znajdujący się w folderze .github/workflows w repozytorium. Żądania do trasy /api są wysyłane do istniejącej aplikacji Azure Functions.

Rozwiązywanie problemów i dzienniki

Dzienniki są dostępne tylko w przypadku dodawania usługi Application Insights.

Funkcje zarządzane Przynieś swoje własne funkcje
Włącz rejestrowanie, włączając usługę Application Insights w statycznej aplikacji internetowej. Włącz rejestrowanie, włączając usługę Application Insights w aplikacji Azure Functions.

Ograniczenia

Oprócz ograniczeń interfejsu API Static Web Apps następujące ograniczenia dotyczą również interfejsów API Azure Functions:

Funkcje zarządzane Przynieś swoje własne funkcje
  • Wyzwalacze i powiązania są ograniczone do protokołu HTTP.
  • Aplikacja Azure Functions musi znajdować się w Node.js 12, Node.js 14, Node.js 16, Node.js 18, Node.js 20 (wersja zapoznawcza), .NET Core 3.1, .NET 6.0, .NET 7.0, .NET 8.0, Python 3.8, Python 3.9 lub Python 3.10.
  • Niektóre ustawienia aplikacji są zarządzane przez usługę, dlatego następujące prefiksy są zarezerwowane przez środowisko uruchomieniowe:
    • APPSETTING_, AZUREBLOBSTORAGE_, AZUREFILESSTORAGE_, AZURE_FUNCTION_, CONTAINER_, DIAGNOSTICS_, DOCKER_, FUNCTIONS_, IDENTITY_, MACHINEKEY_, MAINSITE_, MSDEPLOY_, SCMSITE_, SCM_, WEBSITES_, WEBSITE_, WEBSOCKET_, AzureWeb
  • Niektóre tagi aplikacji są używane wewnętrznie przez usługę. W związku z tym następujące tagi są zarezerwowane:
    • AccountId, EnvironmentId, FunctionAppId.
  • Odpowiadasz za zarządzanie wdrożeniem aplikacji usługi Functions.

Następne kroki