Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Von Bedeutung
Einstellungshinweis: Datenbankverbindungen für statische Web Apps enden am 30. November 2025. Migrieren Sie jetzt, um Unterbrechungen zu vermeiden.
Mit dem Azure Static Web Apps-Datenbankverbindungsfeature können Sie von Ihrer statischen Web-App aus auf eine Datenbank zugreifen, ohne benutzerdefinierten serverseitigen Code zu schreiben.
Nachdem Sie eine Verbindung zwischen Ihrer Webanwendung und Der Datenbank erstellt haben, können Sie Daten mit vollständiger Unterstützung für CRUD-Vorgänge, integrierte Autorisierung und Beziehungen bearbeiten.
Basierend auf dem Daten-API-Generator übernimmt Azure Static Web Apps REST- und GraphQL-Anforderungen und konvertiert sie in Datenbankabfragen.
Zu den features, die von Datenbankverbindungen unterstützt werden, gehören:
| Merkmal | Description |
|---|---|
| Integrierte Sicherheit | Integrierte Integration mit Azure Static Web Apps-Authentifizierungs- und Autorisierungssicherheitsmodell. Die gleiche rollenbasierte Sicherheit, die für sichere Routen verwendet wird, ist für API-Endpunkte verfügbar. |
| Vollständige CRUD-basierte Vorgänge | In den Lernprogrammen für Azure Cosmos DB, Azure SQL, MySQL oder PostgreSQL finden Sie ein Beispiel zum Bearbeiten von Daten in Ihrer Anwendung. |
| Unterstützt SQL und NoSQL | Sie können relationale und Dokumentdatenbanken als Datenbank Ihrer Anwendung verwenden. |
| Serverlose Architektur | Verbindungen werden (während der Vorschau) von null auf einen Worker skaliert. |
| Datenbankbeziehungen | Wird nur über den GraphQL-Endpunkt unterstützt. |
| CLI-Unterstützung | Entwickeln Sie lokal mit der Static Web Apps CLI. Verwenden Sie die --data-api-location Option zum Behandeln von Anforderungen an Daten-APIs in der Entwicklung genau so, wie sie in der Cloud behandelt werden. |
Unterstützte Datenbanken
Die folgende Tabelle zeigt unterstützung für verschiedene relationale und NoSQL-Datenbanken.
| Name | Typ | Description | REST | GraphQL |
|---|---|---|---|---|
| Azure Cosmos DB | Norm | Global verteilte Datenbankplattform für NoSQL und relationale Datenbanken in beliebiger Größenordnung. Zusätzlich zur Standardkonfiguration ist eine gql Schemadatei für GraphQL-Endpunkte erforderlich. |
✔ | |
| Azure SQL | Norm | Familie von verwalteten, sicheren und intelligenten Produkten, die das SQL Server-Datenbankmodul in der Azure-Cloud verwenden. | ✔ | ✔ |
| Azure-Datenbank für MySQL | Flex | Relationaler Datenbankdienst in der Microsoft-Cloud basierend auf der MySQL Community Edition | ✔ | ✔ |
| Azure-Datenbank für PostgreSQL | Flexibilität | Vollständig verwaltete PostgreSQL-Datenbank-as-a-Service, die unternehmenskritische Workloads mit vorhersehbarer Leistung und dynamischer Skalierbarkeit verarbeitet. | ✔ | ✔ |
| Azure-Datenbank für PostgreSQL (single) | Ledig | Vollständig verwaltete PostgreSQL-Datenbank. | ✔ | ✔ |
Sie können die folgenden Verbindungstypen für den Datenbankzugriff verwenden:
- Verbindungszeichenfolge
- Dem Benutzer zugewiesene Managed Identity
- Vom System zugewiesene verwaltete Identität
Endpoint location
Der Zugriff auf Datenendpunkte ist außerhalb des /data-api Pfads verfügbar.
In der folgenden Tabelle wird gezeigt, wie Anforderungen an verschiedene Teile einer statischen Web-App weitergeleitet werden:
| Pfad | Description |
|---|---|
example.com/api/* |
API-Funktionen |
example.com/data-api/* |
Datenbankverbindungsendpunkte, die REST- und GraphQL-Anforderungen unterstützen. |
example.com/* |
Statischer Inhalt |
Wenn Sie Datenbankverbindungen auf Ihrer Website konfigurieren, können Sie das REST- oder GraphQL-Suffix der /data-api/* Route konfigurieren. Das /data-api Präfix ist eine Konvention statischer Web Apps und kann nicht geändert werden.
Konfiguration
Es gibt zwei Schritte zum Konfigurieren einer Datenbankverbindung in Static Web Apps. Sie müssen Ihre Datenbank mit Ihrer statischen Web-App im Azure-Portal verbinden und die Konfigurationsdatei für Datenbankverbindungen aktualisieren.
Weitere Details finden Sie unter Datenbankverbindungskonfiguration in Azure Static Web Apps .
Lokale Entwicklung
Die Azure Static Web Apps CLI (SWA CLI) umfasst Unterstützung für das Arbeiten mit Datenbankverbindungen während der lokalen Entwicklung.
Die CLI aktiviert den lokalen /data-api Endpunkt und leitet Anfragen vom Port 4280 an den entsprechenden Port für den Datenbankzugriff weiter.
Hier ist ein Beispielbefehl, der die SWA CLI mit einer Datenbankverbindung startet:
swa start ./src --data-api-location swa-db-connections
Dieser Befehl startet die SWA CLI im src-Verzeichnis . Die --data-api-location Option weist die CLI an, dass ein Ordner mit dem Namen "swa-db-connections " die staticwebapp.database.config.json Datei enthält.
Hinweis
Wenn Sie in der Entwicklung eine Verbindungszeichenfolge zum Authentifizieren verwenden, verwenden Sie die env() Funktion, um eine Verbindungszeichenfolge aus einer Umgebungsvariable zu lesen. Die an die env Funktion übergebene Zeichenfolge muss von Anführungszeichen umgeben sein.
Rollenbasierte Sicherheit
Wenn Sie eine Entität in der Datei staticwebapp.database.config.json definieren, können Sie eine Liste der Rollen angeben, die erforderlich sind, um auf einen Endpunkt der Entität zuzugreifen.
Das folgende Konfigurationsfragment erfordert die Administratorrolle, um auf alle Aktionen (create, read, , updatedelete) für die Orders-Entität zuzugreifen.
{
...
"entities": {
"Orders": {
"source": "dbo.Orders",
"permissions": [
{
"actions": ["*"],
"role": "admin"
}
]
}
}
...
}
Wenn Sie Aufrufe an einen Endpunkt tätigen, der eine Rolle erfordert, sind die folgenden Bedingungen erforderlich:
Der aktuelle Benutzer muss authentifiziert werden.
Der aktuelle Benutzer muss Mitglied der erforderlichen Rolle sein.
Die REST- oder GraphQL-Anforderung muss einen Header mit dem Schlüssel
X-MS-API-ROLEund einem Wert des Rollennamens enthalten, der den in den Entitätskonfigurationsregeln aufgeführten Wert entspricht.Der folgende Codeausschnitt zeigt beispielsweise, wie die Administratorrolle in einem Anforderungsheader übergeben wird.
{ method: "POST", headers: { "Content-Type": "application/json", "X-MS-API-ROLE": "admin" }, body: JSON.stringify(requestPayload) }
Constraints
- Auf Datenbanken muss über die Infrastruktur von Azure zugegriffen werden kann.
- Während der öffentlichen Vorschau skalieren Datenbankverbindungen von 0 bis 1 Datenbankmitarbeiter.