Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Handbuch erfahren Sie, wie Sie den Data API builder (DAB) mithilfe eines codebasierten Bereitstellungsmodells in Azure App Service bereitstellen, ohne Container-Images zu erstellen oder zu verwalten. App Service bietet integrierte Unterstützung für TLS, benutzerdefinierte Domänen, Skalierung, Überwachung und Microsoft Entra Authentifizierung.
Tip
Wenn Ihre Umgebung Container verwendet, lesen Sie stattdessen Deploy to Azure Container Apps or Deploy to Azure Kubernetes Service.
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Kostenlos ein Konto erstellen.
- CLI des Daten-API-Erstellers. Installieren Sie die CLI-.
- Azure CLI. Installieren Sie die Azure-Befehlszeilenschnittstelle.
- .NET 8 oder höher lokal installiert.
- Vorhandene unterstützte Datenbank, die von Azure adressierbar ist.
Erstellen der Konfigurationsdatei
Erstellen Sie eine DAB-Konfigurationsdatei, um eine Verbindung mit Ihrer vorhandenen Datenbank herzustellen.
Erstellen Sie ein leeres Verzeichnis auf Ihrem lokalen Computer, um die Konfigurationsdatei und Bereitstellungsartefakte zu speichern.
Initialisieren Sie eine neue Basiskonfigurationsdatei mit
dab init. Verwenden Sie die@env()Funktion, um auf dieDATABASE_CONNECTION_STRINGUmgebungsvariable zu verweisen, sodass Anmeldeinformationen nicht in der Konfigurationsdatei gespeichert werden.dab init --database-type "<database-type>" --connection-string "@env('DATABASE_CONNECTION_STRING')"Important
Ersetzen Sie
<database-type>mit einem unterstützten Datenbanktyp, wiemssql,postgresql,mysqlodercosmosdb_nosql. Für einige Datenbanktypen sind zusätzliche Konfigurationseinstellungen für die Initialisierung erforderlich.Fügen Sie der Konfiguration mindestens eine Datenbankentität hinzu. Verwenden Sie den Befehl
dab add, um eine Entität zu konfigurieren. Wiederholen Siedab addso oft, wie Sie für Ihre Entitäten benötigen.dab add "<entity-name>" --source "<schema>.<table>" --permissions "anonymous:*"Öffnen und überprüfen Sie den Inhalt der dab-config.json Datei. Überprüfen Sie Folgendes:
-
data-source.connection-stringverwendet@env('DATABASE_CONNECTION_STRING') - Ihre Entitäten und Berechtigungen sind korrekt.
Important
Betten Sie keine wörtlichen Verbindungszeichenfolgen oder geheimen Zugangsdaten in
dab-config.jsonein. Verwenden Sie die@env()Funktion, sodass Werte aus Umgebungsvariablen zur Laufzeit aufgelöst werden.-
Erstellen eines lokalen Toolmanifests
Verwenden Sie ein lokales .NET Toolmanifest, sodass das Bereitstellungspaket DAB als Projektabhängigkeit enthält. Dieser Ansatz vermeidet das Vertrauen auf ein global installiertes Tool innerhalb von App Service.
Erstellen Sie ein .NET lokalen Toolmanifest in Ihrem Projektverzeichnis.
dotnet new tool-manifestInstallieren Sie den Daten-API-Generator als lokales Tool.
dotnet tool install microsoft.dataapibuilder --prereleaseÜberprüfen Sie, ob das Manifest vorhanden ist unter
.config/dotnet-tools.json.Note
Das
--prereleaseFlag installiert die neueste Vorabversion des Daten-API-Generators. Entfernen Sie stattdessen die Kennzeichnung, um die neueste stabile Version zu installieren.
Lokales Testen
Vergewissern Sie sich vor der Bereitstellung für Azure, dass die Laufzeit gestartet wird und Ihre Endpunkte funktionieren.
Legen Sie die Verbindungszeichenfolge als lokale Umgebungsvariable fest.
$env:DATABASE_CONNECTION_STRING = "<your-connection-string>"Starten Sie die DAB-Laufzeit lokal.
dab startTesten Sie den REST-Endpunkt, indem Sie zur Swagger-Benutzeroberfläche navigieren oder eine Anfrage an
/api/<entity-name>senden.Testen Sie den GraphQL-Endpunkt bei
/graphql.Beenden Sie die Laufzeit, nachdem Sie alle Endpunkte überprüft haben.
Erstellen der App Service-Ressourcen
Erstellen Sie die Azure Ressourcen, die zum Hosten von DAB in App Service erforderlich sind.
Eine neue Ressourcengruppe erstellen. Sie verwenden diese Ressourcengruppe für alle neuen Ressourcen in diesem Handbuch.
az group create \ --name <resource-group-name> \ --location <location>Tip
Erwägen Sie die Benennung der Ressourcengruppe "msdocs-dab-appservice".
Erstellen eines App Service-Plans
az appservice plan create \ --name <plan-name> \ --resource-group <resource-group-name> \ --sku B1 \ --is-linuxNote
In diesem Leitfaden wird die Ebene B1 (Basic) unter Linux verwendet.
Erstellen Sie die Web-App mit der .NET 8 Laufzeit.
az webapp create \ --name <app-name> \ --resource-group <resource-group-name> \ --plan <plan-name> \ --runtime "DOTNETCORE:8.0"Tip
Überprüfen Sie die verfügbaren Laufzeiten für Ihren Plan mit
az webapp list-runtimes --os linux.
Konfigurieren von App Service-Einstellungen
Konfigurieren Sie die Umgebungsvariablen und den Startbefehl, den Der App-Dienst zum Ausführen von DAB benötigt.
Konfigurieren Sie den Authentifizierungsanbieter für App Service. Diese Einstellung weist DAB an, der integrierten Authentifizierung (Easy Auth) von App Service für Identitätsinformationen zu vertrauen.
dab configure --runtime.host.authentication.provider AppServiceLegen Sie die Datenbank-Verbindungszeichenfolge als App Service Anwendungseinstellung fest.
az webapp config appsettings set \ --name <app-name> \ --resource-group <resource-group-name> \ --settings DATABASE_CONNECTION_STRING="<your-connection-string>"Tip
Verwenden Sie eine Verbindungszeichenfolge, die keine geheimen Schlüssel enthält. Verwenden Sie stattdessen verwaltete Identitäten und Microsoft Entra Authentifizierung, um den Zugriff zwischen Ihrer Datenbank und Dem App Service zu verwalten. Weitere Informationen finden Sie unter Azure-Dienste, die verwaltete Identitätenverwenden.
Erstellen Sie ein Startskript, das das lokale Toolmanifest wiederherstellen und DAB startet. Erstellen Sie eine Datei mit dem Namen
startup.shin Ihrem Projektverzeichnis.#!/bin/sh dotnet tool restore dotnet tool run dab startImportant
Stellen Sie sicher, dass
startup.shLF (Unix)-Linienenden verwendet werden, nicht CRLF. Windows Editoren können standardmäßig mit CRLF gespeichert werden, was dazu führt, dass das Skript auf dem Linux App Service-Host fehlschlägt.Legen Sie den Startbefehl in App Service fest.
az webapp config set \ --name <app-name> \ --resource-group <resource-group-name> \ --startup-file "startup.sh"
Bereitstellen in App Service
Packen Sie Ihre Projektdateien und führen Sie die Bereitstellung mithilfe des ZIP-Bereitstellungsverfahrens mit App Service durch.
Erstellen Sie ein Bereitstellungspaket, das Ihre Projektdateien enthält. Schließen Sie mindestens Folgendes ein:
dab-config.json.config/dotnet-tools.jsonstartup.sh
Compress-Archive -Path dab-config.json, .config, startup.sh -DestinationPath deploy.zip -ForceImportant
Die ZIP-Datei muss Dateien auf der Stammebene enthalten. Zippen Sie keinen übergeordneten Ordner, der die Dateien enthält. Der Archivstamm sollte
dab-config.json,.config/undstartup.shdirekt enthalten.Stellen Sie das ZIP-Paket in App Service bereit.
az webapp deploy \ --resource-group <resource-group-name> \ --name <app-name> \ --src-path deploy.zip \ --type zip
Überprüfen Sie die Bereitstellung
Vergewissern Sie sich nach der Bereitstellung, dass DAB erfolgreich im App-Dienst gestartet wird.
Öffnen Sie die App-Dienst-URL.
https://<app-name>.azurewebsites.netÜberprüfen Sie den Status-Endpunkt.
https://<app-name>.azurewebsites.net/healthTesten Sie REST- und GraphQL-Endpunkte mit denselben Entitätspfaden, die Sie lokal getestet haben. Die bereitgestellte App verwendet dasselbe
dab-config.json, sodass das Endpunktverhalten ihrer lokalen Laufzeit entsprechen sollte.Wenn ein Endpunkt einen unerwarteten Fehler zurückgibt, aktivieren Sie die Anwendungsprotokollierung, und überprüfen Sie die Protokolle.
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>
Konfigurieren der Authentifizierung (optional)
Schützen Sie Ihren App Service-Endpunkt mit Microsoft Entra ID für die Produktionsverwendung.
Ausführliche Schritte finden Sie unter Konfigurieren der App Service-Authentifizierung.
Important
Der AppService Authentifizierungsanbieter in dab-config.json vertraut auf Header, die von der App Service-Authentifizierung eingefügt werden. Stellen Sie sicher, dass die App Service-Authentifizierung bei Verwendung dieses Anbieters in der Produktion aktiviert ist. Weitere Informationen finden Sie unter Easy Auth (App Service).
Note
Die App Service-Authentifizierung schützt den Ausgang zu Ihrem Endpunkt. DAB-Entitätsberechtigungen steuern weiterhin, welche Vorgänge die Laufzeit zulässt. Wenn Sie rollenbasierten Zugriff benötigen, aktualisieren Sie die Berechtigungen der Entität, um spezifische Rollen statt anonymous:* zu verwenden.
Bereinigen von Ressourcen
Wenn Sie die Beispielanwendung oder Ressourcen nicht mehr benötigen, entfernen Sie die entsprechende Bereitstellung und alle Ressourcen.
az group delete \
--name <resource-group-name> \
--yes \
--no-wait