Sdílet prostřednictvím


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

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ří:

Funkce Popis
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ího procesu (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.

Name Typ Popis 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 (jeden) Jeden Plně spravovaná databáze PostgreSQL.

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

  • Connection string
  • 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 Popis
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 připojení k databázi na webu můžete nakonfigurovat příponu /data-api/* REST nebo GraphQL trasy. 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í /data-api koncový bod a proxy 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 . Tato --data-api-location možnost říká rozhraní příkazového řádku, že složka s názvem 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 env() funkci ke čtení připojovací řetězec 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) deleteu entity 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)
    }
    

Omezení

  • 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ího procesu.

Další kroky