Udostępnij za pośrednictwem


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 mssqlwartości , , postgresql, cosmosdb_nosqllub 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.

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.

  1. Otwórz statyczną aplikację internetową w witrynie Azure Portal.

  2. W sekcji Ustawienia wybierz pozycję Połączenie z bazą danych.

  3. W sekcji Produkcja wybierz link Połącz istniejącą bazę danych.

  4. 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.

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.