Aggiungere Azure Cosmos DB all'app usando Servizi connessi di Visual Studio
Con Visual Studio è possibile connettere uno dei seguenti elementi ad Azure Cosmos DB usando la funzionalità Servizi connessi:
- App console .NET Framework
- ASP.NET Model-View-Controller (MVC) (.NET Framework)
- ASP.NET Core
- .NET Core (tra cui app console, WPF, Windows Form, libreria di classi)
- Ruolo di lavoro .NET Core
- Funzioni di Azure
- app piattaforma UWP (Universal Windows Platform)
- Xamarin
- Cordova
La funzionalità servizio connesso aggiunge al progetto tutti i riferimenti richiesti e il codice di connessione e modifica i file di configurazione in modo appropriato.
Prerequisiti
- Visual Studio con il carico di lavoro di Azure installato.
- Progetto di uno dei tipi supportati
- Un account Azure. Se non si ha un account Azure, attivare i vantaggi di Azure per i sottoscrittori di Visual Studio o iscriversi per ottenere una versione di valutazione gratuita.
Connettersi ad Azure Cosmos DB con i servizi connessi
Aprire il progetto in Visual Studio.
In Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo Servizi connessi e scegliere Aggiungi servizio connesso dal menu di scelta rapida.
Se il nodo Servizi connessi non viene visualizzato, scegliere Progetto>Servizi>connessi Aggiungi.
Nella scheda Servizi connessi selezionare l'icona + per Dipendenze del servizio.
Nella pagina Aggiungi dipendenza selezionare Azure Cosmos DB.
Se non è già stato eseguito l'accesso, accedere all'account Azure. Se non si ha un account Azure, è possibile iscriversi per ottenere una versione di valutazione gratuita.
Nella schermata Azure Cosmos DB selezionare un'istanza esistente di Azure Cosmos DB e selezionare Avanti.
Se è necessario creare un database, andare al passaggio successivo. In caso contrario, andare al passaggio 7.
Per creare un'istanza di Azure Cosmos DB:
Selezionare Crea un nuovo Azure Cosmos DB nella parte inferiore della schermata.
Compilare la schermata Azure Cosmos DB: Crea nuova e selezionare Crea.
Quando viene visualizzata la finestra di dialogo Configura Azure Cosmos DB , il nuovo database viene visualizzato nell'elenco. Selezionare il nuovo database nell'elenco e selezionare Avanti.
Immettere un nome stringa di connessione e scegliere se si vuole archiviare il stringa di connessione in un file di segreti locale o in Azure Key Vault.
La schermata Riepilogo delle modifiche mostra tutte le modifiche che verranno apportate al progetto se si completa il processo. Se le modifiche hanno un aspetto ok, scegliere Fine.
La connessione viene visualizzata nella sezione Dipendenze del servizio della scheda Servizi connessi.
Nota
Per i progetti .NET Framework, l'interfaccia utente di Servizi connessi è leggermente diversa. Per visualizzare le differenze, confrontare con la versione di Visual Studio 2019 di questa pagina.
Aprire il progetto in Visual Studio.
In Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo Servizi connessi e scegliere Aggiungi dal menu di scelta rapida per aprire il menu dei servizi disponibili.
Se il nodo Servizi connessi non viene visualizzato, scegliere Progetto>Servizi>connessi Aggiungi.
Scegliere Azure Cosmos DB. Viene visualizzata la pagina Connetti alle dipendenze . Verranno visualizzate due opzioni, una per un emulatore locale, l'emulatore di Azure Cosmos DB nel contenitore (locale) e una per la connessione al servizio Azure Cosmos DB attivo. È possibile ridurre i costi e semplificare lo sviluppo anticipato iniziando con l'emulatore locale. È possibile eseguire la migrazione al servizio attivo in un secondo momento ripetendo questi passaggi e scegliendo l'altra opzione.
Se si sceglie di usare l'emulatore di Azure Cosmos DB, fare clic su Avanti per visualizzare la schermata Riepilogo delle modifiche , che mostra come viene modificato il progetto. Al progetto viene aggiunto un riferimento al pacchetto NuGet e il codice di connessione per l'emulatore locale viene aggiunto al progetto. Dopo aver fatto clic su Fine nell'ultima schermata, viene creato il contenitore per l'emulatore. Verrà visualizzato lo stato di download dell'immagine nella finestra di output.
Se si vuole connettersi al servizio di Azure, continuare con il passaggio successivo o, se non si è già connessi, accedere all'account Azure prima di continuare. Se non si ha un account Azure, è possibile iscriversi per ottenere una versione di valutazione gratuita.
Nella schermata Azure Cosmos DB selezionare un'istanza esistente di Azure Cosmos DB e selezionare Avanti.
Se è necessario creare un database, andare al passaggio successivo. In caso contrario, andare al passaggio 7.
Per creare un'istanza di Azure Cosmos DB:
Selezionare Crea un nuovo Azure Cosmos DB nella parte inferiore della schermata.
Compilare la schermata Azure Cosmos DB: Crea nuova e selezionare Crea.
Quando viene visualizzata la finestra di dialogo Configura Azure Cosmos DB , il nuovo database viene visualizzato nell'elenco. Selezionare il nuovo database nell'elenco e selezionare Avanti.
Immettere un nome stringa di connessione e scegliere se si vuole archiviare il stringa di connessione in un file di segreti locale o in Azure Key Vault.
Il stringa di connessione viene aggiunto come segreto e reso disponibile nella configurazione dell'app. Nelle app ASP.NET Core è possibile accedere a questa stringa di connessione usando la
Configuration
proprietà nell'oggettoWebApplicationBuild
.La schermata Riepilogo delle modifiche mostra tutte le modifiche che verranno apportate al progetto se si completa il processo. Se le modifiche hanno un aspetto ok, scegliere Fine.
In Esplora soluzioni fare doppio clic sul nodo Servizi connessi per aprire la scheda Servizi connessi. La connessione viene visualizzata nella sezione Dipendenze del servizio:
Se si fa clic sui tre puntini accanto alla dipendenza aggiunta, è possibile visualizzare varie opzioni, ad esempio Connetti per riaprire la procedura guidata e modificare la connessione. È anche possibile fare clic sui tre puntini in alto a destra della finestra per visualizzare le opzioni per avviare dipendenze locali, modificare le impostazioni e altro ancora.
Per impostazione predefinita, il limite di memoria nel contenitore è impostato su 2G, ma in genere è necessaria una quantità di memoria maggiore per l'esecuzione di Azure Cosmos DB. Per risolvere il problema, passare alla cartella nella
.vs/sd/<GUID>/local
cartella della soluzione. In Esplora risorse potrebbe essere necessario abilitare i file nascosti per visualizzare la.vs
cartella. Trovare e aprire il file cosmosdb1.docker-compose.yml. Impostare un limite di memoria 4G o superiore.mem_limit = 4G
Per riavviare il contenitore con la nuova impostazione, nella sezione Dipendenze del servizio della scheda Servizi connessi fare clic sui tre puntini e scegliere Avvia dipendenze locali.
Nota
L'emulatore locale per Azure Cosmos DB potrebbe fare riferimento a un'immagine di base che usa una licenza temporanea per Azure Cosmos DB. Se il contenitore non viene avviato, controllare la scheda Log nella finestra Contenitori* per il contenitore Azure Cosmos DB. Se viene menzionato un problema di scadenza pal, è necessario ottenere l'immagine di base più recente per il contenitore locale. Eseguire il comando seguente dal prompt della console: docker pull mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest
. La licenza viene aggiornata periodicamente e, alla scadenza, l'aggiornamento al contenitore più recente deve risolvere il problema. È possibile visualizzare e segnalare problemi per l'emulatore di Azure Cosmos DB nel repository GitHub dell'emulatore di Azure Cosmos DB.
Passaggi successivi
Informazioni su come archiviare i segreti in modo sicuro seguendo l'archiviazione sicura dei segreti delle app in fase di sviluppo in ASP.NET Core. In particolare, per leggere il stringa di connessione dall'archivio segreti, è possibile aggiungere codice come in Leggere il segreto tramite l'API di configurazione. Il codice potrebbe essere simile al seguente, dove builder
è un'istanza di WebApplicationBuild
visualizzata in Program.cs nei modelli di progetto ASP.NET Core:
// New instance of CosmosClient class using a connection string
using CosmosClient client = new(
connectionString: builder.Configuration["CosmosDBConnectionString"]
);
CosmosClient
fornisce l'accesso alle funzionalità di Azure Cosmos DB tramite i vari metodi. Dopo aver creato un'istanza di CosmosClient
, è possibile creare un database NoSQL seguendo questa guida: Creare un database in Azure Cosmos DB per NoSQL usando .NET.