Esercizio: Creare risorse usando Microsoft .NET SDK v3

Completato

In questo esercizio si creerà un'app console per eseguire le operazioni seguenti in Azure Cosmos DB:

  • collegarsi a un account di Azure Cosmos DB
  • Creazione di un database
  • Creare un contenitore

Prerequisiti

Configurazione

Eseguire le azioni seguenti per preparare Azure e l'ambiente locale per l'esercizio.

Connessione ad Azure

  1. Avviare Visual Studio Code e aprire una finestra del terminale selezionando Terminale nella barra dell'applicazione in alto, quindi selezionando Nuovo terminale.

  2. Accedere ad Azure usando il comando seguente. Verrà aperta una finestra del browser dove sarà possibile scegliere l'account con cui accedere.

    az login
    

Creare risorse in Azure

  1. Creare un gruppo di risorse con le risorse necessarie per questo esercizio. Sostituire <myLocation> con un'area vicina.

    az group create --location <myLocation> --name az204-cosmos-rg
    
  2. Creare l'account di Azure Cosmos DB. Sostituire <myCosmosDBacct> con un nome univoco per identificare l'account di Azure Cosmos DB. Il nome può contenere solo lettere minuscole, numeri e il segno meno (-). Deve avere una lunghezza compresa tra 3 e 31 caratteri. Il completamento di questo comando richiede alcuni minuti.

    az cosmosdb create --name <myCosmosDBacct> --resource-group az204-cosmos-rg
    

    Registrare l'oggetto documentEndpoint visualizzato nella risposta JSON, che verrà usato più avanti nell'esercizio.

  3. Recuperare la chiave primaria per l'account usando il comando riportato di seguito. Registrare primaryMasterKey dai risultati del comando da usare nel codice.

    # Retrieve the primary key
    az cosmosdb keys list --name <myCosmosDBacct> --resource-group az204-cosmos-rg
    

Configurare l'applicazione console

Dopo aver distribuito le risorse necessarie in Azure, il passaggio successivo consiste nel configurare l'applicazione console usando la stessa finestra del terminale in Visual Studio Code.

  1. Creare una cartella per il progetto e passare alla cartella.

    md az204-cosmos
    cd az204-cosmos
    
  2. Creare un'app console .NET.

    dotnet new console
    
  3. Aprire la cartella in Visual Studio Code usando il comando seguente. L'opzione -r apre la cartella senza avviare una nuova finestra di Visual Studio Code.

    code . -r
    
  4. Selezionare il file Program.cs nel riquadro Esplora risorse per aprire il file nell'editor.

Compilare l'app console

È ora di iniziare ad aggiungere i pacchetti e il codice al progetto.

Aggiungere pacchetti e istruzioni using

  1. Aprire il terminale in Visual Studio Code e usare il comando seguente per aggiungere il Microsoft.Azure.Cosmos pacchetto al progetto.

    dotnet add package Microsoft.Azure.Cosmos
    
  2. Eliminare eventuale codice esistente nel file Program.cs e aggiungere l'istruzione using Microsoft.Azure.Cosmos.

    using Microsoft.Azure.Cosmos;
    

Aggiungere codice per connettersi a un account Azure Cosmos DB

  1. Aggiungere il frammento di codice seguente dopo l'istruzione using. Il frammento di codice aggiunge costanti e variabili alla classe e aggiunge alcuni controlli degli errori. Assicurarsi di sostituire i valori segnaposto per EndpointUri e PrimaryKey seguendo le indicazioni nei commenti del codice.

    public class Program
    {
        // Replace <documentEndpoint> with the information created earlier
        private static readonly string EndpointUri = "<documentEndpoint>";
    
        // Set variable to the Primary Key from earlier.
        private static readonly string PrimaryKey = "<your primary key>";
    
        // The Cosmos client instance
        private CosmosClient cosmosClient;
    
        // The database we will create
        private Database database;
    
        // The container we will create.
        private Container container;
    
        // The names of the database and container we will create
        private string databaseId = "az204Database";
        private string containerId = "az204Container";
    
        public static async Task Main(string[] args)
        {
            try
            {
                Console.WriteLine("Beginning operations...\n");
                Program p = new Program();
                await p.CosmosAsync();
    
            }
            catch (CosmosException de)
            {
                Exception baseException = de.GetBaseException();
                Console.WriteLine("{0} error occurred: {1}", de.StatusCode, de);
            }
            catch (Exception e)
            {
                Console.WriteLine("Error: {0}", e);
            }
            finally
            {
                Console.WriteLine("End of program, press any key to exit.");
                Console.ReadKey();
            }
        }
        //The sample code below gets added below this line
    }
    
  2. Sotto il metodo Main aggiungere una nuova attività asincrona denominata CosmosAsync, che crea un'istanza del nuovo CosmosClient e aggiunge codice per chiamare i metodi aggiunti in seguito per creare un database e un contenitore.

    public async Task CosmosAsync()
    {
        // Create a new instance of the Cosmos Client
        this.cosmosClient = new CosmosClient(EndpointUri, PrimaryKey);
    
        // Runs the CreateDatabaseAsync method
        await this.CreateDatabaseAsync();
    
        // Run the CreateContainerAsync method
        await this.CreateContainerAsync();
    }
    

Creazione di un database

Copiare e incollare il metodo CreateDatabaseAsync seguente dopo il metodo CosmosAsync. CreateDatabaseAsync crea un nuovo database con ID az204Database se non esiste già.

private async Task CreateDatabaseAsync()
{
    // Create a new database using the cosmosClient
    this.database = await this.cosmosClient.CreateDatabaseIfNotExistsAsync(databaseId);
    Console.WriteLine("Created Database: {0}\n", this.database.Id);
}

Creazione di un contenitore

Copiare e incollare il metodo CreateContainerAsync sotto il metodo CreateDatabaseAsync.

private async Task CreateContainerAsync()
{
    // Create a new container
    this.container = await this.database.CreateContainerIfNotExistsAsync(containerId, "/LastName");
    Console.WriteLine("Created Container: {0}\n", this.container.Id);
}

Eseguire l'applicazione

  1. Salvare il lavoro e, in un terminale in Visual Studio Code e verificare se sono presenti errori eseguendo il comando dotnet build. Eseguire il comando dotnet run se la compilazione ha esito positivo. La console visualizza l'output seguente.

    Beginning operations...
    
    Created Database: az204Database
    
    Created Container: az204Container
    
    End of program, press any key to exit.
    
  2. Per verificare i risultati, aprire il portale di Azure, passare alla risorsa Azure Cosmos DB e usare Esplora dati per visualizzare il database e il contenitore.

Pulire le risorse di Azure

È ora possibile eliminare in modo sicuro il gruppo di risorse az204-cosmos-rg dall'account eseguendo il comando riportato sotto.

az group delete --name az204-cosmos-rg --no-wait