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 Zobacz obsługiwane języki i środowiska uruchomieniowe. 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.
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.

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 usługi Application Insights.

Funkcje zarządzane Korzystanie z własnych funkcji
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 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