Udostępnij za pośrednictwem


Połączenie do bazy danych za pomocą usługi Azure Static Web Apps (wersja zapoznawcza)

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 opis
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.
Operacje oparte na pełnej operacji 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łączenie ions skaluj 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. --data-api-location Użyj opcji do obsługi żądań do interfejsów API danych w środowisku deweloperskich, 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.

Nazwisko Pisz Opis REST GraphQL
Azure Cosmos DB Standardowa Globalnie rozproszona platforma baz danych dla baz danych NoSQL i relacyjnych baz danych w dowolnej skali.

Oprócz standardowej konfiguracjigql plik schematu jest wymagany dla punktów końcowych graphQL.
Azure SQL Standardowa 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) Pojedynczy 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ń:

  • Connection string
  • 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 opis
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ń bazy danych w witrynie internetowej można skonfigurować sufiks /data-api/* REST lub GraphQL trasy. Prefiks /data-api jest konwencją usługi Static Web Apps i nie można jej zmienić.

Konfigurowanie

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 .

Programowanie lokalne

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, a serwery proxy żądają z portu 4280 do odpowiedniego portu w celu uzyskania dostępu do bazy danych.

Oto przykładowe polecenie, które uruchamia interfejs wiersza polecenia swa z połączeniem bazy danych:

swa start ./src --data-api-location swa-db-connections

To polecenie uruchamia interfejs wiersza polecenia swa 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

W programowania, jeśli używasz parametry połączenia do uwierzytelniania, użyj env() funkcji , aby odczytać parametry 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" 
      }
    ]
 }
}
...
}

Podczas wykonywania wywołań do punktu końcowego wymagającego roli wymagane są następujące warunki:

  1. Bieżący użytkownik musi być uwierzytelniony.

  2. Bieżący użytkownik musi być członkiem wymaganej roli.

  3. Żądanie REST lub GraphQL musi zawierać nagłówek z kluczem X-MS-API-ROLE i 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)
    }
    

Ograniczenia

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

Następne kroki