API-Unterstützung in Azure Static Web Apps mit Azure Functions

Front-End-Webanwendungen rufen häufig Back-End-APIs für Daten und Dienste auf. Von Azure Static Web Apps werden serverlose API-Endpunkte über Azure Functions bereitgestellt.

Azure Functions-APIs werden in Azure Static Web Apps je nach Hostingplan von zwei möglichen Konfigurationen unterstützt:

  • Verwaltete Funktionen: Standardmäßig ist die API einer statischen Web-App eine Azure Functions-Anwendung, die von Azure Static Web Apps verwaltet und bereitgestellt wird, was mit ein paar Einschränkungen einhergeht.

  • Bring Your Own Functions (BYOF) (Nutzung eigener Funktionen): Optional können Sie eine vorhandene Azure Functions-Anwendung eines beliebigen Plantyps bereitstellen, die über alle Features von Azure Functions verfügt. Mit dieser Konfiguration sind Sie dafür verantwortlich, eine separate Bereitstellung für die Functions-App zu verarbeiten.

Die folgende Tabelle vergleicht die Unterschiede zwischen der Verwendung verwalteter und vorhandener Funktionen.

Funktion Verwaltete Funktionen Nutzung eigener Funktionen (BYOF)
Zugriff auf Trigger und Bindungen in Azure Functions Nur HTTP Alle
Unterstützte Azure Functions-Runtimes1 Node.js 12
Node.js 14
Node.js 16
Node.js 18 (Public Preview)
.NET Core 3.1
.NET 6.0
.NET 7.0
Python 3.8
Python 3.9
Python 3.10
Alle
Unterstützte Hostingpläne für Azure Functions Verbrauch Verbrauch
Premium
Dediziert
Integrierte Sicherheit mit direktem Zugriff auf Benutzerdaten für die Authentifizierung und rollenbasierte Autorisierung
Routingintegration, durch die die /api-Route ganz ohne benutzerdefinierte CORS-Regeln auf sichere Weise für die Web-App verfügbar gemacht wird.
Verteilte Funktionen (Vorschau) für die dynamische globale Verteilung des Back-End-Compute.
Durable Functions-Programmiermodell
Verwaltete Identität
Tokenverwaltung mithilfe der Authentifizierungs- und Autorisierungsfunktionen von Azure App Service
Außerhalb von Azure Static Web Apps verfügbare API-Funktionen
Key Vault-Verweise

1 Um die Laufzeitversion in verwalteten Funktionen anzugeben, fügen Sie Ihrer Front-End-App eine Konfigurationsdatei hinzu, und legen Sie die apiRuntime-Eigenschaft fest. Die Unterstützung unterliegt der Unterstützungsrichtlinie für die Azure Functions-Sprachlaufzeit.

API-Optionen für Static Web Apps umfassen die folgenden Azure-Dienste:

Weitere Informationen finden Sie in der Übersicht über APIs.

Hinweis

Verteilte Funktionen sind mit verwalteten Funktionen verfügbar. Verteilte Funktionen verteilen Ihre verwalteten Funktionen automatisch an Bereiche mit hohen Anforderungslasten.

Konfiguration

API-Endpunkte sind für die Web-App über die api-Route verfügbar.

Verwaltete Funktionen Nutzung eigener Funktionen
Während die /api-Route festgelegt ist, haben Sie die Kontrolle über den Quellcode-Ordnerspeicherort der verwalteten Funktions-App. Dieser Ort kann durch Bearbeiten der YAML-Datei des Workflows geändert werden, die sich im Ordner .github/workflows Ihres Repositorys befindet. Anforderungen an die /api-Route werden an Ihre vorhandene Azure Functions-App gesendet.

Problembehandlung und Protokolle

Protokolle sind nur verfügbar, wenn Sie Application Insights hinzufügen.

Verwaltete Funktionen Nutzung eigener Funktionen
Aktivieren Sie die Protokollierung, indem Sie Application Insights für Ihre statische Web-App aktivieren. Aktivieren Sie die Protokollierung, indem Sie Application Insights für Ihre Azure Functions-App aktivieren.

Einschränkungen

Zusätzlich zu den Static Web Apps-API-Einschränkungen gelten ebenfalls die folgenden Einschränkungen für Azure Functions-APIs:

Verwaltete Funktionen Nutzung eigener Funktionen
  • Trigger und Bindungen sind auf HTTP beschränkt.
  • Die Azure Functions-App muss in Node.js 12, Node.js 14, Node.js 16, Node.js 18 (Public Preview), .NET Core 3.1, .NET 6.0, Python 3.8, Python 3.9 oder Python 3.10 geschrieben sein.
  • Einige Anwendungseinstellungen werden vom Dienst verwaltet, weshalb die folgenden Präfixe von der Runtime reserviert sind:
    • APPSETTING_, AZUREBLOBSTORAGE_, AZUREFILESSTORAGE_, AZURE_FUNCTION_, CONTAINER_, DIAGNOSTICS_, DOCKER_, FUNCTIONS_, IDENTITY_, MACHINEKEY_, MAINSITE_, MSDEPLOY_, SCMSITE_, SCM_, WEBSITES_, WEBSITE_, WEBSOCKET_, AzureWeb
  • Einige Anwendungstags werden vom Dienst intern verwendet. Daher sind die folgenden Tags reserviert:
    • AccountId, EnvironmentId, FunctionAppId.
  • Sie sind für die Verwaltung der Bereitstellung der Functions-App verantwortlich.

Nächste Schritte