Configuratie van databaseverbinding in Azure Static Web Apps (preview)
Databaseverbindingen van Azure Static Web Apps werken met verschillende Azure-databases.
Wanneer u een database verbindt met uw statische web-app, moet u de firewall van uw database configureren om netwerktoegang van de Static Web Apps-werknemers te accepteren door netwerktoegang vanuit Azure-resources toe te staan. Het toestaan van specifieke STATIC Web Apps-IP-adressen wordt niet ondersteund.
Als u het verificatietype Beheerde identiteit gebruikt, moet u het beheerde identiteitsprofiel van uw statische web-app configureren voor toegang tot uw database.
Gebruik deze tabel voor meer informatie over de configuratie van firewall en beheerde identiteit voor uw database.
Name | Type | Firewall | Beheerde identiteit |
---|---|---|---|
Azure Cosmos DB | Standaard | Firewall configureren | Beheerde identiteit configureren |
Azure SQL | Standaard | Firewall configureren | Beheerde identiteit configureren |
Azure Database for MySQL | Buigen | Firewall configureren | Niet ondersteund |
Azure Database for PostgreSQL | Buigen | Firewall configureren | Niet ondersteund |
Azure Database for PostgreSQL (één) | Eén | Firewall configureren | Beheerde identiteit configureren |
Configuratie
U definieert het runtimegedrag van de databaseverbinding in het staticwebapp.database.config.json
bestand. Voordat u een database koppelt aan uw statische web-app, moet u dit bestand in uw opslagplaats maken. Dit bestand bestaat standaard in de map swa-db-connections in de hoofdmap van uw opslagplaats, maar u kunt het desgewenst verplaatsen .
Het doel van het configuratiebestand is het volgende:
- Paden van het
/data-api
eindpunt toewijzen aan uw databasetabellen of -entiteiten - REST- of GraphQL-eindpunten beschikbaar maken (of beide)
- Entiteitsbeveiligingsregels definiëren
- Configuratie-instellingen voor ontwikkeling beheren
Als u Azure Cosmos DB met GraphQL gebruikt, moet u ook een gql
schemabestand opgeven.
Notitie
Voor statische Web Apps-databaseverbindingen is een map met de configuratiebestanden vereist. Deze map moet het staticwebapp.database.config.json configuratiebestand voor alle databasetypen bevatten. Voor Cosmos DB for NoSQL-databases is ook een staticwebapp.database.schema.gql-schemabestand vereist.
Deze map heet standaard swa-db-connections en wordt in de hoofdmap van de opslagplaats geplaatst. Deze conventie kan worden overschreven met een aangepaste configuratiemap.
Voorbeeldconfiguratiebestand
In het volgende voorbeeldconfiguratiebestand ziet u hoe u verbinding maakt met een Azure SQL-database en hoe u zowel REST- als GraphQL-eindpunten beschikbaar maakt. Raadpleeg de documentatie van Data API Builder voor meer informatie over het configuratiebestand en de ondersteunde functies.
{
"$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"
}
]
}
}
}
Eigenschappen | Beschrijving |
---|---|
$schema |
De versie van de database-API-opbouwfunctie die door Azure Static Web Apps wordt gebruikt om het configuratiebestand te interpreteren. |
data-source |
Configuratie-instellingen die specifiek zijn voor de doeldatabase. De database-type eigenschap accepteertmssql , postgresql , of cosmosdb_nosql mysql .De verbindingsreeks wordt overschreven bij de implementatie wanneer een database is verbonden met uw Static Web Apps-resource. Tijdens de lokale ontwikkeling wordt de verbindingsreeks gedefinieerd in het configuratiebestand, gebruikt om verbinding te maken met de database. |
runtime |
Sectie waarin de weergegeven eindpunten worden gedefinieerd. De rest en graphql eigenschappen bepalen het URL-fragment dat wordt gebruikt voor toegang tot het respectieve API-protocol. In de host configuratiesectie worden instellingen gedefinieerd die specifiek zijn voor uw ontwikkelomgeving. Zorg ervoor dat de origins matrix uw localhost-adres en -poort bevat. De host.mode wordt overschreven production wanneer een database is verbonden met uw Static Web Apps-resource. |
entities |
Sectie waarmee HET URL-pad wordt toegewezen aan databaseentiteiten en -tabellen. Dezelfde op rollen gebaseerde verificatieregels die worden gebruikt om paden te beveiligen, beveiligen ook databaseentiteiten en kunnen worden gebruikt om machtigingen voor elke entiteit te definiëren. Het object entiteiten geeft ook de relaties tussen entiteiten aan. |
Configuratiebestand genereren
Met de Static Web Apps CLI kunt u een stub voor een configuratiebestand genereren.
Belangrijk
Om de beveiliging van implementaties van de Static Web Apps CLI te verbeteren, is er een belangrijke wijziging geïntroduceerd waarvoor u moet upgraden naar de nieuwste versie (2.0.2) van de Static Web Apps CLI op 15 januari 2025.
Gebruik het swa db init --database-type <YOUR_DATABASE_TYPE>
bestand om een configuratiebestand te genereren. De CLI maakt standaard een nieuwe staticwebapp.database.config.json in een map met de naam swa-db-connections.
Ondersteunde databasetypen zijn onder andere:
mssql
postgresql
cosmosdb_nosql
mysql
Aangepaste configuratiemap
De standaardmapnaam voor het staticwebapp.database.config.json-bestand is swa-db-connections. Als u een andere map wilt gebruiken, moet u uw werkstroombestand bijwerken om de runtime van statische web-apps te laten weten waar u het configuratiebestand kunt vinden. Met data_api_location
de eigenschap kunt u de locatie van uw configuratiemap definiëren.
Notitie
De map met het staticwebapp.database.config.json-bestand moet zich in de hoofdmap van de opslagplaats voor statische web-apps bevinden.
De volgende code laat zien hoe u een map met de naam db-config gebruikt voor het databaseconfiguratiebestand.
app_location: "/src"
api_location: "api"
output_location: "/dist"
data_api_location: "db-config" # Folder holding the staticwebapp.database.config.json file
Databaseconnectiviteit configureren
Azure Static Web Apps moet netwerktoegang tot uw database hebben om databaseverbindingen te laten werken. Als u een Azure-database wilt gebruiken voor lokale ontwikkeling, moet u uw database configureren om aanvragen van uw eigen IP-adres toe te staan. Hier volgen algemene stappen die van toepassing zijn op alle databases. Raadpleeg de bovenstaande koppelingen voor specifieke stappen voor uw databasetype.
- Ga naar uw database in Azure Portal.
- Ga naar het tabblad Netwerken.
- Selecteer in de sectie Firewallregels het IPv4-adres van de client toevoegen. Deze stap zorgt ervoor dat u deze database kunt gebruiken voor uw lokale ontwikkeling.
- Schakel het selectievakje Azure-services en -resources toegang tot deze server in. Deze stap zorgt ervoor dat uw geïmplementeerde Static Web Apps-resource toegang heeft tot uw database.
- Selecteer Opslaan.
Een database verbinden
Als u een database koppelt aan uw statische web-app, wordt de productieverbinding tussen uw website en database tot stand gebracht wanneer deze wordt gepubliceerd naar Azure.
Open uw statische web-app in Azure Portal.
Selecteer databaseverbinding in de sectie Instellingen.
Selecteer in de sectie Productie de koppeling bestaande databasekoppeling .
Voer in het venster Bestaande database koppelen de volgende waarden in:
Eigenschappen Weergegeven als Databasetype Selecteer uw databasetype in de vervolgkeuzelijst. Abonnement Selecteer uw Azure-abonnement in de vervolgkeuzelijst. Resourcenaam Selecteer de naam van de databaseserver met de gewenste database. Databasenaam Selecteer de naam van de database die u wilt koppelen aan uw statische web-app. Verificatietype Selecteer het verbindingstype dat is vereist om verbinding te maken met uw database.
Gerelateerde inhoud
Voeg een database toe aan uw statische web-app met behulp van een van de volgende databases:
Daarnaast vindt u meer informatie over het gebruik van de data-API-opbouwfunctie met Azure Static Web Apps.