API-ondersteuning in Azure Static Web Apps met Azure Functions

Front-endwebtoepassingen roepen vaak back-end-API's aan voor gegevens en services. Standaard biedt Azure Static Web Apps ingebouwde serverloze API-eindpunten via Azure Functions.

Azure Functions API's in Static Web Apps zijn beschikbaar in twee mogelijke configuraties, afhankelijk van het hostingplan:

  • Beheerde functies: de API van een statische web-app is standaard een Azure Functions toepassing die wordt beheerd en geïmplementeerd door Azure Static Web Apps die is gekoppeld aan een aantal beperkingen.

  • Bring your own functions: Optioneel kunt u een bestaande Azure Functions-toepassing verdelen van elk abonnementstype, dat alle functies van Azure Functions bevat. Met deze configuratie bent u verantwoordelijk voor het afhandelen van een afzonderlijke implementatie voor de Functions-app.

De volgende tabel contrasteert de verschillen tussen het gebruik van beheerde en bestaande functies.

Functie Beheerde functies Breng je eigen functies
Toegang tot Azure Functions triggers en bindingen Alleen HTTP Alle
Ondersteunde Azure Functions runtimes1 Bekijk ondersteunde talen en runtimes. Alle
Ondersteunde Azure Functions hostingplannen Verbruik Verbruik
Premium
Dedicated
Geïntegreerde beveiliging met directe toegang tot gebruikersverificatie en autorisatiegegevens op basis van rollen
Routeringsintegratie waarmee de /api route veilig beschikbaar wordt gemaakt voor de web-app zonder dat hiervoor aangepaste CORS-regels nodig zijn.
Durable Functions het programmeermodel
Beheerde identiteit
Azure App Service verificatie en autorisatie tokenbeheer
API-functies die buiten Azure Static Web Apps beschikbaar zijn
Key Vault verwijzingen

1 Als u de runtimeversie in beheerde functies wilt opgeven, voegt u een configuratiebestand toe aan uw front-end-app en stelt u de apiRuntime eigenschap in. Ondersteuning is onderhevig aan het ondersteuningsbeleid voor Azure Functions language runtime.

API-opties voor Static Web Apps omvatten de volgende Azure services:

Zie het overzicht van API's voor meer informatie.

Configuratie

API-eindpunten zijn beschikbaar voor de web-app via de api route.

Beheerde functies Breng je eigen functies mee
Terwijl de /api route is opgelost, hebt u controle over de locatie van de broncodemap van de beheerde functions-app. U kunt deze locatie wijzigen door het YAML-werkstroombestand in de map .github/werkstromen van uw opslagplaats te bewerken. Aanvragen naar de /api-route worden verzonden naar uw bestaande Azure Functions-app.

Problemen oplossen en logboeken

Logboeken zijn alleen beschikbaar als u Application Insights toevoegt.

Beheerde functies Breng je eigen functies mee
Schakel logboekregistratie in door Application Insights in te schakelen voor uw statische web-app. Schakel logboekregistratie in door Application Insights in te schakelen voor uw Azure Functions-app.

Beperkingen

Naast de Static Web Apps API constraints zijn de volgende beperkingen ook van toepassing op Azure Functions API's:

Beheerde functies Breng je eigen functies mee
  • Triggers en bindingen zijn beperkt tot HTTP.
  • De Azure Functions-app moet zich in Node.js 12, Node.js 14, Node.js 16, Node.js 18, Node.js 20 (preview), .NET Core 3.1, .NET 6.0, .NET 7.0, .NET 8.0, Python 3.8, Python 3.9 of Python 3.10.
  • Sommige toepassingsinstellingen worden beheerd door de service, daarom worden de volgende voorvoegsels gereserveerd door de runtime:
    • APPSETTING_, AZUREBLOBSTORAGE_, AZUREFILESSTORAGE_, AZURE_FUNCTION_, CONTAINER_, DIAGNOSTICS_, DOCKER_, FUNCTIONS_, IDENTITY_, MACHINEKEY_, MAINSITE_, MSDEPLOY_, SCMSITE_, SCM_, WEBSITES_, WEBSITE_, WEBSOCKET_, AzureWeb
  • Sommige toepassingstags worden intern gebruikt door de service. Daarom zijn de volgende tags gereserveerd:
    • AccountId, EnvironmentId, FunctionAppId.
  • U bent verantwoordelijk voor het beheren van de implementatie van de Functions-app.

Volgende stappen