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 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
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.
Gedistribueerde functies (preview) voor dynamische wereldwijde distributie van back-end-rekenkracht.
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.

Notitie

Gedistribueerde functies zijn beschikbaar met beheerde functies. Gedistribueerde functies distribueren uw beheerde functies automatisch naar regio's met hoge aanvraagbelastingen.

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 (openbare preview), .NET Core 3.1, .NET 6.0, Python 3.8, Python 3.9 of Python 3.10 hebben.
  • 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