Aggiungere Azure Cosmos DB all'app usando Visual Studio Connessione ed Services

Con Visual Studio è possibile connettere uno dei seguenti elementi ad Azure Cosmos DB usando la funzionalità servizi Connessione ed:

  • 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.

Nota

Questo argomento si applica a Visual Studio in Windows. Per Visual Studio per Mac, vedere Servizi connessi in Visual Studio per Mac.

Prerequisiti

Connessione ad Azure Cosmos DB usando servizi Connessione ed

  1. Aprire il progetto in Visual Studio.

  2. In Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo Servizi Connessione e scegliere Aggiungi servizio Connessione ed dal menu di scelta rapida.

  3. Nella scheda Servizi Connessione ed selezionare l'icona + per Dipendenze del servizio.

    Screenshot showing how to add a service dependency.

  4. Nella pagina Aggiungi dipendenza selezionare Azure Cosmos DB.

    Screenshot showing

    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.

  5. 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.

    Screenshot showing how to add an existing Azure Cosmos DB to project.

  6. Per creare un'istanza di Azure Cosmos DB:

    1. Selezionare Crea un nuovo Azure Cosmos DB nella parte inferiore della schermata.

    2. Compilare la schermata Azure Cosmos DB: Crea nuova e selezionare Crea.

      Screenshot showing

    3. 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.

  7. 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.

    Screenshot showing

  8. 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.

    Screenshot showing

  9. La connessione viene visualizzata nella sezione Dipendenze del servizio della scheda Servizi Connessione ed.

    Screenshot showing

Nota

Per i progetti .NET Framework, l'interfaccia utente dei servizi Connessione ed è leggermente diversa. Per visualizzare le differenze, confrontare con la versione di Visual Studio 2019 di questa pagina.

  1. Aprire il progetto in Visual Studio.

  2. In Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo Servizi Connessione ed e scegliere Aggiungi dal menu di scelta rapida per aprire il menu dei servizi disponibili.

    Screenshot showing Connected Services context menu options.

  3. Scegliere Azure Cosmos DB. Viene visualizzata la Connessione alla pagina delle 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.

    Screenshot showing Azure Cosmos DB choices.

    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.

  4. 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.

    Screenshot showing

  5. Per creare un'istanza di Azure Cosmos DB:

    1. Selezionare Crea un nuovo Azure Cosmos DB nella parte inferiore della schermata.

    2. Compilare la schermata Azure Cosmos DB: Crea nuova e selezionare Crea.

      Screenshot showing

    3. 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.

  6. 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.

    Screenshot showing

    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'oggetto WebApplicationBuild .

  7. 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.

    Screenshot showing

  8. In Esplora soluzioni fare doppio clic sul nodo Servizi Connessione ed per aprire la scheda Servizi Connessione ed. La connessione viene visualizzata nella sezione Dipendenze del servizio:

    Screenshot showing

    Se si fa clic sui tre puntini accanto alla dipendenza aggiunta, è possibile visualizzare varie opzioni, ad esempio Connessione 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.

  9. 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 Connessione ed 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 Cassaforte archiviazione dei segreti dell'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.