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.
Den här guiden visar hur du distribuerar Data API Builder (DAB) till Azure App Service med hjälp av en kodbaserad distributionsmodell, utan att skapa eller hantera containeravbildningar. App Service har inbyggt stöd för TLS, anpassade domäner, skalning, övervakning och Microsoft Entra autentisering.
Tip
Om din miljö använder containrar kan du läsa Distribuera till Azure Container Apps eller Distribution till Azure Kubernetes Service i stället.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto kostnadsfritt.
- Data-API-byggarens CLI. Installera CLI.
- Azure CLI. Installera Azure CLI.
- .NET 8 eller senare installerat lokalt.
- Befintlig databas som stöds kan adresseras från Azure.
Skapa konfigurationsfilen
Skapa en DAB-konfigurationsfil för att ansluta till din befintliga databas.
Skapa en tom katalog på den lokala datorn för att lagra konfigurationsfilen och distributionsartefakter.
Initiera en ny baskonfigurationsfil med .
dab init@env()Använd funktionen för att refereraDATABASE_CONNECTION_STRINGtill miljövariabeln så att autentiseringsuppgifterna inte lagras i konfigurationsfilen.dab init --database-type "<database-type>" --connection-string "@env('DATABASE_CONNECTION_STRING')"Important
Ersätt
<database-type>med en databastyp som stöds, till exempelmssql,postgresql,mysqlellercosmosdb_nosql. Vissa databastyper kräver extra konfigurationsinställningar vid initiering.Lägg till minst en databasentitet i konfigurationen.
dab addAnvänd kommandot för att konfigurera en entitet. Upprepadab addså många gånger du behöver för dina entiteter.dab add "<entity-name>" --source "<schema>.<table>" --permissions "anonymous:*"Öppna och granska innehållet i dab-config.json-filen . Kontrollera att:
-
data-source.connection-stringAnvänder@env('DATABASE_CONNECTION_STRING') - Dina entiteter och behörigheter är korrekta
Important
Bädda inte in literala anslutningssträngar eller hemligheter i
dab-config.json. Använd@env()-funktionen så att värden hämtas från miljövariabler under körning.-
Skapa ett lokalt verktygsmanifest
Använd ett lokalt .NET verktygsmanifest så att distributionspaketet innehåller DAB som ett projektberoende. Den här metoden undviker att förlita sig på ett globalt installerat verktyg i App Service.
Skapa ett .NET lokalt verktygsmanifest i projektkatalogen.
dotnet new tool-manifestInstallera Data API Builder som ett lokalt verktyg.
dotnet tool install microsoft.dataapibuilder --prereleaseKontrollera att manifestet finns på
.config/dotnet-tools.json.Note
Flaggan
--prereleaseinstallerar den senaste förhandsversionen av Data API Builder. Ta bort flaggan för att installera den senaste stabila versionen i stället.
Testa lokalt
Innan du distribuerar till Azure bekräftar du att körningen startar och att slutpunkterna fungerar.
Ange reťazec pripojenia som en lokal miljövariabel.
$env:DATABASE_CONNECTION_STRING = "<your-connection-string>"Starta DAB-programkörningen lokalt.
dab startTesta REST-slutpunkten genom att navigera till Swagger-användargränssnittet eller göra en begäran till
/api/<entity-name>.Testa GraphQL-slutpunkten på
/graphql.Stoppa körningen när du har verifierat alla slutpunkter.
Skapa App Service-resurserna
Skapa de Azure resurser som krävs för att vara värd för DAB på App Service.
Skapa en ny resursgrupp. Du använder den här resursgruppen för alla nya resurser i den här guiden.
az group create \ --name <resource-group-name> \ --location <location>Tip
Överväg att namnge resursgruppen msdocs-dab-appservice.
Skapa en App Service-plan.
az appservice plan create \ --name <plan-name> \ --resource-group <resource-group-name> \ --sku B1 \ --is-linuxNote
Den här guiden använder B1-nivån (Basic) i Linux.
Skapa webbappen med .NET 8 runtime-miljön.
az webapp create \ --name <app-name> \ --resource-group <resource-group-name> \ --plan <plan-name> \ --runtime "DOTNETCORE:8.0"Tip
Kontrollera tillgängliga körmiljöer för din plan med
az webapp list-runtimes --os linux.
Konfigurera App Service-inställningar
Konfigurera miljövariablerna och startkommandot som App Service behöver för att köra DAB.
Konfigurera autentiseringsprovidern för App Service. Den här inställningen uppmanar DAB att lita på App Services inbyggda autentisering (Easy Auth) för identitetsinformation.
dab configure --runtime.host.authentication.provider AppServiceAnge databas-anslutningssträngen som en App Service-programinställning.
az webapp config appsettings set \ --name <app-name> \ --resource-group <resource-group-name> \ --settings DATABASE_CONNECTION_STRING="<your-connection-string>"Tip
Använd en reťazec pripojenia som inte innehåller hemligheter. Använd i stället hanterade identiteter och Microsoft Entra autentisering för att hantera åtkomst mellan databasen och App Service. Mer information finns i Azure-tjänster som använder hanterade identiteter.
Skapa ett startskript som återställer det lokala verktygsmanifestet och startar DAB. Skapa en fil med namnet
startup.shi projektkatalogen.#!/bin/sh dotnet tool restore dotnet tool run dab startImportant
Se till att
startup.shanvänder LF-radslut (Unix), inte CRLF. Windows textredigerare kan spara med CRLF som standard, vilket gör att skriptet inte fungerar på Linux App Service-plattformen.Ange startkommandot i App Service.
az webapp config set \ --name <app-name> \ --resource-group <resource-group-name> \ --startup-file "startup.sh"
Distribuera till App Service
Paketera dina projektfiler och distribuera dem till App Service med zip-distribution.
Skapa ett distributionspaket som innehåller dina projektfiler. Inkludera minst:
dab-config.json.config/dotnet-tools.jsonstartup.sh
Compress-Archive -Path dab-config.json, .config, startup.sh -DestinationPath deploy.zip -ForceImportant
ZIP-filen måste innehålla filer på rotnivå. Zippa inte en överordnad mapp som innehåller filerna. Arkivroten bör innehålla
dab-config.json,.config/ochstartup.shdirekt.Distribuera ZIP-paketet till App Service.
az webapp deploy \ --resource-group <resource-group-name> \ --name <app-name> \ --src-path deploy.zip \ --type zip
Verifiera driftsättningen
Efter distributionen bekräftar du att DAB startar framgångsrikt på App Service.
Öppna App Service-URL:en.
https://<app-name>.azurewebsites.netKontrollera hälsoslutpunkten.
https://<app-name>.azurewebsites.net/healthTesta REST- och GraphQL-slutpunkter med samma entitetssökvägar som du testade lokalt. Den distribuerade appen använder samma
dab-config.json, så slutpunktsbeteendet bör matcha din lokala miljö.Om någon slutpunkt returnerar ett oväntat fel aktiverar du programloggning och granskar loggarna.
az webapp log config \ --name <app-name> \ --resource-group <resource-group-name> \ --application-logging filesystem \ --level information az webapp log tail \ --name <app-name> \ --resource-group <resource-group-name>
Konfigurera autentisering (valfritt)
Skydda din App Service-slutpunkt med Microsoft Entra ID för produktionsanvändning.
Detaljerade steg finns i Konfigurera App Service-autentisering.
Important
AppService autentiseringsleverantören i dab-config.json litar på rubriker som infogas av App Service-autentisering. Kontrollera att App Service-autentisering är aktiverat när du använder den här providern i produktion. Mer information finns i Easy Auth (App Service).
Note
App Service-autentisering skyddar ingången till din slutpunkt. DAB-entitetsbehörigheter styr fortfarande vilka åtgärder exekveringsmiljön tillåter. Om du vill ha rollbaserad åtkomst uppdaterar du entitetsbehörigheterna så att de använder specifika roller istället för anonymous:*.
Rensa resurser
När du inte längre behöver exempelprogrammet eller resurserna tar du bort motsvarande distribution och alla resurser.
az group delete \
--name <resource-group-name> \
--yes \
--no-wait