Delen via


API-ondersteuning in Azure Static Web Apps met Azure Functions

Front-endwebtoepassingen maken vaak callback-end-API's voor gegevens en services. Azure Static Web Apps biedt standaard ingebouwde serverloze API-eindpunten via Azure Functions.

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

  • 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 zijn gekoppeld aan een aantal beperkingen.

  • Bring Your Own Functions: Optioneel kunt u een bestaande Azure Functions-toepassing van elk abonnementstype bieden, die 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 Bring your own Functions
Toegang tot Azure Functions-triggers en -bindingen Alleen HTTP Alle
Ondersteunde Azure Functions-runtimes 1 Bekijk ondersteunde talen en runtimes. Alle
Ondersteunde Azure Functions-hostingabonnementen Verbruik Verbruik
Premium
Toegewezen
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-programmeermodel
Beheerde identiteit
beheer van Azure-app serviceverificatie en autorisatietoken
API-functies die beschikbaar zijn buiten Azure Static Web Apps
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 de taalruntime van Azure Functions.

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 Bring Your Own Functions
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 Bring Your Own Functions
Schakel logboekregistratie in door Application Insights in te schakelen voor uw statische web-app. Schakel logboekregistratie in door Application Insights in te schakelen in uw Azure Functions-app.

Beperkingen

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

Beheerde functies Bring Your Own Functions
  • 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