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í konfigurace gql 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
) delete
u 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:
Aktuální uživatel musí být ověřený.
Aktuální uživatel musí být členem požadované role.
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.