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:
Az aktuális felhasználót hitelesíteni kell.
Az aktuális felhasználónak a szükséges szerepkör tagjának kell lennie.
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.