Konfigurace připojení k databázi ve službě Azure Static Web Apps (Preview)
Připojení databáze Azure Static Web Apps fungují s různými databázemi Azure.
Při připojování databáze ke statické webové aplikaci je potřeba nakonfigurovat bránu firewall databáze tak, aby přijímala přístup k síti z pracovních procesů Static Web Apps tím, že povolíte přístup k síti z prostředků Azure. Povolení konkrétních IP adres statických webových aplikací se nepodporuje.
Pokud používáte typ ověřování spravované identity, musíte pro přístup k databázi nakonfigurovat profil spravované identity vaší statické webové aplikace.
V této tabulce najdete podrobnosti o konfiguraci brány firewall a spravované identity pro vaši databázi.
Name | Type | Brána firewall | Spravovaná identita |
---|---|---|---|
Azure Cosmos DB | Standard | Konfigurace brány firewall | Konfigurace spravované identity |
Azure SQL | Standard | Konfigurace brány firewall | Konfigurace spravované identity |
Azure Database for MySQL | Ohýbat | Konfigurace brány firewall | Nepodporováno |
Azure Database for PostgreSQL | Ohýbat | Konfigurace brány firewall | Nepodporováno |
Azure Database for PostgreSQL (jeden) | Jeden | Konfigurace brány firewall | Konfigurace spravované identity |
Konfigurace
V souboru definujete chování modulu runtime připojení staticwebapp.database.config.json
k databázi. Než propojíte databázi se statickou webovou aplikací, musíte tento soubor vytvořit v úložišti. Podle konvence tento soubor existuje ve složce swa-db-connections v kořenovém adresáři úložiště, ale pokud chcete, můžete ho přemístit .
Účelem konfiguračního souboru je:
- Mapování cest mimo
/data-api
koncový bod k databázovým tabulkám nebo entitám - Zveřejnění koncových bodů REST nebo GraphQL (nebo obojí)
- Definování pravidel zabezpečení entit
- Řízení nastavení konfigurace vývoje
Pokud používáte Službu Azure Cosmos DB s GraphQL, musíte také zadat soubor schématu.gql
Poznámka:
Připojení databáze Static Web Apps vyžadují složku obsahující konfigurační soubory. Tato složka musí obsahovat konfigurační soubor staticwebapp.database.config.json pro všechny typy databází. Pro databáze Cosmos DB for NoSQL se vyžaduje také soubor schématu staticwebapp.database.schema.gql .
Podle konvence se tato složka jmenuje swa-db-connections a umístí se do kořenového adresáře úložiště. Tuto konvenci je možné přepsat pomocí vlastní složky konfigurace.
Ukázkový konfigurační soubor
Následující ukázkový konfigurační soubor ukazuje, jak se připojit k databázi Azure SQL a vystavit koncové body REST i GraphQL. Úplné podrobnosti o konfiguračním souboru a jeho podporovaných funkcích najdete v dokumentaci ke službě Data API Builder.
{
"$schema": "https://github.com/Azure/data-api-builder/releases/latest/download/dab.draft.schema.json",
"data-source": {
"database-type": "mssql",
"options": {
"set-session-context": false
},
"connection-string": "@env('DATABASE_CONNECTION_STRING')"
},
"runtime": {
"rest": {
"enabled": true,
"path": "/rest"
},
"graphql": {
"allow-introspection": true,
"enabled": true,
"path": "/graphql"
},
"host": {
"mode": "production",
"cors": {
"origins": ["http://localhost:4280"],
"allow-credentials": false
},
"authentication": {
"provider": "StaticWebApps"
}
}
},
"entities": {
"Person": {
"source": "dbo.MyTestPersonTable",
"permissions": [
{
"actions": ["create", "read", "update", "delete"],
"role": "anonymous"
}
]
}
}
}
Vlastnost | Popis |
---|---|
$schema |
Verze tvůrce rozhraní API pro databáze, kterou služba Azure Static Web Apps používá k interpretaci konfiguračního souboru. |
data-source |
Nastavení konfigurace specifické pro cílovou databázi. Vlastnost database-type přijímá , mssql postgresql , cosmosdb_nosql , nebo mysql .Připojovací řetězec se při nasazení přepíše, když je databáze připojená k vašemu prostředku Static Web Apps. Během místního vývoje se připojovací řetězec definované v konfiguračním souboru používá k připojení k databázi. |
runtime |
Oddíl, který definuje vystavené koncové body. Fragment rest adresy URL použitý pro přístup k příslušnému protokolu rozhraní API a graphql vlastnosti řídí. Oddíl host konfigurace definuje nastavení specifická pro vaše vývojové prostředí. Ujistěte se, že pole origins obsahuje vaši adresu místního hostitele a port. Režim host.mode se přepíše, když production je databáze připojená k vašemu prostředku Static Web Apps. |
entities |
Oddíl, který mapuje cestu URL k databázovým entitě a tabulkám. Stejná pravidla ověřování na základě role používaná k zabezpečení cest také zabezpečují databázové entity a lze je použít k definování oprávnění pro každou entitu. Objekt entity také určuje vztahy mezi entitami. |
Generování konfiguračního souboru
Rozhraní příkazového řádku Static Web Apps umožňuje vygenerovat zástupný soubor konfigurace.
Důležité
Kvůli zlepšení zabezpečení nasazení z rozhraní příkazového řádku Static Web Apps jsme zavedli zásadní změnu, která vyžaduje upgrade na nejnovější verzi rozhraní příkazového řádku Static Web Apps (2.0.2) od 15. ledna 2025.
swa db init --database-type <YOUR_DATABASE_TYPE>
Použijte k vygenerování konfiguračního souboru. Rozhraní příkazového řádku ve výchozím nastavení vytvoří novou staticwebapp.database.config.json ve složce s názvem swa-db-connections.
Mezi podporované typy databází patří:
mssql
postgresql
cosmosdb_nosql
mysql
Vlastní konfigurační složka
Výchozí název složky pro soubor staticwebapp.database.config.json je swa-db-connections. Pokud chcete použít jinou složku, musíte soubor pracovního postupu aktualizovat tak, aby informovat modul runtime statických webových aplikací, kam chcete konfigurační soubor najít. Tato data_api_location
vlastnost umožňuje definovat umístění vaší konfigurační složky.
Poznámka:
Složka, která obsahuje soubor staticwebapp.database.config.json , musí být v kořenovém adresáři úložiště statických webových aplikací.
Následující kód ukazuje, jak použít složku s názvem db-config pro konfigurační soubor databáze.
app_location: "/src"
api_location: "api"
output_location: "/dist"
data_api_location: "db-config" # Folder holding the staticwebapp.database.config.json file
Konfigurace připojení k databázi
Azure Static Web Apps musí mít síťový přístup k vaší databázi, aby připojení k databázi fungovala. Pokud chcete navíc použít databázi Azure pro místní vývoj, musíte databázi nakonfigurovat tak, aby umožňovala požadavky z vaší vlastní IP adresy. Následují obecné kroky, které platí pro všechny databáze. Konkrétní kroky pro váš typ databáze najdete na výše uvedených odkazech.
- Přejděte do databáze na webu Azure Portal.
- Přejděte na kartu Sítě.
- V části Pravidla brány firewall vyberte Přidat adresu IPv4 klienta. Tento krok zajistí, že tuto databázi můžete použít pro místní vývoj.
- Zaškrtněte políčko Povolit službám a prostředkům Azure přístup k tomuto serveru. Tento krok zajistí, že váš nasazený prostředek Static Web Apps bude mít přístup k vaší databázi.
- Zvolte Uložit.
Připojení databáze
Propojení databáze se statickou webovou aplikací vytvoří produkční připojení mezi webem a databází při publikování do Azure.
Otevřete statickou webovou aplikaci na webu Azure Portal.
V části Nastavení vyberte Připojení k databázi.
V části Produkční vyberte propojení existující databáze .
V okně Propojit existující databázi zadejte následující hodnoty:
Vlastnost Hodnota Typ databáze V rozevíracím seznamu vyberte typ databáze. Předplatné V rozevíracím seznamu vyberte své předplatné Azure. Název prostředku Vyberte název databázového serveru, který má požadovanou databázi. Název databáze Vyberte název databáze, kterou chcete propojit se statickou webovou aplikací. Typ ověřování Vyberte typ připojení vyžadovaný pro připojení k databázi.
Související obsah
Přidejte do statické webové aplikace databázi pomocí jedné z následujících databází:
Kromě toho se dozvíte, jak používat Tvůrce rozhraní DATA API se službou Azure Static Web Apps.