Exercice : Migrer des charges de travail MongoDB vers Cosmos DB

Effectué

Vous travaillez pour une société de services collectifs qui utilise des capteurs IoT pour recueillir des données de température. Les températures sont consignées dans une base de données MongoDB avec un timestamp. Chaque appareil possède un ID unique. Vous allez exécuter une application MongoDB qui simule ces appareils et stocke les données dans la base de données. Vous allez aussi utiliser une deuxième application qui permet à un utilisateur d’interroger les informations statistiques sur chaque appareil. Après avoir migré la base de données de MongoDB vers Cosmos DB, vous allez configurer les deux applications pour qu’elles se connectent à Cosmos DB et vérifier qu’elles fonctionnent toujours correctement.

Dans cet exercice, vous utiliserez une base de données MongoDB existante et la migrerez vers Cosmos DB. Vous utiliserez Azure Database Migration Service. Vous verrez également comment reconfigurer les applications existantes qui utilisent la base de données MongoDB afin qu’elles se connectent à la base de données Cosmos DB.

Important

Azure Data Migration Service n’est pas pris en charge dans l’environnement de bac à sable (sandbox) Azure gratuit. Vous pouvez effectuer ces étapes dans votre propre abonnement ou simplement observer pour comprendre comment migrer votre base de données.

Créer une base de données MongoDB dans Azure

Pour commencer, vous allez créer la base de données MongoDB qui va accueillir les données capturées à partir des appareils de température.

Créer un groupe de ressources et un réseau virtuel

  1. Dans un navigateur web, ouvrez un nouvel onglet et accédez au portail Azure.

  2. Sur le portail Azure, sélectionnez Groupes de ressources, puis + Ajouter.

  3. Dans la page Créer un groupe de ressources, entrez les informations suivantes :

    Propriété Valeur
    Abonnement <votre-abonnement>
    Groupe de ressources mongodbrg
    Région Sélectionnez la localisation la plus proche.
  4. Sélectionnez Vérifier + créer, puis sélectionnez Créer. Attendez que le groupe de ressources soit créé.

  5. Dans le menu du portail Azure, sélectionnez + Créer une ressource.

  6. Dans la page Nouveau, dans la zone Rechercher dans la Place de marché, tapez Réseau virtuel, puis appuyez sur Entrée.

  7. Dans la page Réseau virtuel, sélectionnez Créer.

  8. Dans la page Créer un réseau virtuel, entrez les informations suivantes, puis sélectionnez Suivant : Adresses IP :

    Propriété Valeur
    Groupe de ressources mongodbrg
    Nom databasevnet
    Région Sélectionnez l’emplacement que vous avez spécifié pour le groupe de ressources
  9. Dans la page Adresses IP, définissez l’Espace d’adressage IPv4 sur 10.0.0.0/24.

  10. Sélectionnez le sous-réseau par défaut, puis Supprimer le sous-réseau.

  11. Sélectionnez + Ajouter un sous-réseau. Dans le volet Ajouter un sous-réseau, définissez le Nom du sous-réseau sur par défaut, définissez la Plage d’adresses de sous-réseau sur 10.0.0.0/28, puis sélectionnez Ajouter.

  12. Dans la page Adresses IP, sélectionnez Suivant : Sécurité.

  13. Dans la page Sécurité, vérifiez que la protection réseau Azure DDoS est définie sur Désactiver et que le Pare-feu est défini sur Désactiver. Sélectionnez Revoir + créer.

  14. Dans la page Créer un réseau virtuel, sélectionnez Créer. Attendez que le réseau virtuel soit créé avant de continuer.

Créer un serveur de base de données MongoDB

  1. Dans le menu du portail Azure, sélectionnez + Créer une ressource.

  2. Dans la zone de texte Rechercher dans la Place de marché, tapez Ubuntu, puis appuyez sur Entrée.

  3. Dans la page Place de marché, sélectionnez Ubuntu Server 18.04 LTS.

  4. Dans la page Ubuntu Server 18.04 LTS, sélectionnez Créer.

  5. Dans la page Créer une machine virtuelle, entrez les informations suivantes :

    Propriété Valeur
    Groupe de ressources mongodbrg
    Nom de la machine virtuelle mongodbserver
    Région Sélectionnez l’emplacement que vous avez spécifié pour le groupe de ressources
    Options de disponibilité Aucune redondance de l’infrastructure requise
    Image Ubuntu Server 18.04 LTS - Gen1
    Instance Azure Spot Désactivé
    Taille Standard A1_v2
    Type d'authentification Mot de passe
    Nom d’utilisateur azureuser
    Mot de passe Pa55w.rdPa55w.rd
    Confirmer le mot de passe Pa55w.rdPa55w.rd
    Aucun port d’entrée public Autoriser les ports sélectionnés
    Sélectionner des ports d’entrée SSH (22)
  6. Sélectionnez Suivant : Disques>.

  7. Dans la page Disques, conservez les valeurs par défaut des paramètres, puis sélectionnez Suivant : Réseau>.

  8. Dans la page Réseau, entrez les informations suivantes :

    Propriété Valeur
    Réseau virtuel databasevnet
    Subnet valeur par défaut (10.0.0.0/28)
    Adresse IP publique (nouveau) mongodbserver-ip
    Groupe de sécurité réseau de la carte réseau Avancé
    Configurer un groupe de sécurité réseau (nouveau) mongodbserver-nsg
    Mise en réseau accélérée Désactivé
    Équilibrage de la charge Désactivé
  9. Sélectionnez Revoir + créer>.

  10. Dans la page de validation, sélectionnez Créer.

  11. Attendez que la machine virtuelle soit déployée avant de continuer.

  12. Dans le menu du portail Azure, sélectionnez Toutes les ressources.

  13. Dans la page Toutes les ressources, sélectionnez mongodbserver-nsg.

  14. Dans la page mongodbserver-nsg, sous Paramètres, sélectionnez Règles de sécurité de trafic entrant.

  15. Dans la page mongodbserver-nsg - Règles de sécurité de trafic entrant, sélectionnez + Ajouter.

  16. Dans le volet Ajouter une règle de sécurité de trafic entrant, entrez les informations suivantes :

    Propriété Valeur
    Source Aucune
    Source port ranges *
    Destination Any
    Plages de ports de destination 8080
    Protocol Any
    Action Autoriser
    Priority 1030
    Nom Mongodb-port
    Description Port utilisé par les clients pour se connecter à MongoDB
  17. Sélectionnez Ajouter.

Notes

Dans cet exercice, vous allez configurez MongoDB pour qu’il utilise le port 8080. Ce sont les contraintes de sécurité de cet environnement qui imposent de le faire. Normalement, vous utiliseriez le port MongoDB par défaut 27017.

Installer MongoDB

  1. Dans le menu du portail Azure, sélectionnez Toutes les ressources.

  2. Dans la page Toutes les ressources, sélectionnez mongodbserver-ip.

  3. Dans la page mongodbserver-ip, notez l’Adresse IP.

  4. Dans la barre d’outils situé dans la partie supérieure du portail Azure, sélectionnez Cloud Shell.

  5. Si la boîte de message Vous n’avez aucun stockage monté s’affiche, sélectionnez Créer l’espace de stockage.

  6. Une fois Cloud Shell démarré, dans la liste déroulante située au-dessus de la fenêtre Cloud Shell, sélectionnez Bash.

  7. Dans Cloud Shell, entrez la commande suivante pour vous connecter à la machine virtuelle mongodbserver. Remplacez <ip address> par la valeur d’adresse IP de mongodbserver-ip :

    ssh azureuser@<ip address>
    
  8. À l’invite, tapez yes pour poursuivre la connexion.

  9. Entrez le mot de passe Pa55w.rdPa55w.rd.

  10. Pour recharger la base de données de packages, entrez cette commande :

    sudo apt-get update
    
  11. Pour installer MongoDB, entrez cette commande :

    sudo apt-get install -y mongodb
    

    L’installation doit se poursuivre avec des messages sur l’installation, la préparation et la décompression des packages. L’installation peut prendre quelques minutes.

Configurer la base de données MongoDB

Par défaut, l’instance MongoDB est configurée pour s’exécuter sans authentification. Dans cette tâche, vous allez configurer la liaison de MongoDB à l’interface réseau locale afin d’accepter les connexions d’autres ordinateurs. Vous allez aussi activer l’authentification et créer le compte d’utilisateur nécessaire pour effectuer la migration. Enfin, vous ajouterez un compte pour permettre à une application de test d’interroger la base de données.

  1. Pour ouvrir le fichier de configuration MongoDB, exécutez cette commande :

    sudo nano /etc/mongodb.conf
    
  2. Dans le fichier, repérez le paramètre bind_ip, puis définissez-le sur 0.0.0.0.

  3. Repérez le paramètre port, puis définissez-le sur 8080.

  4. Pour enregistrer le fichier de configuration, appuyez sur Échap, puis sur Ctrl+X. Appuyez sur y, puis sur Entrée pour enregistrer la mémoire tampon modifiée.

  5. Pour redémarrer le service MongoDB et appliquer vos modifications, entrez cette commande :

    sudo service mongodb restart
    
  6. Pour vous connecter au service MongoDB, entrez cette commande :

    mongo --host 127.0.0.1:8080
    
  7. À l’invite >, pour passer à la base de données >, exécutez cette commande :

    use admin;
    
  8. Pour créer un nouvel utilisateur nommé administrator, exécutez cette commande. Vous pouvez entrer cette commande sur une seule ligne ou sur plusieurs lignes pour une meilleure lisibilité. La commande s’exécute lorsque le programme mongo atteint le point-virgule :

    db.createUser(
        {
            user: "administrator",
            pwd: "Pa55w.rd",
            roles: [
                { role: "userAdminAnyDatabase", db: "admin" },
                { role: "clusterMonitor", db:"admin" },
                "readWriteAnyDatabase"
            ]
        }
    );
    
  9. Pour quitter le programme mongo, entrez cette commande :

    exit;
    
  10. Pour vous connecter à MongoDB avec le nouveau compte d’administrateur, exécutez cette commande :

    mongo admin -u "administrator" -p "Pa55w.rd" --host 127.0.0.1:8080
    
  11. Pour passer à la base de données DeviceData, exécutez cette commande :

    use DeviceData;    
    
  12. Pour créer un utilisateur nommé deviceadmin, dont se servira l’application pour se connecter à la base de données, exécutez cette commande :

    db.createUser(
        {
            user: "deviceadmin",
            pwd: "Pa55w.rd",
            roles: [ { role: "readWrite", db: "DeviceData" } ]
        }
    );
    
  13. Pour quitter le programme mongo, entrez cette commande :

    exit;
    
  14. Exécutez la commande suivante pour redémarrer le service mongodb. Vérifiez que le service redémarre sans message d’erreur :

    sudo service mongodb restart
    
  15. Exécutez la commande suivante pour vérifier que vous pouvez à présent vous connecter à mongodb sous le nom d’utilisateur deviceadmin :

    mongo DeviceData -u "deviceadmin" -p "Pa55w.rd" --host 127.0.0.1:8080
    
  16. À l’invite >, exécutez la commande suivante pour quitter l’interpréteur de commandes mongo :

    exit;
    
  17. À l’invite bash, exécutez la commande suivante pour vous déconnecter du serveur MongoDB et revenir à Cloud Shell :

    exit
    

Remplir et interroger la base de données MongoDB

Vous avez maintenant créé un serveur et une base de données MongoDB. La prochaine étape consiste à présenter les exemples d’applications qui peuvent remplir cette base de données de données et les interroger.

Créer et exécuter une application pour remplir la base de données MongoDB

  1. Dans Azure Cloud Shell, exécutez la commande suivante pour télécharger l’exemple de code :

    git clone https://github.com/MicrosoftLearning/DP-060T00A-Migrating-your-Database-to-Cosmos-DB migration-workshop-apps
    
  2. Accédez au dossier migration-workshop-apps/MongoDeviceDataCapture/MongoDeviceCapture :

    cd ~/migration-workshop-apps/MongoDeviceDataCapture/MongoDeviceDataCapture
    
  3. Utilisez l’éditeur de code pour examiner le fichier TemperatureDevice.cs :

    code TemperatureDevice.cs
    

    Le code de ce fichier contient une classe nommée TemperatureDevice qui simule un appareil de température capturant des données et les enregistrant dans une base de données MongoDB. Elle utilise la bibliothèque MongoDB pour le .NET Framework. Le constructeur TemperatureDevice se connecte à la base de données en utilisant les paramètres stockés dans le fichier de configuration de l’application. La méthode RecordTemperatures génère un relevé et l’écrit dans la base de données.

  4. Fermez l’éditeur de code, puis ouvrez le fichier ThermometerReading.cs :

    code ThermometerReading.cs
    

    Ce fichier présente la structure des documents que l’application stocke dans la base de données. Le document contient les champs suivants :

    • Un ID d’objet. Il s’agit du champ « _id » généré par MongoDB pour identifier de manière unique chaque document.
    • Un ID d’appareil. À chaque appareil correspond un numéro associé au préfixe « Device ».
    • La température enregistrée par l’appareil.
    • La date et l’heure auxquelles la température a été enregistrée.
  5. Fermez l’éditeur de code, puis ouvrez le fichier App.config :

    code App.config
    

    Ce fichier contient les paramètres de connexion à la base de données MongoDB.

  6. Définissez la valeur de la clé Address sur l’adresse IP du serveur MongoDB que vous avez inscrit précédemment.

  7. Remplacez le port utilisé par l’application par 8080.

  8. Enregistrez le fichier et fermez l’éditeur en utilisant Ctrl + s et Ctrl + q.

  9. Exécutez la commande suivante pour regénérer l’application :

    dotnet build
    

    Cette opération peut prendre près de cinq minutes.

  10. Exécutez l’application :

    dotnet run
    

    L’application simule l’exécution simultanée de 100 appareils. Laissez l’application s’exécuter pendant deux ou trois minutes, puis appuyez sur Entrée pour l’arrêter.

Créer et exécuter une autre application pour interroger la base de données MongoDB

  1. Accédez au dossier DP160T00A-Migrating-your-Database-to-Cosmos-DB/MongoDeviceDataCapture/DeviceDataQuery :

    cd ~/migration-workshop-apps/MongoDeviceDataCapture/DeviceDataQuery
    

    Ce dossier contient une autre application que vous pouvez utiliser pour analyser les données capturées par chaque appareil.

  2. Utilisez l’éditeur de code pour examiner le fichier Program.cs :

    code Program.cs
    

    L’application se connecte à la base de données (en utilisant la méthode ConnectToDatabase au bas du fichier) et invite l’utilisateur à entrer un numéro d’appareil. L’application se sert de la bibliothèque MongoDB pour le .NET Framework pour créer et exécuter un pipeline d’agrégation qui calcule les statistiques suivantes pour l’appareil spécifié :

    • Nombre de relevés enregistrés.
    • Température moyenne enregistrée.
    • Relevé le plus bas.
    • Relevé le plus haut.
    • Dernier relevé.
  3. Fermez l’éditeur de code, puis ouvrez le fichier App.config :

    code App.config
    
  4. Définissez la valeur de la clé Address sur l’adresse IP du serveur MongoDB que vous avez inscrit précédemment.

  5. Remplacez le port utilisé par l’application par 8080.

  6. Enregistrez le fichier et fermez l’éditeur en utilisant Ctrl + s et Ctrl + q.

  7. Créez et exécutez l’application :

    dotnet build
    dotnet run
    
  8. À l’invite Enter Device Number, entrez une valeur comprise entre 0 et 99. L’application interroge la base de données, calcule les statistiques et affiche les résultats. Appuyez sur Q pour quitter l’application.

Migrer la base de données MongoDB vers Cosmos DB

L’étape suivante consiste à prendre la base de données MongoDB et à la transférer vers Cosmos DB.

Créer un compte et une base de données Cosmos

  1. Revenez au portail Azure.

  2. Dans le menu, sélectionnez + Créer une ressource.

  3. Dans la page Nouveau, dans la zone Rechercher dans la Place de marché, tapez *Azure Cosmos DB, puis appuyez sur Entrée.

  4. Dans la page Azure Cosmos DB, sélectionnez Créer.

  5. Dans la page Créer un compte Azure Cosmos DB, entrez les paramètres suivants :

    Propriété Valeur
    Resource group mongodbrg
    Nom du compte mongodb*nnn*, où nnn est un nombre que vous avez choisi au hasard
    API Azure Cosmos DB pour l’API MongoDB
    Notebooks Désactivé
    Emplacement Indiquez l’emplacement que vous avez utilisé pour le serveur MongoDB et le réseau virtuel
    Mode de capacité Débit approvisionné
    Appliquer la remise de niveau gratuit Appliquer
    Type de compte Hors production
    Version 3.6
    Géoredondance Désactiver
    Écritures multirégions Désactiver
    Zones de disponibilité Désactiver
  6. Sélectionnez Revoir + créer.

  7. Dans la page de validation, sélectionnez Créer et attendez que le compte Cosmos DB soit déployé.

  8. Dans le menu du portail Azure, sélectionnez Toutes les ressources, puis sélectionnez votre nouveau compte Cosmos DB (mongodbnnn).

  9. Dans la page mongodbnnn, sélectionnez Explorateur de données.

  10. Dans le volet Explorateur de données, sélectionnez Nouvelle collection.

  11. Dans le volet Ajouter une collection, spécifiez les paramètres suivants :

    Propriété Valeur
    ID de base de données Sélectionnez Créer nouveau, puis tapez DeviceData
    Approvisionner le débit d’une base de données sélectionné
    Débit 10000
    ID de la collection Temperatures
    Capacité de stockage Illimité
    Clé de partition deviceID
    La taille de ma clé de partition est supérieure à 100 octets laissez désélectionné
    Créer un index générique sur tous les champs laissez désélectionné
    Magasin analytique Désactivé
  12. Sélectionnez OK.

Créer l’instance Database Migration Service

  1. Revenez au portail Azure.

  2. Cliquez successivement sur Tous les services, sur Abonnements, puis sur votre abonnement.

  3. Dans la page de votre abonnement, sous Paramètres, cliquez sur Fournisseurs de ressources.

  4. Dans la zone Filtrer par nom, tapez DataMigration, puis cliquez sur Microsoft.DataMigration.

  5. Si Microsoft.DataMigration n’est pas inscrit, cliquez sur Inscrire, puis attendez que l’État passe à Inscrit. Vous devrez peut-être cliquer sur Actualiser pour faire apparaître le changement d’état.

  6. Dans le menu du portail Azure, sélectionnez + Créer une ressource.

  7. Dans la page Nouveau, dans la zone Rechercher dans la Place de marché, tapez Azure Database Migration Service, puis appuyez sur Entrée.

  8. Dans la page Azure Database Migration Service, sélectionnez Créer.

  9. Dans la page Créer un service de migration, entrez les paramètres suivants :

    Propriété Valeur
    Resource group mongodbrg
    Nom du service MongoDBMigration
    Emplacement Sélectionnez le même emplacement que celui utilisé précédemment
    Mode de service Microsoft Azure
    Niveau de tarification Standard : 1 vCores
  10. Sélectionnez Suivant : Réseau.

  11. Dans la page Réseau, sélectionnez databasevnet/default, puis sélectionnez Vérifier + créer.

  12. Sélectionnez Créer et attendez que le service soit déployé avant de continuer. Cette opération peut prendre près de 10 minutes.

Créer et exécuter un nouveau projet de migration

  1. Dans le menu du portail Azure, sélectionnez Groupes de ressources.

  2. Dans la fenêtre Groupes de ressources, sélectionnez mongodbrg.

  3. Dans la fenêtre mongodbrg, sélectionnez MongoDBMigration.

  4. Dans la page MongoDBMigration, sélectionnez + Nouveau projet de migration.

  5. Dans la page Nouveau projet de migration, entrez les paramètres suivants :

    Propriété Value
    Nom du projet MigrateTemperatureData
    Type du serveur source MongoDB
    Type du serveur cible Cosmos DB (API MongoDB)
    Choisir un type d’activité Migration de données hors connexion
  6. Sélectionnez Créer et exécuter une activité.

  7. Au démarrage de l’Assistant Migration, dans la page Détails de la source, entrez les informations suivantes :

    Propriété Value
    Mode Mode standard
    Nom du serveur source Indiquez la valeur d’adresse IP de mongodbserver-ip que vous avez inscrite précédemment
    Port du serveur 8080
    User Name administrator
    Mot de passe Pa55w.rd
    Exiger SSL désélectionné
  8. Sélectionnez Suivant : Sélectionner la cible.

  9. Dans la page Sélectionner une cible, entrez les informations suivantes :

    Propriété Value
    Mode Sélectionner la cible Cosmos DB
    Sélectionner le nom Cosmos DB mongodb*nnn*
    Chaîne de connexion Acceptez la chaîne de connexion générée pour votre compte Cosmos DB
  10. Sélectionnez Suivant : Paramètre de base de données.

  11. Dans la page Paramètre de base de données, entrez les informations suivantes :

    Propriété Value
    Base de données source DeviceData
    Base de données cible DeviceData
    Débit (RU/s) 1 000
    Nettoyer les collections Décochez cette case
  12. Sélectionnez Suivant : Paramètre de collection.

  13. Dans la page Paramètre de collection, sélectionnez la flèche déroulante pour la base de données DeviceData, puis entrez les informations suivantes :

    Propriété Valeur
    Nom Temperatures
    Collection cible Temperatures
    Débit (RU/s) 1 000
    Clé de partition deviceID
    Unique Laisser vide
  14. Sélectionnez Suivant : Récapitulatif de la migration.

  15. Dans la page Récapitulatif de la migration, dans le champ Nom de l’activité, entrez mongodb-migration, puis sélectionnez Démarrer la migration.

  16. Dans la page mongodb-migration, sélectionnez Actualiser toutes les 30 secondes jusqu’à ce que la migration soit terminée. Notez le nombre de documents traités.

Vérifier que la migration a abouti

  1. Dans le menu du portail Azure, sélectionnez Toutes les ressources.

  2. Dans la page Toutes les ressources, sélectionnez mongodbnnn.

  3. Dans la page mongodb*nnn, sélectionnez Explorateur de données.

  4. Dans le volet Explorateur de données, développez la base de données DeviceData, développez la collection Temperatures, puis sélectionnez Documents.

  5. Dans le volet Documents, parcourez la liste de documents. Vous devez y trouver un ID de document (_id) et la clé de partition (/deviceID) pour chaque document.

  6. Sélectionnez un document. Les détails du document doivent s’afficher. Voici comment se présente un document :

    {
        "_id" : ObjectId("5ce8104bf56e8a04a2d0929a"),
        "deviceID" : "Device 83",
        "temperature" : 19.65268837271849,
        "time" : 636943091952553500
    }
    
  7. Dans la barre d’outils du volet Explorateur de documents, sélectionnez Nouveau shell.

  8. Dans le volet Shell 1, à l’invite >, entrez la commande suivante, puis appuyez sur Entrée :

    db.Temperatures.count()
    

    Cette commande affiche le nombre de documents présents dans la collection Temperatures. Il doit correspondre au nombre indiqué par l’Assistant Migration.

  9. Entrez la commande suivante, puis appuyez sur Entrée :

    db.Temperatures.find({deviceID: "Device 99"})
    

    Cette commande récupère et affiche les documents pour Device 99.

Reconfigurer les applications existantes pour qu’elles utilisent Cosmos DB et les exécuter

La dernière étape consiste à reconfigurer vos applications MongoDB existantes pour les connecter à Cosmos DB et à vérifier qu’elles fonctionnent toujours. Vous allez être amené à modifier la façon dont vos applications se connectent à la base de données, mais la logique de vos applications doit rester inchangée.

  1. Dans le volet mongodbnnn, sous Paramètres, sélectionnez Chaîne de connexion.

  2. Dans la page Chaîne de connexion mongodbnnn, notez les paramètres suivants :

    • Host
    • Nom d’utilisateur
    • Mot de passe principal
  3. Revenez à la fenêtre Cloud Shell (reconnectez-vous si la session a expiré), puis accédez au dossier migration-workshop-apps/MongoDeviceDataCapture/DeviceDataQuery :

    cd ~/migration-workshop-apps/MongoDeviceDataCapture/DeviceDataQuery
    
  4. Ouvrez le fichier App.config dans l’éditeur de code :

    code App.config
    
  5. Dans la section Settings for MongoDB du fichier, commentez les paramètres existants.

  6. Supprimez les marques de commentaire des paramètres de la section Settings for Cosmos DB Mongo API et définissez les valeurs de ces paramètres comme suit :

    Paramètre Value
    Adresse HÔTE de la page Chaîne de connexion mongodbnnn
    Port PORT de la page Chaîne de connexion mongodbnnn
    Nom d’utilisateur NOM D’UTILISATEUR de la page Chaîne de connexion mongodbnnn
    Mot de passe MOT DE PASSE PRINCIPAL de la page Chaîne de connexion mongodbnnn

    Une fois complété, le fichier doit se présenter comme suit :

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <appSettings>
            <add key="Database" value="DeviceData" />
            <add key="Collection" value="Temperatures" />
    
            <!-- Settings for MongoDB 
            <add key="Address" value="nn.nn.nn.nn" />
            <add key="Port" value="27017" />
            <add key="Username" value="deviceadmin" />
            <add key="Password" value="Pa55w.rd" />
            End of settings for MongoDB -->
    
            <!-- Settings for CosmosDB Mongo API -->
            <add key="Address" value="mongodbnnn.documents.azure.com"/>
            <add key="Port" value="10255"/>
            <add key="Username" value="mongodbnnn"/>
            <add key="Password" value="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=="/>
            <!-- End of settings for CosmosDB Mongo API -->
        </appSettings>
    </configuration>
    
  7. Enregistrez le fichier, puis fermez l’éditeur de code.

  8. Ouvrez le fichier Program.cs à l’aide de l’éditeur de code.

    code Program.cs
    
  9. Faites défiler l’écran jusqu’à la méthode ConnectToDatabase.

  10. Commentez la ligne qui définit les informations d’identification pour la connexion à MongoDB, puis supprimez les marques de commentaire des instructions qui spécifient les informations d’identification pour la connexion à Cosmos DB. Le code doit se présenter comme ceci :

    // Connect to the MongoDB database
    MongoClient client = new MongoClient(new MongoClientSettings
    {
        Server = new MongoServerAddress(address, port),
        ServerSelectionTimeout = TimeSpan.FromSeconds(10),
    
        //
        // Credential settings for MongoDB
        //
    
        // Credential = MongoCredential.CreateCredential(database, azureLogin.UserName, azureLogin.SecurePassword),
    
        //
        // Credential settings for CosmosDB Mongo API
        //
    
        UseTls = true,
        Credential = new MongoCredential("SCRAM-SHA-1", new MongoInternalIdentity(database, azureLogin.UserName), new PasswordEvidence(azureLogin.SecurePassword))
    
        // End of Mongo API settings
    });
    

    Ces modifications sont nécessaires, car la base de données MongoDB d’origine n’utilisait pas de connexion SSL. Cosmos DB utilise toujours SSL.

  11. Enregistrez le fichier, puis fermez l’éditeur de code.

  12. Regénérez l’application et exécutez-la :

    dotnet build
    dotnet run
    
  13. À l’invite Enter Device Number, entrez un numéro d’appareil compris entre 0 et 99. L’application doit s’exécuter exactement comme auparavant, sauf que cette fois-ci, elle utilise les données contenues dans la base de données Cosmos DB.

Améliorer le niveau de performance des requêtes dans Cosmos DB

Cosmos DB vous permet d’ajouter des index supplémentaires pour améliorer le niveau de performance des requêtes. Comme nous agrégeons sur deviceID, l’ajout de ce champ en tant qu’index permet d’accélérer les requêtes.

  1. Revenez au portail Azure.

  2. À gauche, sélectionnez Explorateur de données.

  3. Dans le volet Explorateur de données, développez la base de données DeviceData, développez la collection Temperatures, puis sélectionnez Paramètres.

    Screenshot showing adding a Cosmos DB indexing policy.

  4. Sélectionnez Stratégie d’indexation.

  5. Sous _id, ajoutez un nouvel index, entrez deviceID pour Définition, puis sélectionnez Champ unique pour Type.

  6. Sélectionnez Enregistrer pour ajouter le nouvel index.

  7. Revenez à Cloud Shell pour réexécuter votre requête, puis remarquez la réponse améliorée de votre application.

  8. Testez l’application avec d’autres numéros d’appareils. Entrez Q pour terminer.

Vous avez migré une base de données MongoDB vers Cosmos DB, puis reconfiguré une application MongoDB existante pour qu’elle se connecte à la nouvelle base de données Cosmos DB.

Nettoyer les ressources que vous avez créées

Important

Si vous avez effectué ces étapes dans votre propre abonnement, vous pouvez supprimer les ressources individuellement ou supprimer le groupe de ressources, c’est-à-dire le jeu complet de ressources. Les ressources laissées en cours d’exécution peuvent vous coûter de l’argent.

  1. Dans Cloud Shell, exécutez cette commande pour supprimer le groupe de ressources :

    az group delete --name mongodbrg