Megosztás a következőn keresztül:


Csatlakozás adatbázisba az Azure Static Web Apps szolgáltatással (előzetes verzió)

Az Azure Static Web Apps adatbázis-kapcsolati funkciója lehetővé teszi, hogy egyéni kiszolgálóoldali kód írása nélkül hozzáférjen egy adatbázishoz a statikus webalkalmazásból.

Miután létrehozott egy kapcsolatot a webalkalmazás és az adatbázis között, a CRUD-műveletek, a beépített engedélyezés és a kapcsolatok teljes támogatásával kezelheti az adatokat.

A Data API builder alapján az Azure Static Web Apps REST- és GraphQL-kéréseket készít, és adatbázis-lekérdezésekké alakítja őket.

Az adatbázis-kapcsolatok által támogatott funkciók a következők:

Szolgáltatás Leírás
Integrált biztonság Beépített integráció az Azure Static Web Apps hitelesítési és engedélyezési biztonsági modelljével. Ugyanaz a szerepköralapú biztonság érhető el az API-végpontok esetében, mint az útvonalak biztonságossá tételéhez.
Teljes CRUD-alapú műveletek Az Azure Cosmos DB, az Azure SQL, a MySQL vagy a PostgreSQL oktatóanyagaiból megtudhatja, hogyan módosíthatja az adatokat az alkalmazásban.
Támogatja az SQL-t és a NoSQL-t Relációs és dokumentumadatbázisokat használhat az alkalmazás adatbázisaként.
Kiszolgáló nélküli architektúra Csatlakozás 0-tól 1 feldolgozóig skálázhatók (az előzetes verzióban).
Adatbázis-kapcsolatok Csak a GraphQL-végponton keresztül támogatott.
Parancssori felület támogatása Helyi fejlesztés a Static Web Apps parancssori felületével. Ezzel a beállítással ugyanúgy kezelheti a --data-api-location fejlesztés alatt lévő adat API-k kéréseit, mint a felhőben.

Támogatott adatbázisok

Az alábbi táblázat a különböző relációs és NoSQL-adatbázisok támogatását mutatja be.

Név Típus Leírás REST GraphQL
Azure Cosmos DB Standard Globálisan elosztott adatbázisplatform a NoSQL-hez és a bármilyen méretű relációs adatbázisokhoz.

A standard konfigurációgql mellett sémafájlra is szükség van a GraphQL-végpontokhoz.
Azure SQL Standard Felügyelt, biztonságos és intelligens termékek családja, amelyek az SQL Server adatbázismotort használják az Azure-felhőben.
Azure Database for MySQL Flex Relációsadatbázis-szolgáltatás a Microsoft-felhőben a MySQL Community Edition alapján
Azure Database for PostgreSQL Flex Teljes körűen felügyelt PostgreSQL-adatbázis szolgáltatásként, amely kiszámítható teljesítménnyel és dinamikus skálázhatósággal kezeli a kritikus fontosságú számítási feladatokat.
Azure Database for PostgreSQL (önálló) Egyszeres Teljes mértékben felügyelt PostgreSQL-adatbázis.

Az adatbázis-hozzáféréshez a következő kapcsolattípusokat használhatja:

  • Kapcsolati sztring
  • Felhasználó által hozzárendelt felügyelt identitás
  • Rendszer által hozzárendelt felügyelt identitás

Végpont helye

Az adatvégpontokhoz való hozzáférés az útvonalon kívül /data-api érhető el.

Az alábbi táblázat bemutatja, hogyan irányítja a kérelmeket egy statikus webalkalmazás különböző részeire:

Elérési út Leírás
example.com/api/* API-függvények
example.com/data-api/* A REST- és GraphQL-kéréseket támogató adatbázis-kapcsolati végpontok.
example.com/* Statikus tartalom

Amikor adatbázis-kapcsolatokat konfigurál a webhelyén, konfigurálhatja az útvonal REST- vagy GraphQL-utótagját /data-api/* . Az /data-api előtag a Static Web Apps konvenciója, és nem módosítható.

Konfiguráció

Az adatbázis-kapcsolat statikus webalkalmazásokban való konfigurálásának két lépése van. Csatlakoztatnia kell az adatbázist a statikus webalkalmazáshoz az Azure Portalon, és frissítenie kell az adatbázis-kapcsolatok konfigurációs fájlját.

További részletekért tekintse meg az Azure Static Web Apps adatbázis-kapcsolatkonfigurációját.

Helyi fejlesztés

Az Azure Static Web Apps CLI (SWA CLI) támogatja az adatbázis-kapcsolatok helyi fejlesztés során történő használatát.

A parancssori felület aktiválja a helyi /data-api végpontot, és a portról 4280 a megfelelő portra irányítja a kérelmeket az adatbázis-hozzáféréshez.

Íme egy példaparancs, amely adatbázis-kapcsolattal indítja el az SWA PARANCSSOR-t:

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

Ez a parancs elindítja az SWA PARANCSSOR-t az src könyvtárban. A --data-api-location beállítás azt jelzi a parancssori felületnek, hogy egy swa-db-connections nevű mappa tárolja a staticwebapp.database.config.json fájlt.

Feljegyzés

A fejlesztés során, ha egy kapcsolati sztring használ a hitelesítéshez, a env() függvény használatával beolvassa a kapcsolati sztring egy környezeti változóból. A függvénynek env átadott sztringet idézőjelekkel kell körülvenni.

Szerepköralapú biztonság

Amikor definiál egy entitást a staticwebapp.database.config.json fájlban, megadhatja az entitásvégpont eléréséhez szükséges szerepkörök listáját.

A következő konfigurációs töredék megköveteli, hogy a rendszergazdai szerepkör hozzáférjen a rendelési entitás összes műveletéhez (create, read, update, ) delete.

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

Ha egy szerepkört igénylő végpontra indít hívásokat, a következő feltételek szükségesek:

  1. Az aktuális felhasználót hitelesíteni kell.

  2. Az aktuális felhasználónak a szükséges szerepkör tagjának kell lennie.

  3. A REST- vagy GraphQL-kérelemnek tartalmaznia kell egy fejlécet az X-MS-API-ROLE entitáskonfigurációs szabályokban felsoroltaknak megfelelő kulcssal és a szerepkörnév értékével.

    Az alábbi kódrészlet például bemutatja, hogyan adhatja át a rendszergazdai szerepkört egy kérelemfejlécben.

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

Megszorítások

  • Az adatbázisoknak az Azure infrastruktúrája által elérhetőnek kell lenniük.
  • A nyilvános előzetes verzióban az adatbázis-kapcsolatok 0 és 1 adatbázis-feldolgozó között skálázhatók.

Következő lépések