Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure Static Web Apps-databasanslutningar fungerar med olika Azure-databaser.
När du ansluter en databas till din statiska webbapp måste du konfigurera databasens brandvägg för att acceptera nätverksåtkomst från Static Web Apps-arbetarna genom att tillåta nätverksåtkomst från Azure-resurser. Det går inte att tillåta specifika IP-adresser för Static Web Apps.
Om du använder autentiseringstypen Hanterad identitet måste du konfigurera den statiska webbappens profil för hanterad identitet för att få åtkomst till databasen.
Använd den här tabellen om du vill ha mer information om konfiguration av brandvägg och Managed Identity för databasen.
| Namn | Typ | Brandvägg | Managed Identity |
|---|---|---|---|
| Azure Cosmos DB | Norm | Konfigurera brandväggen | Konfigurera hanterad identitet |
| Azure SQL | Norm | Konfigurera brandväggen | Konfigurera hanterad identitet |
| Azure Database for MySQL | Flex | Konfigurera brandväggen | Stöds inte |
| Azure-databas för PostgreSQL | Flex | Konfigurera brandväggen | Stöds inte |
| Azure Database for PostgreSQL (single server) | Enstaka | Konfigurera brandväggen | Konfigurera hanterad identitet |
Konfiguration
Du definierar körningsbeteendet för databasanslutningen i filen staticwebapp.database.config.json. Innan du länkar en databas till din statiska webbapp måste du skapa den här filen i ditt repository. Enligt konventionen finns den här filen i mappen swa-db-connections i roten av ditt repo, men du kan flytta den om du vill.
Syftet med konfigurationsfilen är att:
- Mappa sökvägar från
/data-api-endpointen till dina databastabeller eller entiteter - Exponera REST- eller GraphQL-slutpunkter (eller båda)
- Definiera entitetssäkerhetsregler
- Styrning av konfigurationsinställningar för utveckling
Om du använder Azure Cosmos DB med GraphQL måste du också ange en gql schemafil.
Obs!
Statiska Web Apps-databasanslutningar kräver en mapp som innehåller konfigurationsfilerna. Den här mappen måste innehålla konfigurationsfilen staticwebapp.database.config.json för alla databastyper. För Cosmos DB för NoSQL-databaser krävs också en staticwebapp.database.schema.gql-schemafil .
Enligt konventionen heter den här mappen swa-db-connections och placeras i roten på lagringsplatsen. Den här konventionen kan åsidosättas med en anpassad konfigurationsmapp.
Exempelkonfigurationsfil
Följande exempelkonfigurationsfil visar hur du ansluter till en Azure SQL-databas och exponerar både REST- och GraphQL-slutpunkter. Fullständig information om konfigurationsfilen och funktioner som filen stöder finns i Data API Builder-dokumentationen.
{
"$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"
}
]
}
}
}
| Fastighet | Beskrivning |
|---|---|
$schema |
Den version av Database API Builder som används av Azure Static Web Apps för att tolka konfigurationsfilen. |
data-source |
Konfigurationsinställningar som är specifika för måldatabasen. Egenskapen database-type accepterar mssql, postgresql, cosmosdb_nosqleller mysql.Anslutningssträng skrivs över vid distribution när en databas är ansluten till din Static Web Apps-resurs. Vid lokal utveckling är det anslutningssträngen som definierats i konfigurationsfilen som används för att ansluta till databasen. |
runtime |
Avsnitt som definierar de exponerade slutpunkterna. Egenskaperna rest och graphql styr DET URL-fragment som används för att komma åt respektive API-protokoll. Konfigurationsavsnittet host definierar inställningar som är specifika för din utvecklingsmiljö. Kontrollera att arrayen origins innehåller din localhost-adress och port. Host.mode skrivs över till production när en databas är ansluten till din Static Web Apps-resurs. |
entities |
Avsnitt som mappar URL-sökvägen till databasentiteter och tabeller. Samma rollbaserade autentiseringsregler som används för att skydda sökvägar skyddar även databasentiteter och kan användas för att definiera behörigheter för varje entitet. Entitetsobjektet anger också relationerna mellan entiteter. |
Generera konfigurationsfil
Med Static Web Apps CLI kan du generera en konfigurationsfilmsmall.
Viktigt
För att förbättra säkerheten för distributioner från Static Web Apps CLI infördes en icke-bakåtkompatibel ändring som kräver att du uppgraderar till den senaste versionen (2.0.2) av Static Web Apps CLI senast den 15 januari 2025.
Använd swa db init --database-type <YOUR_DATABASE_TYPE> för att generera en konfigurationsfil. Som standard skapar CLI en ny staticwebapp.database.config.json i en mapp med namnet swa-db-connections.
Databastyper som stöds är:
mssqlpostgresqlcosmosdb_nosqlmysql
Anpassad konfigurationsmapp
Standardmappnamnet för filen staticwebapp.database.config.json är swa-db-connections. Om du vill använda en annan mapp måste du uppdatera arbetsflödesfilen för att tala om för körningen för Static Web Apps var konfigurationsfilen finns. Med data_api_location egenskapen kan du definiera platsen för konfigurationsmappen.
Obs!
Mappen som innehåller filen staticwebapp.database.config.json måste finnas i roten på kodlagringsplatsen för statiska webbappar.
Följande kod visar hur du använder en mapp med namnet db-config som databaskonfigurationsfilens mapp.
app_location: "/src"
api_location: "api"
output_location: "/dist"
data_api_location: "db-config" # Folder holding the staticwebapp.database.config.json file
Konfigurera databasanslutning
Azure Static Web Apps måste ha nätverksåtkomst till databasen för att databasanslutningar ska fungera. Om du vill använda en Azure-databas för lokal utveckling måste du dessutom konfigurera databasen så att den tillåter begäranden från din egen IP-adress. Följande är allmänna steg som gäller för alla databaser. Specifika steg för din databastyp finns i länkarna ovan.
- Gå till databasen i Azure Portal.
- Gå till fliken Nätverk.
- Under avsnittet Brandväggsregler väljer du Lägg till din klient-IPv4-adress. Det här steget säkerställer att du kan använda den här databasen för din lokala utveckling.
- Markera kryssrutan Tillåt Azure-tjänster och resurser att komma åt den här servern . Det här steget säkerställer att din distribuerade Static Web Apps-resurs kan komma åt databasen.
- Välj Spara.
Anslut en databas
När du länkar en databas till din statiska webbapp upprättas produktionsanslutningen mellan din webbplats och databasen när den publiceras till Azure.
Öppna din statiska webbapp i Azure Portal.
I avsnittet Inställningar väljer du Databasanslutning.
I avsnittet Produktion väljer du länken Länka befintlig databas.
I fönstret Länka befintlig databas anger du följande värden:
Fastighet Värde Databastyp Välj din databastyp i listrutan. Prenumeration Välj din Azure-prenumeration i listrutan med nedrullningsbar lista. Resursnamn Välj det databasservernamn som har önskad databas. Databasnamn Välj namnet på den databas som du vill länka till din statiska webbapp. Autentiseringstyp Välj den anslutningstyp som krävs för att ansluta till databasen.
Relaterat innehåll
Lägg till en databas i din statiska webbapp med någon av följande databaser:
Dessutom kan du lära dig hur du använder Data API builder med Azure Static Web Apps.