Konfiguracja połączenia bazy danych w usłudze Azure Static Web Apps (wersja zapoznawcza)
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.
Nazwisko | Typ | Firewall | Tożsamość zarządzana |
---|---|---|---|
Azure Cosmos DB | Standardowa | Konfigurowanie zapory | Konfigurowanie tożsamości zarządzanej |
Azure SQL | Standardowa | Konfigurowanie zapory | Konfigurowanie tożsamości zarządzanej |
Azure Database for MySQL | Flex | Konfigurowanie zapory | Nieobsługiwane |
Azure Database for PostgreSQL | Flex | Konfigurowanie zapory | Nieobsługiwane |
Azure Database for PostgreSQL (pojedynczy) | Pojedynczy | Konfigurowanie zapory | Konfigurowanie tożsamości zarządzanej |
Konfigurowanie
Należy zdefiniować zachowanie środowiska uruchomieniowego połączenia bazy danych w staticwebapp.database.config.json
pliku. 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:
- Mapowanie
/data-api
ścieżek poza punkt końcowy do tabel lub jednostek bazy danych - Uwidacznianie punktów końcowych REST lub GraphQL (lub obu tych punktów)
- Definiowanie reguł zabezpieczeń jednostki
- Kontrolowanie ustawień konfiguracji programowania
Jeśli używasz usługi Azure Cosmos DB z językiem GraphQL, musisz również podać plik schematu.gql
Uwaga
Połączenia bazy danych usługi Static Web Apps wymagają folderu zawierającego pliki konfiguracji. Ten folder 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 zastąpić 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 jego obsługiwanych 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ści | 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 wartości , , postgresql , cosmosdb_nosql lub mysql .Parametry połączenia jest zastępowany podczas wdrażania, gdy baza danych jest połączona z zasobem usługi Static Web Apps. Podczas programowania lokalnego parametry połączenia zdefiniowany w pliku konfiguracji jest używany do nawiązywania połączenia z bazą danych. |
runtime |
Sekcja definiująca uwidocznione punkty końcowe. Właściwości rest i graphql kontrolują fragment adresu URL używany do uzyskiwania dostępu do odpowiedniego protokołu interfejsu API. Sekcja host konfiguracji definiuje ustawienia specyficzne dla środowiska deweloperskiego. Upewnij się, że tablica origins zawiera adres localhost i port. Tryb host.mode jest zastępowany production , gdy baza danych jest połączona z zasobem usługi Static Web Apps. |
entities |
Sekcja, która mapuje ścieżkę adresu URL na jednostki 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 jednostek określa również relacje między jednostkami. |
Generowanie pliku konfiguracji
Interfejs wiersza polecenia usługi Static Web Apps umożliwia wygenerowanie wycinku pliku konfiguracji.
Ważne
Aby zwiększyć bezpieczeństwo wdrożeń z interfejsu wiersza polecenia usługi Static Web Apps, 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 polecenia , 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ą:
mssql
postgresql
cosmosdb_nosql
mysql
Folder 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 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 programowania.
- 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.
Łączenie bazy danych
Łą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ści 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, który ma żądaną bazę 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ązana zawartość
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.