Sdílet prostřednictvím


Připojení k databázi pomocí Azure Static Web Apps (Preview)

Důležité

Oznámení o vyřazení: Databázová připojení pro Static Web Apps končí 30. listopadu 2025. Migrujte teď, abyste se vyhnuli přerušení.

Funkce připojení k databázi Azure Static Web Apps umožňuje přístup k databázi ze statické webové aplikace bez psaní vlastního kódu na straně serveru.

Jakmile vytvoříte připojení mezi webovou aplikací a databází, můžete pracovat s daty s plnou podporou operací CRUD, integrovaných autorizací a relací.

Azure Static Web Apps na základě tvůrce rozhraní Data API přijímá požadavky REST a GraphQL a převádí je na databázové dotazy.

Mezi funkce podporované databázovými připojeními patří:

Vlastnost Description
Integrované zabezpečení Integrovaná integrace s modelem zabezpečení ověřování a autorizace Azure Static Web Apps Pro koncové body rozhraní API je k dispozici stejné zabezpečení na základě role, které se používá k zabezpečení tras.
Úplné operace založené na CRUD Příklady manipulace s daty v aplikaci najdete v kurzech pro Azure Cosmos DB, Azure SQL, MySQL nebo PostgreSQL .
Podporuje SQL a NoSQL. Relační a dokumentové databáze můžete použít jako databázi vaší aplikace.
Architektura bez serveru Připojení se škáluje od 0 do 1 pracovníka (ve verzi Preview).
Relace databáze Podporováno pouze prostřednictvím koncového bodu GraphQL.
Podpora rozhraní příkazového řádku Vyvíjejte místně pomocí rozhraní příkazového řádku Static Web Apps. --data-api-location Tuto možnost použijte ke zpracování požadavků na datová rozhraní API ve vývoji stejně jako v cloudu.

Podporované databáze

Následující tabulka ukazuje podporu různých relačních databází a databází NoSQL.

Název Typ Description REST GraphQL
Azure Cosmos DB Standard Globálně distribuovaná databázová platforma pro noSQL i relační databáze libovolného škálování.

Kromě standardní konfiguracegql se pro koncové body GraphQL vyžaduje soubor schématu.
Azure SQL Standard Řada spravovaných, zabezpečených a inteligentních produktů, které používají databázový stroj SQL Serveru v cloudu Azure.
Azure Database for MySQL Flex Relační databázová služba v cloudu Microsoftu založená na MySQL Community Edition
Azure Database for PostgreSQL Flex Plně spravovaná databáze PostgreSQL jako služba, která zpracovává klíčové úlohy s předvídatelným výkonem a dynamickou škálovatelností.
Azure Database for PostgreSQL (samostatný) Single Plně spravovaná databáze PostgreSQL.

Pro přístup k databázi můžete použít následující typy připojení:

  • Připojovací řetězec
  • Spravovaná identita přiřazená uživatelem
  • Spravovaná identita přiřazená systémem

Umístění koncového bodu

Přístup k datovým koncovým bodům je k dispozici mimo /data-api cestu.

Následující tabulka ukazuje, jak požadavky směrují do různých částí statické webové aplikace:

Cesta Description
example.com/api/* Funkce rozhraní API
example.com/data-api/* Koncové body připojení k databázi, které podporují požadavky REST a GraphQL.
example.com/* Statický obsah

Při konfiguraci databázových připojení na vašem webu můžete nakonfigurovat sufix trasy /data-api/* pro REST nebo GraphQL. Předpona /data-api je konvence statických webových aplikací a nedá se změnit.

Konfigurace

Konfigurace připojení k databázi ve službě Static Web Apps zahrnuje dva kroky. Databázi musíte připojit ke statické webové aplikaci na webu Azure Portal a aktualizovat konfigurační soubor připojení k databázi.

Další podrobnosti najdete v tématu Konfigurace připojení k databázi ve službě Azure Static Web Apps .

Místní vývoj

Rozhraní příkazového řádku Azure Static Web Apps (SWA CLI) zahrnuje podporu pro práci s připojeními k databázi během místního vývoje.

Rozhraní příkazového řádku aktivuje místní koncový bod /data-api a směruje požadavky z portu 4280 na příslušný port pro přístup k databázi.

Tady je ukázkový příkaz, který spustí rozhraní příkazového řádku SWA s připojením k databázi:

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

Tento příkaz spustí rozhraní příkazového řádku SWA v adresáři src . Možnost --data-api-location sděluje CLI, že složka swa-db-connections obsahuje soubor staticwebapp.database.config.json.

Poznámka:

Pokud při vývoji použijete k ověření připojovací řetězec, použijte funkci env() ke čtení připojovacího řetězce z proměnné prostředí. Řetězec předaný env funkci musí být obklopen uvozovkami.

Zabezpečení na základě rolí

Když definujete entitu v souboru staticwebapp.database.config.json , můžete zadat seznam rolí potřebných pro přístup ke koncovému bodu entity.

Následující fragment konfigurace vyžaduje, aby role správce přistupovala ke všem akcím (create, read, update, delete) na entitu orders.

{
...
"entities": { 
  "Orders": { 
    "source": "dbo.Orders", 
    "permissions": [ 
      { 
        "actions": ["*"], 
        "role": "admin" 
      }
    ]
 }
}
...
}

Při volání koncového bodu, který vyžaduje roli, jsou vyžadovány následující podmínky:

  1. Aktuální uživatel musí být ověřený.

  2. Aktuální uživatel musí být členem požadované role.

  3. Požadavek REST nebo GraphQL musí obsahovat hlavičku s klíčem X-MS-API-ROLE a hodnotou názvu role odpovídající tomu, co je uvedeno v pravidlech konfigurace entity.

    Například následující fragment kódu ukazuje, jak předat roli správce v hlavičce požadavku.

    {
      method: "POST",
      headers: { 
        "Content-Type": "application/json",
        "X-MS-API-ROLE": "admin"
      },
      body: JSON.stringify(requestPayload)
    }
    

Constraints

  • Databáze musí být přístupné z infrastruktury Azure.
  • Ve verzi Public Preview se připojení k databázi škáluje od 0 do 1 databázového pracovníka.

Další kroky