Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Połączenia bazy danych usługi Azure Static Web Apps działają z różnymi bazami danych platformy Azure.
Podczas łączenia bazy danych ze statyczną aplikacją internetową należy skonfigurować zaporę bazy danych tak, aby akceptowała dostęp sieciowy z procesów roboczych usługi Static Web Apps, zezwalając na dostęp sieciowy z zasobów platformy Azure. Zezwalanie na określone adresy IP usługi Static Web Apps nie jest obsługiwane.
Jeśli używasz typu uwierzytelniania tożsamości zarządzanej, musisz skonfigurować profil tożsamości zarządzanej statycznej aplikacji internetowej w celu uzyskania dostępu do bazy danych.
Ta tabela zawiera szczegółowe informacje o konfiguracji zapory i tożsamości zarządzanej dla bazy danych.
| Imię i nazwisko | Typ | Zapora sieciowa | Tożsamość zarządzana |
|---|---|---|---|
| Azure Cosmos DB | Standard | Skonfiguruj zaporę | Skonfiguruj tożsamość zarządzaną |
| Azure SQL | Standard | Skonfiguruj zaporę | Skonfiguruj tożsamość zarządzaną |
| Azure Database for MySQL | Elastyczność | Skonfiguruj zaporę | Nie jest obsługiwane |
| Azure Database for PostgreSQL | Elastyczność | Konfiguracja zapory | Nieobsługiwany |
| Azure Database for PostgreSQL (single) | Pojedynczy | Skonfiguruj zaporę | Skonfiguruj tożsamość zarządzaną |
Konfiguracja
Należy zdefiniować zachowanie w czasie wykonywania połączenia bazy danych w pliku staticwebapp.database.config.json. Przed połączeniem bazy danych ze statyczną aplikacją internetową należy utworzyć ten plik w repozytorium. Zgodnie z konwencją ten plik istnieje w folderze swa-db-connections w katalogu głównym repozytorium, ale możesz przenieść go, jeśli chcesz.
Celem pliku konfiguracji jest:
- Mapuj ścieżki z punktu końcowego
/data-apido tabel lub encji bazy danych - Udostępnianie punktów końcowych REST lub GraphQL (lub obu tych punktów)
- Definiuj reguły zabezpieczeń encji
- Kontrolowanie ustawień konfiguracji programistycznej
Jeśli używasz usługi Azure Cosmos DB z językiem GraphQL, musisz również podać gqlplik schematu.
Uwaga
Połączenia bazy danych usługi Static Web Apps wymagają folderu zawierającego pliki konfiguracji. Ten katalog musi zawierać plik konfiguracji staticwebapp.database.config.json dla wszystkich typów baz danych. W przypadku baz danych Cosmos DB for NoSQL wymagany jest również plik schematu staticwebapp.database.schema.gql.
Zgodnie z konwencją ten folder ma nazwę swa-db-connections i znajduje się w katalogu głównym repozytorium. Tę konwencję można nadpisać za pomocą folderu custom-configuration-folder.
Przykładowy plik konfiguracji
Poniższy przykładowy plik konfiguracji przedstawia sposób nawiązywania połączenia z bazą danych Azure SQL Database i uwidaczniania punktów końcowych REST i GraphQL. Aby uzyskać szczegółowe informacje na temat pliku konfiguracji i obsługiwanych przez niego funkcji, zapoznaj się z dokumentacją narzędzia Data API Builder.
{
"$schema": "https://github.com/Azure/data-api-builder/releases/latest/download/dab.draft.schema.json",
"data-source": {
"database-type": "mssql",
"options": {
"set-session-context": false
},
"connection-string": "@env('DATABASE_CONNECTION_STRING')"
},
"runtime": {
"rest": {
"enabled": true,
"path": "/rest"
},
"graphql": {
"allow-introspection": true,
"enabled": true,
"path": "/graphql"
},
"host": {
"mode": "production",
"cors": {
"origins": ["http://localhost:4280"],
"allow-credentials": false
},
"authentication": {
"provider": "StaticWebApps"
}
}
},
"entities": {
"Person": {
"source": "dbo.MyTestPersonTable",
"permissions": [
{
"actions": ["create", "read", "update", "delete"],
"role": "anonymous"
}
]
}
}
}
| Właściwość | Opis |
|---|---|
$schema |
Wersja konstruktora interfejsu API bazy danych używana przez usługę Azure Static Web Apps do interpretowania pliku konfiguracji. |
data-source |
Ustawienia konfiguracji specyficzne dla docelowej bazy danych. Właściwość database-type akceptuje mssql, postgresql, cosmosdb_nosql lub mysql.Parametry połączenia są zastępowane podczas wdrażania, gdy baza danych jest połączona z zasobem usługi Static Web Apps. Podczas pracy w lokalnym środowisku deweloperskim parametry połączenia zdefiniowane w pliku konfiguracji są używane do nawiązywania połączenia z bazą danych. |
runtime |
Sekcja definiująca udostępnione endpointy. Właściwości rest i graphql kontrolują fragment adresu URL używany do uzyskiwania dostępu do odpowiednich protokołów API. Sekcja host konfiguracji definiuje ustawienia specyficzne dla środowiska deweloperskiego. Upewnij się, że tablica origins zawiera adres localhost i port. Tryb host.mode jest nadpisywany wartością production, gdy baza danych jest połączona z zasobem usługi Static Web Apps. |
entities |
Sekcja, która mapuje ścieżkę adresu URL na encje i tabele bazy danych. Te same reguły uwierzytelniania oparte na rolach używane do zabezpieczania ścieżek również zabezpieczają jednostki bazy danych i mogą służyć do definiowania uprawnień dla każdej jednostki. Obiekt encji określa również relacje między encjami. |
Wygeneruj plik konfiguracji
Narzędzie Static Web Apps CLI umożliwia wygenerowanie szkieletu pliku konfiguracji.
Ważne
Aby zwiększyć bezpieczeństwo wdrożeń z interfejsu Static Web Apps CLI, wprowadzono zmianę powodującą niezgodność, która wymaga uaktualnienia do najnowszej wersji (2.0.2) interfejsu wiersza polecenia usługi Static Web Apps do 15 stycznia 2025 r.
Użyj swa db init --database-type <YOUR_DATABASE_TYPE>, aby wygenerować plik konfiguracji. Domyślnie interfejs wiersza polecenia tworzy nowy staticwebapp.database.config.json w folderze o nazwie swa-db-connections.
Obsługiwane typy baz danych obejmują:
mssqlpostgresqlcosmosdb_nosqlmysql
Katalog konfiguracji niestandardowej
Domyślną nazwą folderu dla pliku staticwebapp.database.config.json jest swa-db-connections. Jeśli chcesz użyć innego folderu, musisz zaktualizować plik przepływu pracy, aby poinformować środowisko uruchomieniowe statycznych aplikacji internetowych, gdzie można znaleźć plik konfiguracji. Właściwość data_api_location umożliwia zdefiniowanie lokalizacji folderu konfiguracji.
Uwaga
Folder zawierający plik staticwebapp.database.config.json musi znajdować się w katalogu głównym repozytorium statycznych aplikacji internetowych.
Poniższy kod pokazuje, jak używać folderu o nazwie db-config jako folderu dla pliku konfiguracji bazy danych.
app_location: "/src"
api_location: "api"
output_location: "/dist"
data_api_location: "db-config" # Folder holding the staticwebapp.database.config.json file
Konfigurowanie łączności z bazą danych
Usługa Azure Static Web Apps musi mieć dostęp sieciowy do bazy danych, aby połączenia z bazą danych działały. Ponadto aby używać bazy danych platformy Azure do programowania lokalnego, należy skonfigurować bazę danych tak, aby zezwalała na żądania z własnego adresu IP. Poniżej przedstawiono ogólne kroki, które mają zastosowanie do wszystkich baz danych. Aby uzyskać szczegółowe instrukcje dotyczące typu bazy danych, zapoznaj się z powyższymi linkami.
- Przejdź do bazy danych w witrynie Azure Portal.
- Przejdź do karty Sieć.
- W sekcji Reguły zapory wybierz pozycję Dodaj adres IPv4 klienta. Ten krok gwarantuje, że możesz użyć tej bazy danych na potrzeby lokalnego środowiska deweloperskiego.
- Zaznacz pole wyboru Zezwalaj usługom i zasobom platformy Azure na dostęp do tego serwera. Ten krok gwarantuje, że wdrożony zasób usługi Static Web Apps może uzyskać dostęp do bazy danych.
- Wybierz pozycję Zapisz.
Połącz bazę danych
Połączenie bazy danych ze statyczną aplikacją internetową powoduje nawiązanie połączenia produkcyjnego między witryną internetową a bazą danych po opublikowaniu na platformie Azure.
Otwórz statyczną aplikację internetową w witrynie Azure Portal.
W sekcji Ustawienia wybierz pozycję Połączenie z bazą danych.
W sekcji Produkcja wybierz link Połącz istniejącą bazę danych.
W oknie Połącz istniejącą bazę danych wprowadź następujące wartości:
Właściwość Wartość Typ bazy danych Wybierz typ bazy danych z listy rozwijanej. Subskrypcja Wybierz subskrypcję platformy Azure z listy rozwijanej. Nazwa zasobu Wybierz nazwę serwera bazy danych, na którym znajduje się żądana baza danych. Nazwa bazy danych Wybierz nazwę bazy danych, którą chcesz połączyć ze statyczną aplikacją internetową. Typ uwierzytelniania Wybierz typ połączenia wymagany do nawiązania połączenia z bazą danych.
Powiązane treści
Dodaj bazę danych do statycznej aplikacji internetowej przy użyciu jednej z następujących baz danych:
Ponadto możesz dowiedzieć się, jak używać konstruktora interfejsu API danych z usługą Azure Static Web Apps.