Dela via


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

Klientwebbprogram anropar ofta api:er för återanrop 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 är tillgängliga i två möjliga konfigurationer beroende på värdplanen:

  • 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.

  • Ta med dina egna funktioner: Om du vill kan du ange 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
Azure Functions-körningar som stöds 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
Alla
Värdplaner för Azure Functions som stöds Förbrukning Förbrukning
Premium
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.
Distribuerade funktioner (förhandsversion) för dynamisk global distribution av serverdelsberäkning.
Durable Functions-programmeringsmodell
Hanterade identiteter
Hantering av autentiserings- och auktoriseringstoken i Azure App Service
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 supportpolicyn för Azure Functions-språkkörning.

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

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

Kommentar

Distribuerade funktioner är tillgängliga med hanterade funktioner. Distribuerade funktioner distribuerar automatiskt dina hanterade funktioner till regioner med hög begärandebelastning.

Konfiguration

API-slutpunkter är tillgängliga för webbappen api via vägen.

Hanterade funktioner Ta med dina egna funktioner
/api När vägen är fast har du kontroll över källkodsmappens plats 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 /api vägen 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 egna funktioner
Aktivera loggning genom att aktivera Application Insights på din statiska webbapp. Aktivera loggning genom att aktivera Application Insights i din Azure Functions-app.

Krav

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

Hanterade funktioner Ta med dina egna funktioner
  • Utlösare och bindningar är begränsade till HTTP.
  • Azure Functions-appen måste antingen finnas i Node.js 12, Node.js 14, Node.js 16, Node.js 18 (offentlig förhandsversion), .NET Core 3.1, .NET 6.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