Podpora rozhraní API ve službě Azure Static Web Apps se službou Azure Functions

Front-endové webové aplikace často volají koncová rozhraní API pro data a služby. Služba Azure Static Web Apps ve výchozím nastavení poskytuje integrované koncové body bezserverového rozhraní API prostřednictvím služby Azure Functions.

Rozhraní API služby Azure Functions ve statických webových aplikacích jsou dostupná ve dvou možných konfiguracích v závislosti na plánu hostování:

  • Spravované funkce: Rozhraní API statické webové aplikace je ve výchozím nastavení aplikace Azure Functions spravovaná a nasazená službou Azure Static Web Apps přidružená k určitým omezením.

  • Přineste si vlastní funkce: Volitelně můžete poskytnout existující aplikaci Azure Functions libovolného typu plánu, která zahrnuje všechny funkce Azure Functions. S touto konfigurací zodpovídáte za zpracování samostatného nasazení aplikace Functions.

Následující tabulka kontrastuje s rozdíly mezi používáním spravovaných a existujících funkcí.

Funkce Spravované funkce Používání vlastních funkcí
Přístup k triggerům a vazbám Azure Functions Pouze HTTP Všechny
Podporované modulyruntime 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
Všechny
Podporované plány hostování Azure Functions Využití Využití
Premium
Vyhrazené
Integrované zabezpečení s přímým přístupem k ověřování uživatelů a autorizačním datům založeným na rolích
Integrace směrování, která zpřístupňuje trasu /api webové aplikaci bezpečně, aniž by vyžadovala vlastní pravidla CORS.
Distribuované funkce (Preview) pro dynamickou globální distribuci back-endových výpočetních prostředků
Programovací model Durable Functions
Spravovaná identita
správa ověřovacích a autorizačních tokenů služby Aplikace Azure
Funkce rozhraní API dostupné mimo Azure Static Web Apps
Reference ke službě Key Vault

1 Chcete-li zadat verzi modulu runtime ve spravovaných funkcích, přidejte do front-endové aplikace konfigurační soubor a nastavte apiRuntime vlastnost. Podpora podléhá zásadám podpory modulu runtime jazyka Azure Functions.

Mezi možnosti rozhraní API pro Static Web Apps patří následující služby Azure:

Další informace najdete v přehledu rozhraní API.

Poznámka:

Distribuované funkce jsou dostupné se spravovanými funkcemi. Distribuované funkce automaticky distribuují spravované funkce do oblastí vysokého zatížení požadavků.

Konfigurace

Koncové body rozhraní API jsou pro webovou aplikaci dostupné prostřednictvím api trasy.

Spravované funkce Používání vlastních funkcí
/api I když je trasa pevná, máte kontrolu nad umístěním složky zdrojového kódu aplikace spravovaných funkcí. Toto umístění můžete změnit úpravou souboru YAML pracovního postupu umístěného ve složce .github/workflows úložiště. Požadavky na trasu /api se posílají do vaší stávající aplikace Azure Functions.

Řešení potíží a protokoly

Protokoly jsou dostupné jenom v případě, že přidáte Přehledy aplikace.

Spravované funkce Používání vlastních funkcí
Zapněte protokolování povolením Přehledy aplikace ve statické webové aplikaci. Zapněte protokolování tak, že v aplikaci Azure Functions povolíte aplikaci Application Přehledy.

Omezení

Kromě omezení rozhraní API static Web Apps platí také následující omezení pro rozhraní API služby Azure Functions:

Spravované funkce Používání vlastních funkcí
  • Triggery a vazby jsou omezené na HTTP.
  • Aplikace Azure Functions musí být ve verzi Node.js 12, Node.js 14, Node.js 16, Node.js 18 (Public Preview), .NET Core 3.1, .NET 6.0, Python 3.8, Python 3.9 nebo Python 3.10.
  • Některá nastavení aplikace spravuje služba, proto modul runtime vyhrazuje následující předpony:
    • APPSETTING_, AZUREBLOBSTORAGE_, AZUREFILESSTORAGE_, AZURE_FUNCTION_, CONTAINER_, DIAGNOSTICS_, DOCKER_, FUNCTIONS_, IDENTITY_, MACHINEKEY_, MAINSITE_, MSDEPLOY_, SCMSITE_, SCM_, WEBSITES_, WEBSITE_, WEBSOCKET_, AzureWeb
  • Služba interně používá některé značky aplikace. Proto jsou vyhrazeny následující značky:
    • AccountId, EnvironmentId, FunctionAppId.
  • Zodpovídáte za správu nasazení aplikace Functions.

Další kroky