API-stöd i Azure Static Web Apps med Azure Functions

Klientwebbprogram anropar ofta serverdels-API:er för data och tjänster. Som standard tillhandahåller Azure Static Web Apps inbyggda serverlösa API-slutpunkter via Azure Functions.

Azure Functions API:er i Static Web Apps finns tillgängliga i två möjliga konfigurationer beroende på planen hosting:

  • Hanterade funktioner: Som standard är API:et för en statisk webbapp ett Azure Functions program som hanteras och distribueras av Azure Static Web Apps som är associerat med vissa begränsningar.

  • Bringa egna funktioner: Om du vill kan du providera ett befintligt Azure Functions-program av vilken plantyp som helst, som innehåller alla funktioner i Azure Functions. Med den här konfigurationen ansvarar du för att hantera en separat distribution för Functions-appen.

Följande tabell kontrasterar skillnaderna mellan att använda hanterade och befintliga funktioner.

Funktion Hanterade funktioner Ta med dina egna funktioner
Åtkomst till Azure Functions utlösare och bindningar Endast HTTP Alla
Stöds Azure Functions runtimes1 Se språk och körtider som stöds. Alla
Azure Functions hostplaner som stöds Förbrukning Förbrukning
Förstklassig
Dedikerad
Integrerad säkerhet med direkt åtkomst till användarautentisering och rollbaserade auktoriseringsdata
Routningsintegrering som gör /api vägen tillgänglig för webbappen på ett säkert sätt utan att kräva anpassade CORS-regler.
Durable Functions programmeringsmodell
Hanterad identitet
Azure App Service autentisering och auktorisering tokenhantering
API-funktioner som är tillgängliga utanför Azure Static Web Apps
Key Vault referenser

1 Om du vill ange körningsversionen i hanterade funktioner lägger du till en konfigurationsfil i klientdelsappen och anger apiRuntime egenskapen. Supporten omfattas av supportprincipen Azure Functions language runtime.

API-alternativ för Static Web Apps omfattar följande Azure tjänster:

Mer information finns i översikten över API:er.

Konfiguration

API-slutpunkterna är tillgängliga för webbappen via api-rutten.

Hanterade funktioner Ta med dina egendefinierade funktioner
/api När rutten är fast har du kontroll över platsen för källkodsmappen för den hanterade funktionsappen. Du kan ändra den här platsen genom att redigera YAML-arbetsflödesfilen som finns i lagringsplatsens .github/workflows-mapp . Begäranden till vägen /api skickas till din befintliga Azure Functions app.

Felsökning och loggar

Loggar är bara tillgängliga om du lägger till Application Insights.

Hanterade funktioner Ta med dina egendefinierade funktioner
Aktivera loggning genom att aktivera Application Insights på din statiska webbapp. Aktivera loggning genom att aktivera Application Insights i din Azure Functions-app.

Begränsningar

Förutom Static Web Apps API constraints gäller följande begränsningar även för Azure Functions API:er:

Hanterade funktioner Ta med dina egendefinierade funktioner
  • Utlösare och bindningar är begränsade till HTTP.
  • Den Azure Functions appen måste antingen finnas i Node.js 12, Node.js 14, Node.js 16, Node.js 18, Node.js 20 (förhandsversion), .NET Core 3.1, .NET 6.0, .NET 7.0, .NET 8.0, Python 3.8, Python 3.9 eller Python 3.10.
  • Vissa programinställningar hanteras av tjänsten, och därför reserveras följande prefix av körningsmiljön:
    • APPSETTING_, AZUREBLOBSTORAGE_, AZUREFILESSTORAGE_, AZURE_FUNCTION_, CONTAINER_, DIAGNOSTICS_, DOCKER_, FUNCTIONS_, IDENTITY_, MACHINEKEY_, MAINSITE_, MSDEPLOY_, SCMSITE_, SCM_, WEBSITES_, WEBSITE_, WEBSOCKET_, AzureWeb
  • Vissa programtaggar används internt av tjänsten. Därför är följande taggar reserverade:
    • AccountId, EnvironmentId, FunctionAppId.
  • Du ansvarar för att hantera distributionen av Functions-appen.

Nästa steg