Konfiguration av databasanslutning i Azure Static Web Apps (förhandsversion)
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 hanterad identitet för databasen.
Namn | Type | Brandvägg | Hanterad identitet |
---|---|---|---|
Azure Cosmos DB | Standard | Konfigurera brandväggen | Konfigurera hanterad identitet |
Azure SQL | Standard | Konfigurera brandväggen | Konfigurera hanterad identitet |
Azure Database for MySQL | Sladd | Konfigurera brandväggen | Stöds inte |
Azure Database for PostgreSQL | Sladd | Konfigurera brandväggen | Stöds inte |
Azure Database for PostgreSQL (enkel) | Enstaka | Konfigurera brandväggen | Konfigurera hanterad identitet |
Konfiguration
Du definierar körningsbeteendet för databasanslutningen staticwebapp.database.config.json
i filen. Innan du länkar en databas till din statiska webbapp måste du skapa den här filen på lagringsplatsen. Enligt konventionen finns den här filen i mappen swa-db-connections i roten på lagringsplatsen, men du kan flytta den om du vill.
Syftet med konfigurationsfilen är att:
- Mappa sökvägar från
/data-api
slutpunkten till dina databastabeller eller entiteter - Exponera REST- eller GraphQL-slutpunkter (eller båda)
- Definiera entitetssäkerhetsregler
- Kontrollera konfigurationsinställningar för utveckling
Om du använder Azure Cosmos DB med GraphQL måste du också ange en gql
schemafil.
Kommentar
Statiska Web Apps-databasanslutningar kräver en mapp som innehåller konfigurationsfilerna. Den här mappen måste innehålla staticwebapp.database.config.json konfigurationsfilen 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 dess funktioner som stöds finns i dokumentationen för 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"
}
]
}
}
}
Property | 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_nosql eller mysql .Anslutningssträng skrivs över vid distribution när en databas är ansluten till din Static Web Apps-resurs. Under den lokala utvecklingen är det anslutningssträng som definierats i konfigurationsfilen vad 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 matrisen 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 konfigurationsfil.
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 för swa db init --database-type <YOUR_DATABASE_TYPE>
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:
mssql
postgresql
cosmosdb_nosql
mysql
Anpassad konfigurationsmapp
Standardmappnamnet för staticwebapp.database.config.json-filen ä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 den statiska webbappen var du hittar konfigurationsfilen. Med data_api_location
egenskapen kan du definiera platsen för konfigurationsmappen.
Kommentar
Mappen som innehåller staticwebapp.database.config.json-filen måste finnas i roten på lagringsplatsen för statiska webbappar.
Följande kod visar hur du använder en mapp med namnet db-config för databaskonfigurationsfilen.
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.
Ansluta en databas
När du länkar en databas till din statiska webbapp upprättas produktionsanslutningen mellan webbplatsen och databasen när den publiceras till Azure.
Öppna din statiska webbapp i Azure Portal.
I avsnittet Inställningar väljer du Databasanslutning.
Under avsnittet Produktion väljer du länken Länka befintlig databas .
I fönstret Länka befintlig databas anger du följande värden:
Property Värde Databastyp Välj din databastyp i listrutan. Prenumeration Välj din Azure-prenumeration i listrutan. 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-byggaren med Azure Static Web Apps.