Quickstart: Een bestaande MongoDB Node.js-web-app migreren naar Azure Cosmos DBQuickstart: Migrate an existing MongoDB Node.js web app to Azure Cosmos DB

Azure Cosmos DB is de globaal gedistribueerde multimodel-databaseservice van Microsoft.Azure Cosmos DB is Microsoft’s globally distributed multi-model database service. U kunt snel databases maken van documenten, sleutel/waarde-paren en grafieken en hier query's op uitvoeren. Deze databases genieten allemaal het voordeel van de globale distributie en horizontale schaalmogelijkheden die ten grondslag liggen aan 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 Cosmos DB.

In deze snelstart ziet u hoe u een bestaande, in Node.js geschreven MongoDB-app kunt gebruiken en verbinden met uw Cosmos-database, die MongoDB-client ondersteunt.This quickstart demonstrates how to use an existing MongoDB app written in Node.js and connect it to your Cosmos database, which supports MongoDB client. Het is met andere woorden duidelijk voor de toepassing dat de gegevens worden opgeslagen in een Cosmos-database.In other words, it is transparent to the application that the data is stored in a Cosmos database.

Als u klaar bent, beschikt u over een MEAN-toepassing (MongoDB, Express, Angular en Node.js) die wordt uitgevoerd op Cosmos DB.When you are done, you will have a MEAN application (MongoDB, Express, Angular, and Node.js) running on Cosmos DB.

MEAN.js-app uitgevoerd in Azure App Service

Azure Cloud Shell gebruikenUse Azure Cloud Shell

Azure Cloud Shell, een interactieve shell-omgeving die u via uw browser kunt gebruiken als host fungeert voor Azure.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Cloudshell kunt u een bash of PowerShell om te werken met Azure-services.Cloud Shell lets you use either bash or PowerShell to work with Azure services. U kunt de vooraf geïnstalleerde Cloud Shell-opdrachten gebruiken om uit te voeren van de code in dit artikel zonder dat u hoeft te installeren op uw lokale omgeving.You can use the Cloud Shell pre-installed commands to run the code in this article without having to install anything on your local environment.

Azure Cloud Shell starten:To launch Azure Cloud Shell:

OptieOption Voorbeeld of de koppelingExample/Link
Selecteer Nu proberen in de rechterbovenhoek van een codeblok.Select Try It in the upper-right corner of a code block. Selecteren uitproberen niet automatisch de code kopiëren naar de Cloud Shell.Selecting Try It doesn't automatically copy the code to Cloud Shell. Voorbeeld van proberen voor Azure Cloudshell
Ga naar https://shell.azure.com of Selecteer de Cloud Shell openen knop Cloud Shell in uw browser openen.Go to https://shell.azure.com or select the Launch Cloud Shell button to open Cloud Shell in your browser. <a href="https://shell.azure.com" title="Open Azure Cloudshell
Selecteer de Cloud Shell knop in het menu rechtsboven in de Azure-portal.Select the Cloud Shell button on the top-right menu bar in the Azure portal. Knop Cloud Shell in de Azure Portal

De code uitvoeren in dit artikel in Azure Cloud Shell:To run the code in this article in Azure Cloud Shell:

  1. Open Cloudshell.Launch Cloud Shell.
  2. Selecteer de kopie knop in een codeblok om de code te kopiëren.Select the Copy button on a code block to copy the code.
  3. Plak de code in de Cloud Shell-sessie met Ctrl+Shift+V in Windows en Linux, of Cmd + Shift+V in macOS.Paste the code into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS.
  4. Druk op Enter de code uit te voeren.Press Enter to run the code.

Als u ervoor kiest om de CLI lokaal te installeren en te gebruiken, moet u voor dit onderwerp gebruikmaken van Azure CLI versie 2.0 of hoger.If you choose to install and use the CLI locally, this topic requires that you are running the Azure CLI version 2.0 or later. Voer az --version uit om de versie te bekijken.Run az --version to find the version. Zie Azure CLI installeren als u de CLI wilt installeren of een upgrade wilt uitvoeren.If you need to install or upgrade, see Install Azure CLI.

VereistenPrerequisites

Als u nog geen abonnement op Azure hebt, maak dan een gratis account aan voordat u begint.If you don't have an Azure subscription, create a free account before you begin.

U kunt ook Azure Cosmos DB gratis uitproberen zonder Azure-abonnement, zonder kosten en zonder verplichtingen.Alternatively, you can Try Azure Cosmos DB for free without an Azure subscription, free of charge and commitments. Of gebruik de Azure Cosmos DB-emulator voor deze zelfstudie, met een verbindingsreeks vanOr 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

Naast Azure CLI moet u Node.js en Git lokaal geïnstalleerd hebben om npm- en git-opdrachten uit te voeren.In addition to Azure CLI, you need Node.js and Git installed locally to run npm and git commands.

U moet bekend zijn met de basisbegrippen van Node.js.You should have working knowledge of Node.js. Deze Quick Start is niet bedoeld als hulp bij het ontwikkelen van Node.js-toepassingen in het algemeen.This quickstart is not intended to help you with developing Node.js applications in general.

De voorbeeldtoepassing klonenClone the sample application

Voer de volgende opdrachten uit om de voorbeeldopslagplaats te klonen.Run the following commands to clone the sample repository. Deze voorbeeldopslagplaats bevat de standaard MEAN.js-toepassing.This sample repository contains the default MEAN.js application.

  1. Open een opdrachtprompt, maak een nieuwe map met de naam git-samples en sluit vervolgens de opdrachtprompt.Open a command prompt, create a new folder named git-samples, then close the command prompt.

    md "C:\git-samples"
    
  2. Open een git-terminalvenster, bijvoorbeeld git bash, en gebruik de cd-opdracht om naar de nieuwe map te gaan voor het installeren van de voorbeeld-app.Open a git terminal window, such as git bash, and use the cd command to change to the new folder to install the sample app.

    cd "C:\git-samples"
    
  3. Voer de volgende opdracht uit om de voorbeeldopslagplaats te klonen.Run the following command to clone the sample repository. Deze opdracht maakt een kopie van de voorbeeld-app op uw computer.This command creates a copy of the sample app on your computer.

    git clone https://github.com/prashanthmadi/mean
    

De toepassing uitvoerenRun the application

Installeer de vereiste pakketten en start de toepassing.Install the required packages and start the application.

cd mean
npm install
npm start

Er wordt een poging gedaan om de toepassing te verbinden met een MongoDB-bron, wat mislukt. Sluit de toepassing wanneer de uitvoer het volgende retourneert: [MongoError: connect ECONNREFUSED 127.0.0.1:27017].The application will try to connect to a MongoDB source and fail, go ahead and exit the application when the output returns "[MongoError: connect ECONNREFUSED 127.0.0.1:27017]".

Meld u aan bij Azure.Log in to Azure

Als u een geïnstalleerde Azure CLI gebruikt, meldt u zich aan bij uw Azure-abonnement met de opdracht az login en volgt u de instructies op het scherm.If you are using an installed Azure CLI, log in to your Azure subscription with the az login command and follow the on-screen directions. U kunt deze stap overslaan als u de Azure Cloud Shell gebruikt.You can skip this step if you're using the Azure Cloud Shell.

az login 

De Azure Cosmos DB-module toevoegenAdd the Azure Cosmos DB module

Als u van een geïnstalleerde Azure CLI gebruikmaakt, controleert u of het onderdeel cosmosdb al is geïnstalleerd door de opdracht az uit te voeren.If you are using an installed Azure CLI, check to see if the cosmosdb component is already installed by running the az command. Als cosmosdb in de lijst met basisopdrachten staat, gaat u verder met de volgende opdracht.If cosmosdb is in the list of base commands, proceed to the next command. U kunt deze stap overslaan als u de Azure Cloud Shell gebruikt.You can skip this step if you're using the Azure Cloud Shell.

Als cosmosdb niet in de lijst met basisopdrachten staat, installeert u Azure CLI opnieuw.If cosmosdb is not in the list of base commands, reinstall Azure CLI.

Een resourcegroep makenCreate a resource group

Maak een resourcegroep met de opdracht az group create.Create a resource group with the az group create. Een Azure-resourcegroep is een logische container waarin Azure-resources, zoals web-apps, databases en opslagaccounts, worden geïmplementeerd en beheerd.An Azure resource group is a logical container into which Azure resources like web apps, databases and storage accounts are deployed and managed.

In het volgende voorbeeld wordt een resourcegroep gemaakt in de regio Europa - west.The following example creates a resource group in the West Europe region. Kies een unieke naam voor de resourcegroep.Choose a unique name for the resource group.

Als u van Azure Cloud Shell gebruikmaakt, klikt u op Uitproberen, volgt u de aanwijzingen op het scherm om u aan te melden en kopieert u de opdracht naar de opdrachtprompt.If you are using Azure Cloud Shell, click Try It, follow the onscreen prompts to login, then copy the command into the command prompt.

az group create --name myResourceGroup --location "West Europe"

Een Azure Cosmos DB-account makenCreate an Azure Cosmos DB account

Maak een Cosmos-account met de opdracht az cosmosdb create.Create a Cosmos account with the az cosmosdb create command.

Vervang in de volgende opdracht waar u de plaatsaanduiding <cosmosdb-name> ziet staan, de accountnaam met uw unieke Cosmos-accountnaam.In the following command, please substitute your own unique Cosmos account name where you see the <cosmosdb-name> placeholder. Deze unieke naam wordt gebruikt als onderdeel van uw Cosmos DB-eindpunt (https://<cosmosdb-name>.documents.azure.com/). De naam moet daarom uniek zijn binnen alle Cosmos-accounts in Azure.This unique name will be used as part of your Cosmos DB endpoint (https://<cosmosdb-name>.documents.azure.com/), so the name needs to be unique across all Cosmos accounts in Azure.

az cosmosdb create --name <cosmosdb-name> --resource-group myResourceGroup --kind MongoDB

De parameter --kind MongoDB maakt MongoDB-clientverbindingen mogelijk.The --kind MongoDB parameter enables MongoDB client connections.

Wanneer de Azure Cosmos DB-account wordt gemaakt toont de Azure CLI informatie die lijkt op het volgende voorbeeld.When the Azure Cosmos DB account is created, the Azure CLI shows information similar to the following example.

Notitie

In dit voorbeeld wordt JSON gebruikt als de Azure CLI-uitvoerindeling. Dit is standaardindeling. Zie Output formats for Azure CLI commands (Uitvoerindelingen voor Azure CLI-opdrachten) als u een andere uitvoerindeling wilt gebruiken.

{
  "databaseAccountOfferType": "Standard",
  "documentEndpoint": "https://<cosmosdb-name>.documents.azure.com:443/",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Document
DB/databaseAccounts/<cosmosdb-name>",
  "kind": "MongoDB",
  "location": "West Europe",
  "name": "<cosmosdb-name>",
  "readLocations": [
    {
      "documentEndpoint": "https://<cosmosdb-name>-westeurope.documents.azure.com:443/",
      "failoverPriority": 0,
      "id": "<cosmosdb-name>-westeurope",
      "locationName": "West Europe",
      "provisioningState": "Succeeded"
    }
  ],
  "resourceGroup": "myResourceGroup",
  "type": "Microsoft.DocumentDB/databaseAccounts",
  "writeLocations": [
    {
      "documentEndpoint": "https://<cosmosdb-name>-westeurope.documents.azure.com:443/",
      "failoverPriority": 0,
      "id": "<cosmosdb-name>-westeurope",
      "locationName": "West Europe",
      "provisioningState": "Succeeded"
    }
  ]
} 

Uw Node.js-toepassing verbinden met de databaseConnect your Node.js application to the database

In deze stap verbindt u uw MEAN.js-voorbeeldtoepassing met de Cosmos-database die u zojuist hebt gemaakt.In this step, you connect your MEAN.js sample application to Cosmos database you just created.

Configureer de verbindingsreeks in uw Node.js-toepassingConfigure the connection string in your Node.js application

Open config/env/local-development.js in uw MEAN.js-opslagplaats.In your MEAN.js repository, open config/env/local-development.js.

Vervang de inhoud van dit bestand door de volgende code.Replace the content of this file with the following code. Zorg ervoor dat u ook de twee <cosmosdb-name>-plaatsaanduidingen vervangt door de naam van uw Cosmos-account.Be sure to also replace the two <cosmosdb-name> placeholders with your Cosmos account name.

'use strict';

module.exports = {
  db: {
    uri: 'mongodb://<cosmosdb-name>:<primary_master_key>@<cosmosdb-name>.documents.azure.com:10255/mean-dev?ssl=true&sslverifycertificate=false'
  }
};

De sleutel ophalenRetrieve the key

U hebt de databasesleutel nodig om verbinding te kunnen maken met een Cosmos-database.In order to connect to a Cosmos database, you need the database key. Gebruik de opdracht az cosmosdb list-keys om de primaire sleutel op te halen.Use the az cosmosdb list-keys command to retrieve the primary key.

az cosmosdb list-keys --name <cosmosdb-name> --resource-group myResourceGroup --query "primaryMasterKey"

De Azure CLI voert informatie uit die lijkt op het volgende voorbeeld.The Azure CLI outputs information similar to the following example.

"RUayjYjixJDWG5xTqIiXjC..."

Kopieer de waarde van primaryMasterKey.Copy the value of primaryMasterKey. Plak deze op de <primary_master_key> in local-development.js.Paste this over the <primary_master_key> in local-development.js.

Sla uw wijzigingen op.Save your changes.

Voer de toepassing opnieuw uit.Run the application again.

Voer npm start opnieuw uit.Run npm start again.

npm start

Er verschijnt nu een consolebericht dat de ontwikkelomgeving gereed is voor gebruik.A console message should now tell you that the development environment is up and running.

Ga naar http://localhost:3000 in een browser.Navigate to http://localhost:3000 in a browser. Klik op Registreren in het bovenste menu en probeer twee fictieve gebruikers te maken.Click Sign Up in the top menu and try to create two dummy users.

De MEAN.js-voorbeeldtoepassing slaat gebruikersgegevens op in de database.The MEAN.js sample application stores user data in the database. Als het lukt en MEAN.js automatisch aanmeldt met de gemaakte gebruiker, is uw Azure Cosmos DB-verbinding actief.If you are successful and MEAN.js automatically signs into the created user, then your Azure Cosmos DB connection is working.

MEAN.js maakt een geslaagde verbinding met MongoDB

Gegevens bekijken in Data ExplorerView data in Data Explorer

Gegevens die zijn opgeslagen in een Cosmos-database kunnen via Azure Portal worden bekeken en er kunnen vanuit de portal query's op worden uitgevoerd.Data stored in a Cosmos database is available to view and query in the Azure portal.

Meld u aan bij de Azure Portal in uw webbrowser om de gebruikersgegevens die u in de vorige stap hebt gemaakt, te bekijken, query’s erop uit te voeren of andere taken ermee uit te voeren.To view, query, and work with the user data created in the previous step, login to the Azure portal in your web browser.

Typ ‘Azure Cosmos DB’ in het bovenste vak Zoeken.In the top Search box, type Azure Cosmos DB. Wanneer uw Cosmos-accountblade wordt geopend, selecteert u uw Cosmos-account.When your Cosmos account blade opens, select your Cosmos account. Klik in het linker navigatiegedeelte op Data Explorer.In the left navigation, click Data Explorer. Vouw uw verzameling uit in het venster Verzamelingen. Dan kunt u de documenten in de verzameling zien, query’s op de gegevens uitvoeren en zelfs opgeslagen procedures, triggers en UDF’s maken en uitvoeren.Expand your collection in the Collections pane, and then you can view the documents in the collection, query the data, and even create and run stored procedures, triggers, and UDFs.

Data Explorer in de Azure Portal

De Node.js-toepassing implementeren naar AzureDeploy the Node.js application to Azure

In deze stap implementeert u uw Node.js-toepassing naar Cosmos DB.In this step, you deploy your Node.js application to Cosmos DB.

U hebt wellicht opgemerkt dat het configuratiebestand dat u eerder had gewijzigd, bestemd is voor de ontwikkelomgeving (/config/env/local-development.js).You may have noticed that the configuration file that you changed earlier is for the development environment (/config/env/local-development.js). Wanneer u uw toepassing implementeert naar App Service, wordt deze standaard in de productieomgeving uitgevoerd.When you deploy your application to App Service, it will run in the production environment by default. U moet nu dus dezelfde wijziging toepassing op het respectieve configuratiebestand.So now, you need to make the same change to the respective configuration file.

Open config/env/production.js in uw MEAN.js-opslagplaats.In your MEAN.js repository, open config/env/production.js.

Vervang in het object db de waarde van uri zoals getoond in het volgende voorbeeld.In the db object, replace the value of uri as show in the following example. Zorg dat u de plaatsaanduidingen vervangt zoals eerder beschreven.Be sure to replace the placeholders as before.

'mongodb://<cosmosdb-name>:<primary_master_key>@<cosmosdb-name>.documents.azure.com:10255/mean?ssl=true&sslverifycertificate=false',

Notitie

De optie ssl=true is belangrijk omdat Cosmos DB SSL vereist.

Voer in de terminal al uw wijzigingen door in Git.In the terminal, commit all your changes into Git. U kunt beide opdrachten kopiëren om ze samen uit te voeren.You can copy both commands to run them together.

git add .
git commit -m "configured MongoDB connection string"

Resources opschonenClean up resources

Wanneer u klaar bent met uw web-app en Azure Cosmos DB-account, kunt u de Azure-resources die u hebt gemaakt, zodat er geen kosten meer kunt verwijderen.When you're done with your web app and Azure Cosmos DB account, you can delete the Azure resources you created so you don't incur more charges. Om de resources te verwijderen:To delete the resources:

  1. Selecteer Resourcegroepen links in Azure Portal.In the Azure portal, select Resource groups on the far left. Als het menu links is samengevouwen, selecteert u knop Uitvouwen uit te vouwen.If the left menu is collapsed, select Expand button to expand it.

  2. Selecteer de resourcegroep die u voor deze Quick Start hebt gemaakt.Select the resource group you created for this quickstart.

    Metrische gegevens in Azure Portal

  3. Selecteer in het nieuwe venster resourcegroep verwijderen.In the new window, select Delete resource group.

    Metrische gegevens in Azure Portal

  4. Typ in het volgende venster de naam van de resourcegroep wilt verwijderen en selecteer vervolgens verwijderen.In the next window, type the name of the resource group to delete, and then select Delete.

Volgende stappenNext steps

In deze snelstart hebt u geleerd hoe u een Cosmos DB-account kunt maken, hoe u een verzameling kunt maken en hoe u een console-app kunt uitvoeren.In this quickstart, you've learned how to create a Cosmos account, create a collection and run a console app. Nu kunt u aanvullende gegevens in uw Cosmos database importeren.You can now import additional data to your Cosmos database.