Azure Cosmos DB: Creare un'app Web per le API MongoDB con .NET e il portale di AzureAzure Cosmos DB: Build a MongoDB API web app with .NET and the Azure portal

Azure Cosmos DB è il servizio di database multimodello distribuito a livello globale di Microsoft.Azure Cosmos DB is Microsoft’s globally distributed multi-model database service. È possibile creare ed eseguire rapidamente query su database di documenti, coppie chiave/valore e grafi, sfruttando in ognuno dei casi i vantaggi offerti dalle funzionalità di scalabilità orizzontale e distribuzione globale alla base di Azure Cosmos DB.You can quickly create and query document, key/value, and graph databases, all of which benefit from the global distribution and horizontal scale capabilities at the core of Azure Cosmos DB.

Questa guida di avvio rapido mostra come creare un account, un database di documenti e una raccolta di Azure Cosmos DB tramite il portale di Azure.This quick start demonstrates how to create an Azure Cosmos DB account, document database, and collection using the Azure portal. Si creerà e distribuirà quindi un'app Web di tipo elenco attività basata sul driver .NET MongoDB.You'll then build and deploy a tasks list web app built on the MongoDB .NET driver.

PrerequisitiPrerequisites

Se Visual Studio 2017 non è ancora installato, è possibile scaricare e usare la versione gratuita Visual Studio 2017 Community Edition.If you don’t already have Visual Studio 2017 installed, you can download and use the free Visual Studio 2017 Community Edition. Durante l'installazione di Visual Studio abilitare Sviluppo di Azure.Make sure that you enable Azure development during the Visual Studio setup.

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.If you don't have an Azure subscription, create a free account before you begin.

In alternativa, è possibile provare gratuitamente Microsoft Azure Cosmos DB senza una sottoscrizione di Azure e senza impegnoAlternatively, you can Try Azure Cosmos DB for free without an Azure subscription, free of charge and commitments. oppure usare l'emulatore Azure Cosmos DB per questa esercitazione, con una stringa di connession diOr you can use the Azure Cosmos DB Emulator for this tutorial with a connection string of

mongodb://localhost:C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==@localhost:10255/admin?ssl=true

Creare un account di databaseCreate a database account

  1. In una nuova finestra accedere al portale di Azure.In a new window, sign in to the Azure portal.
  2. Nel menu a sinistra fare clic su Nuovo, quindi su Database e in Azure Cosmos DB fare clic su Crea.In the left menu, click New, click Databases, and then under Azure Cosmos DB, click Create.

    Screenshot del portale di Azure in cui sono evidenziati Altri servizi e Azure Cosmos DB

  3. Nel pannello Nuovo account specificare la configurazione desiderata per l'account Azure Cosmos DB.In the New account blade, specify the desired configuration for the Azure Cosmos DB account.

    Con Azure Cosmos DB è possibile scegliere uno dei quattro modelli di programmazione: Gremlin (graph), MongoDB, SQL (DocumentDB) e Table (key-value).With Azure Cosmos DB, you can choose one of four programming models: Gremlin (graph), MongoDB, SQL (DocumentDB), and Table (key-value).

    In questa guida introduttiva eseguiremo la programmazione in base all'API MongoDB, per cui occorrerà scegliere MongoDB nella compilazione del modulo.In this quick start we'll be programming against the MongoDB API so you'll choose MongoDB as you fill out the form. Tuttavia, se si dispone di dati grafo per un'app social media, dati documento di un'app di catalogo o dati chiave-valore (tabella), tenere presente che Azure Cosmos DB può fornire una piattaforma di servizi di database distribuiti a livello globale e a disponibilità elevata per tutte le applicazioni cruciali.But if you have graph data for a social media app, document data from a catalog app, or key/value (table) data, realize that Azure Cosmos DB can provide a highly available, globally-distributed database service platform for all your mission-critical applications.

    Compilare il pannello Nuovo account usando le informazioni riportate nella tabella come guida.Fill out the New account blade using the information in the table as a guide.

    Screenshot del pannello Nuovo Azure Cosmos DB

    ImpostazioneSetting Valore consigliatoSuggested value DescrizioneDescription
    IDID Valore univocoUnique value Nome univoco scelto per identificare l'account Azure Cosmos DB.A unique name you choose to identify the Azure Cosmos DB account. Poiché alI'ID fornito viene aggiunto documents.azure.com per creare l'URI, usare un ID univoco ma facilmente identificabile.documents.azure.com is appended to the ID you provide to create your URI, so use a unique but identifiable ID. L'ID può contenere solo lettere minuscole, numeri e il carattere '-' e deve avere una lunghezza compresa tra 3 e 50 caratteri.The ID may contain only lowercase letters, numbers, and the '-' character, and must be between 3 and 50 characters.
    APIAPI MongoDBMongoDB L'API determina il tipo di account da creare.The API determines the type of account to create. Azure Cosmos DB offre cinque API per soddisfare le esigenze dell'applicazione, ovvero SQL (database di documenti) Gremlin (grafo), MongoDB, SQL (database di documenti), Tabella di Azure e Cassandra, per ognuna delle quali è attualmente necessario un account separato.Azure Cosmos DB provides five APIs to suits the needs of your application: SQL (document database), Gremlin (graph database), MongoDB (document database), Azure Table, and Cassandra, each which currently require a separate account.

    Selezionare MongoDB perché in questa guida introduttiva si crea un database di documenti su cui è possibile eseguire query usando MongoDB.Select MongoDB because in this quickstart you are creating a document database that is queryable using MongoDB.

    Altre informazioni sull'API MongoDBLearn more about the MongoDB API
    SottoscrizioneSubscription Sottoscrizione in usoYour subscription Sottoscrizione di Azure da usare per l'account Azure Cosmos DB.The Azure subscription that you want to use for the Azure Cosmos DB account.
    Gruppo di risorseResource Group Stesso valore di IDThe same value as ID Nome del nuovo gruppo di risorse per l'account.The new resource group name for your account. Per semplicità si può usare lo stesso nome usato come ID.For simplicity, you can use the same name as your ID.
    LocalitàLocation Area più vicina ai propri utentiThe region closest to your users Posizione geografica in cui ospitare l'account Azure Cosmos DB.The geographic location in which to host your Azure Cosmos DB account. Scegliere la posizione più vicina ai propri utenti per fornire loro l'accesso più rapido possibile ai dati.Choose the location closest to your users to give them the fastest access to the data.
  4. Fare clic su Crea per creare l'account.Click Create to create the account.

  5. Sulla barra degli strumenti fare clic su Notifiche per monitorare il processo di distribuzione.On the toolbar, click Notifications to monitor the deployment process.

    Notifica di distribuzione avviata

  6. Al termine della distribuzione aprire il nuovo account dal riquadro Tutte le risorse.When the deployment is complete, open the new account from the All Resources tile.

    Account Azure Cosmos DB nel riquadro Tutte le risorse

Clonare l'applicazione di esempioClone the sample application

Clonare ora un'app per le API MongoDB da GitHub, impostare la stringa di connessione ed eseguirla.Now let's clone a MongoDB API app from github, set the connection string, and run it. Come si noterà, è facile usare i dati a livello di codice.You'll see how easy it is to work with data programmatically.

  1. Aprire una finestra del terminale Git, ad esempio Git Bash, ed eseguire il comando cd per passare a una directory di lavoro.Open a git terminal window, such as git bash, and cd to a working directory.

  2. Eseguire il comando seguente per clonare l'archivio di esempio.Run the following command to clone the sample repository.

    git clone https://github.com/Azure-Samples/azure-cosmos-db-mongodb-dotnet-getting-started.git
    
  3. Aprire quindi il file della soluzione in Visual Studio.Then open the solution file in Visual Studio.

Esaminare il codiceReview the code

Ecco una breve analisi di ciò che accade nell'app.Let's make a quick review of what's happening in the app. Aprire il file Dal.cs nella directory DAL. Come si noterà, queste righe di codice creano le risorse di Azure Cosmos DB.Open the Dal.cs file under the DAL directory and you'll find that these lines of code create the Azure Cosmos DB resources.

  • Inizializzare il client Mongo.Initialize the Mongo Client.

        MongoClientSettings settings = new MongoClientSettings();
        settings.Server = new MongoServerAddress(host, 10255);
        settings.UseSsl = true;
        settings.SslSettings = new SslSettings();
        settings.SslSettings.EnabledSslProtocols = SslProtocols.Tls12;
    
        MongoIdentity identity = new MongoInternalIdentity(dbName, userName);
        MongoIdentityEvidence evidence = new PasswordEvidence(password);
    
        settings.Credentials = new List<MongoCredential>()
        {
            new MongoCredential("SCRAM-SHA-1", identity, evidence)
        };
    
        MongoClient client = new MongoClient(settings);
    
  • Recuperare il database e la raccolta.Retrieve the database and the collection.

    private string dbName = "Tasks";
    private string collectionName = "TasksList";
    
    var database = client.GetDatabase(dbName);
    var todoTaskCollection = database.GetCollection<MyTask>(collectionName);
    
  • Recuperare tutti i documenti.Retrieve all documents.

    collection.Find(new BsonDocument()).ToList();
    

Aggiornare la stringa di connessioneUpdate your connection string

Tornare ora al portale di Azure per recuperare le informazioni sulla stringa di connessione e copiarle nell'app.Now go back to the Azure portal to get your connection string information and copy it into the app.

  1. Nell'account Azure Cosmos DB nel portale di Azure fare clic su Stringa di connessione nel riquadro di spostamento a sinistra e quindi su Chiavi di lettura/scrittura.In the Azure portal, in your Azure Cosmos DB account, in the left navigation click Connection String, and then click Read-write Keys. Usare i pulsanti di copia sul lato destro dello schermo per copiare nome utente, password e host nel file Dal.cs nel passaggio seguente.You'll use the copy buttons on the right side of the screen to copy the Username, Password, and Host into the Dal.cs file in the next step.

  2. Aprire il file Dal.cs nella directory DAL.Open the Dal.cs file in the DAL directory.

  3. Copiare il valore di nomeutente dal portale (usando il pulsante di copia) e impostarlo come valore di nomeutente nel file Dal.cs.Copy your username value from the portal (using the copy button) and make it the value of the username in your Dal.cs file.

  4. Copiare quindi il valore di host dal portale e impostarlo come valore di host nel file Dal.cs.Then copy your host value from the portal and make it the value of the host in your Dal.cs file.

  5. Infine, copiare il valore di password dal portale e impostarlo come valore di password nel file Dal.cs.Finally copy your password value from the portal and make it the value of the password in your Dal.cs file.

L'app è stata aggiornata con tutte le informazioni necessarie per comunicare con Azure Cosmos DB.You've now updated your app with all the info it needs to communicate with Azure Cosmos DB.

Eseguire l'app WebRun the web app

  1. In Visual Studio fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni e quindi scegliere Gestisci pacchetti NuGet.In Visual Studio, right-click on the project in Solution Explorer and then click Manage NuGet Packages.

  2. Nella casella Sfoglia di NuGet digitare MongoDB.Driver.In the NuGet Browse box, type MongoDB.Driver.

  3. Dai risultati installare la libreria MongoDB.Driver.From the results, install the MongoDB.Driver library. Viene installato il pacchetto MongoDB.Driver, insieme a tutte le dipendenze.This installs the MongoDB.Driver package as well as all dependencies.

  4. Premere CTRL+F5 per eseguire l'applicazione.Click CTRL + F5 to run the application. L'app viene visualizzata nel browser.Your app displays in your browser.

  5. Fare clic su Crea nel browser e creare alcune nuove attività nell'app elenco attività.Click Create in the browser and create a few new tasks in your task list app.

Esaminare i contratti di servizio nel portale di AzureReview SLAs in the Azure portal

La velocità effettiva, lo spazio di archiviazione, la disponibilità, la latenza e la coerenza delle risorse nell'account vengono monitorati nel portale di Azure.The throughput, storage, availability, latency, and consistency of the resources in your account are monitored in the Azure portal. Di seguito vengono illustrate brevemente queste metriche.Let's take a quick look at these metrics.

  1. Fare clic su Metriche nel menu di spostamento.Click Metrics in the navigation menu.

    Metriche nel portale di Azure

  2. Fare clic su ogni scheda per conoscere le metriche offerte da Azure Cosmos DB.Click through each of the tabs so you're aware of the metrics Azure Cosmos DB provides.

    Ogni grafico associato ai contratti di servizio per Azure Cosmos DB contiene una linea che indica le eventuali violazioni dei contratti di servizio.Each chart that's associated with the Azure Cosmos DB Service Level Agreements (SLAs) provides a line that shows if any of the SLAs have been violated. Con questo gruppo di metriche, Azure Cosmos DB garantisce trasparenza nel monitoraggio dei contratti di servizio.Azure Cosmos DB makes monitoring your SLAs transparent with this suite of metrics.

    Gruppo di metriche di Azure Cosmos DB

Pulire le risorseClean up resources

Se non si intende continuare a usare l'app, eliminare tutte le risorse create tramite questa guida di avvio rapido nel portale di Azure eseguendo questi passaggi:If you're not going to continue to use this app, delete all resources created by this quickstart in the Azure portal with the following steps:

  1. Scegliere Gruppi di risorse dal menu a sinistra del portale di Azure e quindi fare clic sul nome della risorsa creata.From the left-hand menu in the Azure portal, click Resource groups and then click the name of the resource you created.
  2. Nella pagina del gruppo di risorse fare clic su Elimina, digitare il nome della risorsa da eliminare nella casella di testo e quindi fare clic su Elimina.On your resource group page, click Delete, type the name of the resource to delete in the text box, and then click Delete.

Passaggi successiviNext steps

In questa guida di avvio rapido si è appreso come creare un account Azure Cosmos DB ed eseguire un'app Web usando le API per MongoDB.In this quickstart, you've learned how to create an Azure Cosmos DB account and run a web app using the API for MongoDB. È ora possibile importare dati aggiuntivi nell'account Cosmos DB.You can now import additional data to your Cosmos DB account.