Exercice : Migrer des charges de travail MongoDB vers Cosmos DB

Effectué

Vous travaillez pour une entreprise d’utilitaires qui dispose de capteurs IoT qui collectent des données de température. Les températures sont consignées dans une base de données MongoDB, ainsi qu’un horodatage. Chaque appareil a 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 utiliserez également une deuxième application qui permet à un utilisateur d’interroger des 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 vous connecter à Cosmos DB et vérifier qu’elles fonctionnent toujours correctement.

Dans cet exercice, vous allez prendre une base de données MongoDB existante et la migrer vers Cosmos DB. Vous allez utiliser Azure Database Migration Service. Vous verrez également comment reconfigurer les applications existantes qui utilisent la base de données MongoDB pour vous connecter à la base de données Cosmos DB à la place.

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 personnel ou simplement observer pour comprendre comment migrer votre base de données.

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

Tout d’abord, vous allez créer la base de données MongoDB pour conserver 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. Dans le portail Azure, sélectionnez Groupes de ressources, puis +Ajouter.

  3. Dans la page Créer un groupe de ressources, entrez les détails suivants :

    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électionner 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 nouvelle page, 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 détails suivants, puis sélectionnez Suivant : Adresses IP :

    Propriété Valeur
    Groupe de ressources mongodbrg
    Nom databasevnet
    Région Sélectionnez le même emplacement que celui 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 sélectionnez 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éseaupar défaut, définissez la plage d’adresses du 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 qu’Azure DDoS Network Protection est défini sur Désactiver et que le pare-feu est défini sur Désactiver. Sélectionnez Vérifier + 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 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 détails suivants :

    Propriété Valeur
    Groupe de ressources mongodbrg
    Nom de la machine virtuelle mongodbserver
    Région Sélectionnez le même emplacement que celui 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
    Ports d’entrée publics 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 paramètres par défaut, puis sélectionnez Suivant : Mise en réseau >.

  8. Dans la page Mise en réseau , entrez les détails suivants :

    Propriété Valeur
    Réseau virtuel databasevnet
    Sous-réseau par défaut (10.0.0.0/28)
    Adresse IP publique (nouveau) mongodbserver-ip
    Groupe de sécurité réseau de la NIC 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 Vérifier + 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 des règles de sécurité entrantes mongodbserver-nsg , 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 Quelconque
    Plages de ports sources *
    Destination Quelconque
    Plages de ports de destination 8080
    Protocole Quelconque
    Action Autoriser
    Priorité 1030
    Nom Mongodb-port
    Description Port que les clients utilisent pour se connecter à MongoDB
  17. Sélectionnez Ajouter.

Remarque

Dans cet exercice, vous allez configurer MongoDB pour utiliser le port 8080. Vous devez uniquement effectuer cette opération en raison de contraintes de sécurité dans cet environnement. Vous utilisez normalement le port MongoDB par défaut de 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. Sur la page mongodbserver-ip , notez l’adresse IP.

  4. Dans la barre d’outils située en haut du portail Azure, sélectionnez Cloud Shell.

  5. Si la boîte de message « Vous n'avez pas de stockage monté » apparaît, sélectionnez Créer un stockage.

  6. Au démarrage de Cloud Shell, dans la liste déroulante 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 <l'adresse IP> par la valeur de l'IP mongodbserver-ip :

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

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

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

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

    sudo apt-get install -y mongodb
    

    L’installation doit suivre les messages relatifs à l’installation, à la préparation et au décompression des packages. L’installation peut prendre quelques minutes.

Configurer la base de données MongoDB

Par défaut, l’instance de base de données Mongo est configurée pour s’exécuter sans authentification. Dans cette tâche, vous allez configurer MongoDB pour établir une liaison à l’interface réseau locale afin qu’elle puisse accepter les connexions à partir d’autres ordinateurs. Vous allez également activer l’authentification et créer le compte d’utilisateur nécessaire pour effectuer la migration. Enfin, vous allez ajouter un compte qu’une application de test peut utiliser pour 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, recherchez le paramètre bind_ip et définissez-le sur 0.0.0.0.

  3. Recherchez le paramètre de port et définissez-le sur 8080.

  4. Pour enregistrer le fichier de configuration, appuyez sur Échap , puis appuyez sur Ctrl + X. Appuyez sur y , puis entrez 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 basculer vers la base de données admin, exécutez cette commande :

    use admin;
    
  8. Pour créer un utilisateur nommé administrateur, exécutez la commande suivante. Vous pouvez entrer la commande sur une ligne ou sur plusieurs lignes pour améliorer la lisibilité. La commande est exécutée lorsque le mongo programme 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 mongo programme, entrez cette commande ;

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

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

    use DeviceData;    
    
  12. Pour créer un utilisateur nommé deviceadmin, que l’application utilisera 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 mongo programme, entrez cette commande ;

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

    sudo service mongodb restart
    
  15. Exécutez la commande suivante pour vérifier que vous pouvez maintenant vous connecter à mongodb en tant qu’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. L’étape suivante consiste à illustrer les exemples d’applications qui peuvent remplir et interroger les données dans cette base de données.

Générer 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 une capture de données de l’appareil de température et l’enregistre dans une base de données MongoDB. Il utilise la bibliothèque MongoDB pour .NET Framework. Le constructeur TemperatureDevice se connecte à la base de données à l’aide des paramètres stockés dans le fichier de configuration de l’application. La méthode RecordTemperatures génère une lecture 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 montre la structure des documents que l’application stocke dans la base de données. Chaque document contient les champs suivants :

    • ID d’objet. Il s’agit du champ « _id » généré par MongoDB pour identifier de manière unique chaque document.
    • ID d’appareil. Chaque appareil a un nombre avec le préfixe « Appareil ».
    • Température enregistrée par l’appareil.
    • Date et heure à laquelle 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é d’adresse sur l’adresse IP du serveur MongoDB que vous avez enregistré précédemment.

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

  8. Enregistrez le fichier et fermez l’éditeur à l’aide de Ctrl + s, puis ctrl + q.

  9. Exécutez la commande suivante pour reconstruire l’application :

    dotnet build
    

    Cela peut prendre environ 5 minutes.

  10. Exécutez l’application :

    dotnet run
    

    L’application simule 100 appareils en cours d’exécution simultanément. Autorisez l’application à s’exécuter pendant quelques minutes, puis appuyez sur Entrée pour l’arrêter.

Générer 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 (à l’aide de la méthode ConnectToDatabase au bas du fichier), puis invite l’utilisateur à entrer un numéro d’appareil. L’application utilise la bibliothèque MongoDB pour .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 lectures enregistrées.
    • 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é d’adresse sur l’adresse IP du serveur MongoDB que vous avez enregistré précédemment.

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

  6. Enregistrez le fichier et fermez l’éditeur à l’aide de Ctrl + s, puis ctrl + q.

  7. Générez et exécutez l’application :

    dotnet build
    dotnet run
    
  8. À l’invite Entrer le numéro d’appareil , 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. Retournez au Portail Azure.

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

  3. Dans la page Nouvelle , 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
    groupe de ressources mongodbrg
    Nom du compte mongodb*nnn*, où nnn est un nombre aléatoire sélectionné par vous
    API (Interface de Programmation d'Applications) API Azure Cosmos DB pour MongoDB
    Cahiers Désactivé
    Emplacement Spécifiez le même emplacement que celui 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éo-redondance Désactiver
    Écritures multirégions Désactiver
    Zones de disponibilité Désactiver
  6. Sélectionnez Vérifier + 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, puis tapez DeviceData
    Provisionner le débit de la base de données sélectionné
    Débit 10000
    Identifiant de la collection Températures
    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 le service de migration de base de données

  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. Il peut être nécessaire de 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 nouvelle page, 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
    groupe de ressources mongodbrg
    Nom du service MongoDBMigration
    Emplacement Sélectionnez le même emplacement que celui utilisé précédemment
    Mode de service Azur
    Niveau tarifaire Standard : 1 vCores
  10. Sélectionnez Suivant : Mise en réseau.

  11. Dans la page Mise en 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 environ 10 minutes.

Créer et exécuter un 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é Valeur
    Nom du projet MigrateTemperatureData
    Type du serveur source MongoDB
    Type de 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 l’activité.

  7. Au démarrage de l’Assistant Migration, sur la page des détails de la source, entrez les détails suivants :

    Propriété Valeur
    Mode Mode standard
    Nom du serveur source Spécifiez la valeur de l’adresse IP mongodbserver-ip que vous avez enregistrée précédemment.
    Port du serveur 8080
    Nom d'utilisateur administrateur
    Mot de passe Pa55w.rd
    Demande de SSL désélectionné
  8. Sélectionnez Suivant : Sélectionnez la cible.

  9. Dans la page Sélectionner la cible , entrez les détails suivants :

    Propriété Valeur
    Mode Sélectionner la cible Cosmos DB
    Sélectionner le nom de la base de données Comos mongodb*nnn*
    Chaîne de connexion Accepter 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 des paramètres de base de données , entrez les détails suivants :

    Propriété Valeur
    Base de données source DeviceData
    Base de données cible DeviceData
    Débit (RU/s) 1 000
    Nettoyer les collections Effacez ce champ
  12. Sélectionnez Suivant : Paramètre de collecte.

  13. Sur la page Réglage de Collection, sélectionnez la flèche déroulante de la base de données DeviceData, entrez les détails suivants :

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

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

  16. Dans la page de migration mongodb , 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 réussi

  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 , faites défiler la liste des documents. Vous devez voir un ID de document (_id) et la clé de partition (/deviceID) pour chaque document.

  6. Sélectionnez n’importe quel document. Vous devez voir les détails du document affiché. Un document classique ressemble à ceci :

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

  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 de la collection Temperatures. Il doit correspondre au nombre signalé par l’Assistant Migration.

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

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

    Cette commande extrait et affiche les documents de l’appareil 99.

Reconfigurer et exécuter des applications existantes pour utiliser Cosmos DB

La dernière étape consiste à reconfigurer vos applications MongoDB existantes pour se connecter à Cosmos DB et à vérifier qu’elles fonctionnent toujours. Cela vous oblige à 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 nnn mongodb, sous Paramètres, sélectionnez Chaîne de connexion.

  2. Dans la page chaîne de connexionmongodb nnn, notez les paramètres suivants :

    • Hébergeur
    • Nom d’utilisateur
    • Mot de passe principal
  3. Revenez à la fenêtre Cloud Shell (reconnectez-vous si la session a expiré) et passez 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 Paramètres de MongoDB du fichier, commentez les paramètres existants.

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

    Réglage Valeur
    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

    Le fichier terminé doit ressembler à ceci :

    <?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 jusqu’à la méthode ConnectToDatabase .

  10. Commentez la ligne qui définit les informations d’identification pour la connexion à MongoDB et décommentez les 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’a pas utilisé de connexion SSL. Cosmos DB utilise toujours SSL.

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

  12. Regénérer et exécuter l’application :

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

Améliorer les performances des requêtes dans Cosmos DB

Cosmos DB vous permet d’ajouter d’autres index pour améliorer les performances 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. Sur la 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.

    Capture d’écran montrant l’ajout d’une stratégie d’indexation Cosmos DB.

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

  5. Sous _id ajoutez un nouvel index, entrez deviceID pour la définition, puis sélectionnez Champ unique pour le type.

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

  7. Revenez à votre cloud Shell pour réessayer votre requête et notez la réponse améliorée dans votre application.

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

Vous avez correctement migré une base de données MongoDB vers Cosmos DB et reconfiguré une application MongoDB existante pour vous connecter à 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 qui restent actives 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