Udostępnij za pośrednictwem


Obsługa interfejsów API w usłudze Azure Static Web Apps z usługą Azure Functions

Aplikacje internetowe frontonu często wywołuje interfejsy API zaplecza dla danych i usług. Domyślnie usługa Azure Static Web Apps udostępnia wbudowane bezserwerowe punkty końcowe interfejsu API za pośrednictwem usługi Azure Functions.

Interfejsy API usługi Azure Functions w usłudze Static Web Apps są dostępne w dwóch możliwych konfiguracjach w zależności od planu hostingu:

  • Funkcje zarządzane: domyślnie interfejs API statycznej aplikacji internetowej to aplikacja usługi Azure Functions zarządzana i wdrażana przez usługę Azure Static Web Apps skojarzona z pewnymi ograniczeniami.

  • Korzystanie z własnych funkcji: opcjonalnie możesz udostępnić istniejącą aplikację usługi Azure Functions dowolnego typu planu, która obejmuje wszystkie funkcje usługi 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 Korzystanie z własnych funkcji
Dostęp do wyzwalaczy i powiązań usługi Azure Functions Tylko protokół HTTP wszystkie
Obsługiwane środowiska uruchomienioweusługi Azure Functions 1 Node.js 12
Node.js 14
Node.js 16
Node.js 18
.NET Core 3.1
.NET 6.0
.NET 7.0
Python 3.8
Python 3.9
Python 3.10
wszystkie
Obsługiwane plany hostingu usługi Azure Functions Zużycie Zużycie
Premium
Dedykowane
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.
Funkcje rozproszone (wersja zapoznawcza) na potrzeby dynamicznej globalnej dystrybucji zasobów obliczeniowych zaplecza.
Model programowania durable functions
Tożsamość zarządzana
zarządzanie tokenami uwierzytelniania i autoryzacji usługi aplikacja systemu Azure
Funkcje interfejsu API dostępne poza usługą Azure Static Web Apps
Odwołania do usługi Key Vault

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

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

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

Uwaga

Funkcje rozproszone są dostępne za pomocą funkcji zarządzanych. Funkcje rozproszone automatycznie dystrybuują funkcje zarządzane do regionów dużych obciążeń żądań.

Konfigurowanie

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

Funkcje zarządzane Korzystanie z własnych funkcji
/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 repozytorium. Żądania do /api trasy są wysyłane do istniejącej aplikacji usługi Azure Functions.

Rozwiązywanie problemów i dzienniki

Dzienniki są dostępne tylko w przypadku dodawania Szczegółowe informacje aplikacji.

Funkcje zarządzane Korzystanie z własnych funkcji
Włącz rejestrowanie, włączając Szczegółowe informacje aplikacji w statycznej aplikacji internetowej. Włącz rejestrowanie, włączając Szczegółowe informacje aplikacji w aplikacji usługi Azure Functions.

Ograniczenia

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

Funkcje zarządzane Korzystanie z własnych funkcji
  • Wyzwalacze i powiązania są ograniczone do protokołu HTTP.
  • Aplikacja usługi Azure Functions musi znajdować się w wersji Node.js 12, Node.js 14, Node.js 16, Node.js 18 (publiczna wersja zapoznawcza), .NET Core 3.1, .NET 6.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