Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Powiadomienie o wycofaniu: Połączenia bazy danych dla usługi Static Web Apps kończą się 30 listopada 2025 r. Przeprowadź migrację teraz, aby uniknąć zakłóceń.
Funkcja połączenia bazy danych usługi Azure Static Web Apps umożliwia dostęp do bazy danych ze statycznej aplikacji internetowej bez konieczności pisania niestandardowego kodu po stronie serwera.
Po utworzeniu połączenia między aplikacją internetową a bazą danych można manipulować danymi przy użyciu pełnej obsługi operacji CRUD, wbudowanej autoryzacji i relacji.
Na podstawie konstruktora interfejsu API danych usługa Azure Static Web Apps pobiera żądania REST i GraphQL i konwertuje je na zapytania bazy danych.
Funkcje obsługiwane przez połączenia z bazą danych obejmują:
| Funkcja | Description |
|---|---|
| Zintegrowane zabezpieczenia | Wbudowana integracja z modelem zabezpieczeń uwierzytelniania i autoryzacji usługi Azure Static Web Apps. Te same zabezpieczenia oparte na rolach używane do zabezpieczania tras są dostępne dla punktów końcowych interfejsu API. |
| Pełne operacje oparte na CRUD | Zapoznaj się z samouczkami dotyczącymi usługi Azure Cosmos DB, Azure SQL, MySQL lub PostgreSQL , aby zapoznać się z przykładem sposobu manipulowania danymi w aplikacji. |
| Obsługuje bazy danych SQL i NoSQL | Możesz użyć relacyjnych i dokumentowych baz danych jako bazy danych aplikacji. |
| Architektura bezserwerowa | Połączenia są skalowane z zakresu od 0 do 1 procesu roboczego (w wersji zapoznawczej). |
| Relacje bazy danych | Obsługiwane tylko za pośrednictwem punktu końcowego GraphQL. |
| Obsługa interfejsu wiersza polecenia | Programowanie lokalnie za pomocą interfejsu wiersza polecenia usługi Static Web Apps. Użyj opcji --data-api-location do obsługi żądań do interfejsów API danych w środowisku deweloperskim, tak jak są one obsługiwane w chmurze. |
Obsługiwane bazy danych
W poniższej tabeli przedstawiono obsługę różnych relacyjnych i noSQL baz danych.
| Name | Typ | Description | REST | GraphQL |
|---|---|---|---|---|
| Azure Cosmos DB | Standard | Globalnie rozproszona platforma baz danych dla baz danych NoSQL i relacyjnych baz danych w dowolnej skali. Oprócz standardowej konfiguracji gql plik schematu jest wymagany dla punktów końcowych graphQL. |
✔ | |
| Azure SQL | Standard | Rodzina zarządzanych, bezpiecznych i inteligentnych produktów korzystających z aparatu bazy danych programu SQL Server w chmurze platformy Azure. | ✔ | ✔ |
| Azure Database for MySQL | Flex | Usługa relacyjnej bazy danych w chmurze firmy Microsoft oparta na programie MySQL Community Edition | ✔ | ✔ |
| Azure Database for PostgreSQL | Flex | W pełni zarządzana baza danych PostgreSQL jako usługa, która obsługuje obciążenia o znaczeniu krytycznym z przewidywalną wydajnością i dynamiczną skalowalnością. | ✔ | ✔ |
| Azure Database for PostgreSQL (pojedynczy) | Single | W pełni zarządzana baza danych PostgreSQL. | ✔ | ✔ |
Do uzyskiwania dostępu do bazy danych można użyć następujących typów połączeń:
- Łańcuch połączenia
- Tożsamość zarządzana przypisana przez użytkownika
- Tożsamość zarządzana przypisana przez system
Lokalizacja punktu końcowego
Dostęp do punktów końcowych danych jest dostępny poza ścieżką /data-api .
W poniższej tabeli przedstawiono sposób kierowania żądań do różnych części statycznej aplikacji internetowej:
| Ścieżka | Description |
|---|---|
example.com/api/* |
Funkcje interfejsu API |
example.com/data-api/* |
Punkty końcowe połączeń bazy danych, które obsługują żądania REST i GraphQL. |
example.com/* |
Zawartość statyczna |
Podczas konfigurowania połączeń baz danych w witrynie internetowej można skonfigurować sufiks ścieżki /data-api/* REST lub GraphQL. Prefiks /data-api jest konwencją usługi Static Web Apps i nie można jej zmienić.
Konfiguracja
Istnieją dwa kroki konfigurowania połączenia bazy danych w usłudze Static Web Apps. Musisz połączyć bazę danych ze statyczną aplikacją internetową w witrynie Azure Portal i zaktualizować plik konfiguracji połączeń bazy danych.
Aby uzyskać więcej szczegółów, zobacz Konfiguracja połączenia z bazą danych w usłudze Azure Static Web Apps .
Rozwój lokalny
Interfejs wiersza polecenia usługi Azure Static Web Apps (SWA CLI) obejmuje obsługę pracy z połączeniami bazy danych podczas programowania lokalnego.
Interfejs wiersza polecenia aktywuje lokalny /data-api punkt końcowy i przekierowuje żądania z portu 4280 do odpowiedniego portu w celu uzyskania dostępu do bazy danych.
Oto przykładowe polecenie, które uruchamia SWA CLI z połączeniem bazy danych.
swa start ./src --data-api-location swa-db-connections
To polecenie uruchamia SWA CLI w katalogu src. Opcja --data-api-location informuje interfejs wiersza polecenia, że folder o nazwie swa-db-connections przechowuje plik staticwebapp.database.config.json .
Uwaga / Notatka
W programowaniu, jeśli używasz ciągu połączenia do uwierzytelniania, użyj funkcji env(), aby odczytać ciąg połączenia ze zmiennej środowiskowej. Ciąg przekazany do env funkcji musi być otoczony cudzysłowami.
Zabezpieczenia oparte na rolach
Podczas definiowania jednostki w pliku staticwebapp.database.config.json można określić listę ról wymaganych do uzyskania dostępu do punktu końcowego jednostki.
Poniższy fragment konfiguracji wymaga roli administratora , aby uzyskać dostęp do wszystkich akcji (create, read, update, delete) w jednostce zamówienia .
{
...
"entities": {
"Orders": {
"source": "dbo.Orders",
"permissions": [
{
"actions": ["*"],
"role": "admin"
}
]
}
}
...
}
Gdy wykonujesz wywołania do endpointu wymagającego roli, wymagane są następujące warunki:
Bieżący użytkownik musi być uwierzytelniony.
Bieżący użytkownik musi być członkiem wymaganej roli.
Żądanie REST lub GraphQL musi zawierać nagłówek z kluczem
X-MS-API-ROLEi wartością nazwy roli pasującej do elementów wymienionych w regułach konfiguracji jednostki.Na przykład poniższy fragment kodu pokazuje, jak przekazać rolę administratora w nagłówku żądania.
{ method: "POST", headers: { "Content-Type": "application/json", "X-MS-API-ROLE": "admin" }, body: JSON.stringify(requestPayload) }
Constraints
- Bazy danych muszą być dostępne dla infrastruktury platformy Azure.
- W publicznej wersji zapoznawczej połączenia bazy danych są skalowane z zakresu od 0 do 1 procesu roboczego bazy danych.