Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa guida illustra come distribuire Data API Builder (DAB) in Servizio app di Azure usando un modello di distribuzione basato su codice, senza compilare o gestire immagini del contenitore. Il servizio app offre il supporto predefinito per TLS, domini personalizzati, scalabilità, monitoraggio e autenticazione Microsoft Entra.
Tip
Se l'ambiente usa contenitori, vedere Deploy in App contenitore di Azure o Deploy in servizio Azure Kubernetes.
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Creare un account gratuito.
- CLI generatore di API dati. Installare la CLI.
- CLI di Azure. Installare l'interfaccia della riga di comando di Azure
- .NET 8 o versione successiva installata in locale.
- Database esistente indirizzabile da Azure.
Compilare il file di configurazione
Compilare un file di configurazione DAB per connettersi al database esistente.
Creare una directory vuota nel computer locale per archiviare i file di configurazione e gli artefatti di distribuzione.
Inizializzare un nuovo file di configurazione di base usando
dab init. Usare la@env()funzione per fare riferimento allaDATABASE_CONNECTION_STRINGvariabile di ambiente in modo che le credenziali non vengano archiviate nel file di configurazione.dab init --database-type "<database-type>" --connection-string "@env('DATABASE_CONNECTION_STRING')"Importante
Sostituire
<database-type>con un tipo di database supportato, ad esempiomssql,postgresql,mysqlocosmosdb_nosql. Alcuni tipi di database richiedono impostazioni di configurazione aggiuntive per l'inizializzazione.Aggiungere almeno un'entità di database alla configurazione. Usare il
dab addcomando per configurare un'entità. Ripeteredab addtutte le volte necessarie per le entità.dab add "<entity-name>" --source "<schema>.<table>" --permissions "anonymous:*"Aprire ed esaminare il contenuto del file dab-config.json . Verifica che:
-
data-source.connection-stringUtilizza@env('DATABASE_CONNECTION_STRING') - Le entità e le autorizzazioni sono corrette
Importante
Non incorporare stringhe di connessione letterali o segreti in
dab-config.json. Usare la@env()funzione in modo che i valori vengano risolti dalle variabili di ambiente in fase di esecuzione.-
Creare un manifesto dello strumento locale
Usare un manifesto dello strumento di .NET locale in modo che il pacchetto di distribuzione includa DAB come dipendenza del progetto. Questo approccio evita di basarsi su uno strumento installato a livello globale all'interno del servizio app.
Creare un manifesto dello strumento locale .NET nella directory del progetto.
dotnet new tool-manifestInstallare Generatore API dati come strumento locale.
dotnet tool install microsoft.dataapibuilder --prereleaseVerificare che il manifesto esista in
.config/dotnet-tools.json.Note
Il
--prereleaseflag installa la versione non definitiva più recente del generatore di API dati. Rimuovere invece il flag per installare la versione stabile più recente.
Testare localmente
Prima di eseguire la distribuzione in Azure, verificare che il runtime venga avviato e che gli endpoint funzionino.
Impostare il stringa di connessione come variabile di ambiente locale.
$env:DATABASE_CONNECTION_STRING = "<your-connection-string>"Avviare il runtime DAB in locale.
dab startTestare l'endpoint REST passando all'interfaccia utente di Swagger o effettuando una richiesta a
/api/<entity-name>.Eseguire il test sull'endpoint GraphQL a
/graphql.Arrestare il runtime dopo aver verificato tutti gli endpoint.
Creare le risorse del servizio app
Creare le risorse di Azure necessarie per ospitare DAB nel servizio app.
Creare un nuovo gruppo di risorse. Questo gruppo di risorse viene usato per tutte le nuove risorse in questa guida.
az group create \ --name <resource-group-name> \ --location <location>Tip
Prendere in considerazione la denominazione del gruppo di risorse msdocs-dab-appservice.
Creare un piano di servizio app.
az appservice plan create \ --name <plan-name> \ --resource-group <resource-group-name> \ --sku B1 \ --is-linuxNote
Questa guida usa il livello B1 (Basic) in Linux.
Creare l'app Web con il runtime .NET 8.
az webapp create \ --name <app-name> \ --resource-group <resource-group-name> \ --plan <plan-name> \ --runtime "DOTNETCORE:8.0"Tip
Verificare i runtime disponibili per il piano con
az webapp list-runtimes --os linux.
Configurare le impostazioni del servizio app
Configurare le variabili di ambiente e il comando di avvio necessari affinché App Service esegua DAB.
Configurare il provider di autenticazione per il servizio app. Questa impostazione indica a DAB di considerare attendibile l'autenticazione predefinita del servizio app (Easy Auth) per le informazioni sull'identità.
dab configure --runtime.host.authentication.provider AppServiceImpostare il stringa di connessione del database come impostazione dell'applicazione in App Service.
az webapp config appsettings set \ --name <app-name> \ --resource-group <resource-group-name> \ --settings DATABASE_CONNECTION_STRING="<your-connection-string>"Tip
Usare un stringa di connessione che non include segreti. Usare invece le identità gestite e l'autenticazione di Microsoft Entra per gestire l'accesso tra il database e il Servizio App. Per altre informazioni, vedere Servizi di Azure che usano identità gestite.
Creare uno script di avvio che ripristina il manifesto dello strumento locale e avvia DAB. Creare un file denominato
startup.shnella directory del progetto.#!/bin/sh dotnet tool restore dotnet tool run dab startImportante
Assicurarsi di
startup.shusare terminazioni di riga LF (Unix), non CRLF. Gli editor di Windows possono salvare con CRLF per impostazione predefinita, provocando il fallimento dello script nell'host del servizio app Linux.Impostare il comando di avvio nel servizio app.
az webapp config set \ --name <app-name> \ --resource-group <resource-group-name> \ --startup-file "startup.sh"
Distribuzione su App Service
Impacchettare i file del progetto e distribuirli su App Service usando la distribuzione ZIP.
Creare un pacchetto di distribuzione contenente i file di progetto. Includere almeno:
dab-config.json.config/dotnet-tools.jsonstartup.sh
Compress-Archive -Path dab-config.json, .config, startup.sh -DestinationPath deploy.zip -ForceImportante
Il file ZIP deve contenere file a livello radice. Non comprimere una cartella principale contenente i file. La radice dell'archivio deve includere direttamente
dab-config.json,.config/estartup.sh.Distribuire il pacchetto ZIP nel servizio app.
az webapp deploy \ --resource-group <resource-group-name> \ --name <app-name> \ --src-path deploy.zip \ --type zip
Verificare la distribuzione
Dopo la distribuzione, verificare che DAB venga avviato correttamente nel servizio app.
Aprire l'URL del servizio app.
https://<app-name>.azurewebsites.netControllare l'endpoint di stato.
https://<app-name>.azurewebsites.net/healthTestare gli endpoint REST e GraphQL usando gli stessi percorsi di entità testati in locale. L'app distribuita usa lo stesso
dab-config.json, quindi il comportamento dell'endpoint deve corrispondere al runtime locale.Se un endpoint restituisce un errore imprevisto, abilitare la registrazione delle applicazioni ed esaminare i log.
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>
Configurare l'autenticazione (facoltativo)
Proteggere l'endpoint del Servizio App con Microsoft Entra ID per l'uso in produzione.
Per i passaggi dettagliati, vedere Configurare l'autenticazione del servizio app.
Importante
Il provider di autenticazione AppService nelle dab-config.json si fida delle intestazioni inserite dall'autenticazione del Servizio App. Assicurarsi che l'autenticazione del servizio app sia abilitata quando si usa questo provider nell'ambiente di produzione. Per altre informazioni, vedere Easy Auth (Servizio app).
Note
L'autenticazione di App Service protegge l'accesso al tuo endpoint. Le autorizzazioni delle entità DAB regolano comunque le operazioni consentite dal runtime. Se si vuole l'accesso basato sui ruoli, aggiornare le autorizzazioni dell'entità per usare ruoli specifici anziché anonymous:*.
Pulire le risorse
Quando l'applicazione o le risorse di esempio non sono più necessarie, rimuovere la distribuzione corrispondente e tutte le risorse.
az group delete \
--name <resource-group-name> \
--yes \
--no-wait
Contenuti correlati
- Autenticazione semplice (servizio app)
- Informazioni di riferimento sul file di configurazione
- Configurazione dell'host di runtime e dell'autenticazione
- <a href="#tabpanel_1_aca" role="tab" aria-controls="tabpanel_1_aca" data-tab="aca" tabindex="0" aria-selected="true" data-linktype="self-bookmark"<Distribuire su App contenitore di Azure</a<
- Integrazione con Application Insights