Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Deze handleiding laat zien hoe u Data API Builder (DAB) implementeert om te Azure App Service met behulp van een implementatiemodel op basis van code, zonder containerinstallatiekopieën te bouwen of te beheren. App Service biedt ingebouwde ondersteuning voor TLS, aangepaste domeinen, schalen, bewaken en Microsoft Entra verificatie.
Tip
Als uw omgeving gebruikmaakt van containers, raadpleegt u Deploy naar Azure Container Apps of Deploy naar Azure Kubernetes Service.
Prerequisites
- Een Azure-account met een actief abonnement. Gratis een account maken
- Data-API-bouwer CLI. Installeer de CLI.
- Azure CLI. Installeer de Azure CLI.
- .NET 8 of hoger lokaal geïnstalleerd.
- Bestaande ondersteunde database die kan worden adresseerbaar vanuit Azure.
Het configuratiebestand bouwen
Maak een DAB-configuratiebestand om verbinding te maken met uw bestaande database.
Maak een lege map op uw lokale computer om het configuratiebestand en de implementatieartefacten op te slaan.
Initialiseer een nieuw basisconfiguratiebestand met behulp van
dab init. Gebruik de@env()functie om te verwijzen naar deDATABASE_CONNECTION_STRINGomgevingsvariabele, zodat referenties niet worden opgeslagen in het configuratiebestand.dab init --database-type "<database-type>" --connection-string "@env('DATABASE_CONNECTION_STRING')"Important
Vervangen
<database-type>door een ondersteund databasetype, zoalsmssql,postgresql,mysqlofcosmosdb_nosql. Voor sommige databasetypen zijn extra configuratie-instellingen vereist voor initialisatie.Voeg ten minste één database-entiteit toe aan de configuratie. Gebruik de
dab addopdracht om een entiteit te configureren. Herhaaldab adddit zo vaak als u nodig hebt voor uw entiteiten.dab add "<entity-name>" --source "<schema>.<table>" --permissions "anonymous:*"Open en controleer de inhoud van het dab-config.json-bestand . Controleer of:
-
data-source.connection-stringGebruikt@env('DATABASE_CONNECTION_STRING') - Uw entiteiten en machtigingen zijn juist
Important
Sluit letterlijke verbindingsreeksen of geheimen niet in
dab-config.json. Gebruik de@env()functie zodat waarden tijdens runtime worden omgezet vanuit omgevingsvariabelen.-
Een lokaal hulpprogrammamanifest maken
Gebruik een lokaal .NET hulpprogrammamanifest, zodat het implementatiepakket DAB als projectafhankelijkheid bevat. Deze aanpak voorkomt dat u vertrouwt op een wereldwijd geïnstalleerd hulpprogramma in App Service.
Maak een .NET lokaal hulpprogrammamanifest in uw projectmap.
dotnet new tool-manifestInstalleer Data API Builder als een lokaal hulpprogramma.
dotnet tool install microsoft.dataapibuilder --prereleaseControleer of het manifest bestaat op
.config/dotnet-tools.json.Note
Met
--prereleasede vlag wordt de meest recente prereleaseversie van Data API Builder geïnstalleerd. Verwijder de vlag om in plaats daarvan de meest recente stabiele release te installeren.
Lokaal testen
Controleer voordat u implementeert op Azure of de runtime wordt gestart en uw eindpunten werken.
Stel de verbindingsreeks in als een lokale omgevingsvariabele.
$env:DATABASE_CONNECTION_STRING = "<your-connection-string>"Start de DAB-runtime lokaal.
dab startTest het REST-eindpunt door naar de Swagger UI te navigeren of een verzoek naar
/api/<entity-name>te sturen.Test het GraphQL-eindpunt op
/graphql.Stop de runtime na het verifiëren van alle eindpunten.
De App Service-resources maken
Maak de Azure resources die nodig zijn voor het hosten van DAB in App Service.
Een nieuwe resourcegroep maken. U gebruikt deze resourcegroep voor alle nieuwe resources in deze handleiding.
az group create \ --name <resource-group-name> \ --location <location>Tip
Overweeg de resourcegroep msdocs-dab-appservice een naam te geven.
Maak een App Service-plan.
az appservice plan create \ --name <plan-name> \ --resource-group <resource-group-name> \ --sku B1 \ --is-linuxNote
In deze handleiding wordt de B1-laag (Basic) in Linux gebruikt.
Maak de web-app met de .NET 8 runtime.
az webapp create \ --name <app-name> \ --resource-group <resource-group-name> \ --plan <plan-name> \ --runtime "DOTNETCORE:8.0"Tip
Valideer beschikbare runtimes voor uw plan met
az webapp list-runtimes --os linux.
App Service-instellingen configureren
Configureer de omgevingsvariabelen en de opstartopdracht die App Service nodig heeft om DAB uit te voeren.
Configureer de verificatieprovider voor App Service. Met deze instelling moet DAB de ingebouwde verificatie (Easy Auth) van App Service vertrouwen voor identiteitsgegevens.
dab configure --runtime.host.authentication.provider AppServiceStel de database-verbindingsreeks in als een App Service-toepassingsinstelling.
az webapp config appsettings set \ --name <app-name> \ --resource-group <resource-group-name> \ --settings DATABASE_CONNECTION_STRING="<your-connection-string>"Tip
Gebruik een verbindingsreeks die geen geheimen bevat. Gebruik in plaats daarvan beheerde identiteiten en Microsoft Entra verificatie om de toegang tussen uw database en App Service te beheren. Zie Azure-services die gebruikmaken van beheerde identiteiten voor meer informatie.
Maak een opstartscript waarmee het lokale hulpprogrammamanifest wordt hersteld en DAB wordt gestart. Maak een bestand met de naam
startup.shin de projectmap.#!/bin/sh dotnet tool restore dotnet tool run dab startImportant
Zorg ervoor dat
startup.shgebruik maakt van LF-regelafbrekingen (Unix) in plaats van CRLF. Windows editors kunnen standaard opslaan met CRLF, waardoor het script mislukt op de Linux App Service-host.Stel de opstartopdracht in App Service in.
az webapp config set \ --name <app-name> \ --resource-group <resource-group-name> \ --startup-file "startup.sh"
Uitrollen naar App Service
Pak uw projectbestanden in en implementeer ze in App Service met behulp van ZIP Deploy.
Maak een implementatiepakket met uw projectbestanden. Neem minimaal het volgende op:
dab-config.json.config/dotnet-tools.jsonstartup.sh
Compress-Archive -Path dab-config.json, .config, startup.sh -DestinationPath deploy.zip -ForceImportant
De ZIP moet bestanden bevatten op het hoofdniveau. Zip een oudermap die de bestanden bevat niet. De archiefhoofdmap moet
dab-config.json,.config/enstartup.shrechtstreeks bevatten.Implementeer het ZIP-pakket in App Service.
az webapp deploy \ --resource-group <resource-group-name> \ --name <app-name> \ --src-path deploy.zip \ --type zip
De implementatie controleren
Controleer na de implementatie of DAB succesvol is gestart in App Service.
Open de App Service-URL.
https://<app-name>.azurewebsites.netControleer het gezondheidseindpunt.
https://<app-name>.azurewebsites.net/healthTest REST- en GraphQL-eindpunten met behulp van dezelfde entiteitspaden die u lokaal hebt getest. De geïmplementeerde app maakt gebruik van hetzelfde
dab-config.json, dus het eindpuntgedrag moet overeenkomen met uw lokale runtime.Als een eindpunt een onverwachte fout retourneert, schakelt u applicatielogging in en controleert u de logs.
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>
Verificatie configureren (optioneel)
Beveilig uw App Service-eindpunt met Microsoft Entra ID voor productiegebruik.
Zie App Service-verificatie configureren voor gedetailleerde stappen.
Important
De AppService authenticatieprovider in dab-config.json vertrouwt op headers die door de App Service-authenticatie worden geïnjecteerd. Zorg ervoor dat App Service-verificatie is ingeschakeld bij het gebruik van deze provider in productie. Zie Easy Auth (App Service) voor meer informatie.
Note
App Service-verificatie beschermt inkomend verkeer naar uw eindpunt. DAB-entiteitsmachtigingen bepalen nog steeds welke bewerkingen de runtime toestaat. Als u op rollen gebaseerde toegang wilt, werkt u uw entiteitsmachtigingen bij om specifieke rollen te gebruiken in plaats van anonymous:*.
De hulpbronnen opschonen
Wanneer u de voorbeeldtoepassing of resources niet meer nodig hebt, verwijdert u de bijbehorende implementatie en alle resources.
az group delete \
--name <resource-group-name> \
--yes \
--no-wait
Verwante inhoud
- Eenvoudige verificatie (App Service)
- Configuratiebestandsreferentie
- Runtimehost- en verificatieconfiguratie
- Implementeren in Azure Container Apps
- Integreren met Application Insights