Rychlý start: Migrace stávající webové aplikace Node. js v MongoDB na Azure Cosmos DBQuickstart: Migrate an existing MongoDB Node.js web app to Azure Cosmos DB

Azure Cosmos DB je globálně distribuovaná databázová služba Microsoftu pro více modelů.Azure Cosmos DB is Microsoft’s globally distributed multi-model database service. Můžete rychle vytvořit a dotazovat databáze dokumentů, klíčů a hodnot a grafů, z nichž všechno přináší výhody funkcí globální distribuce a horizontálního škálování v jádru 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.

Tento rychlý Start ukazuje použití stávající aplikace MongoDB napsané v Node. js a její připojení k databázi Cosmos, která podporuje klienta MongoDB.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. Jinými slovy je transparentní pro aplikaci, že jsou data uložena v databázi Cosmos.In other words, it is transparent to the application that the data is stored in a Cosmos database.

Až budete hotovi, budete mít střední hodnotu aplikace (MongoDB, Express, úhlová a Node. js) běžící na Cosmos DB.When you are done, you will have a MEAN application (MongoDB, Express, Angular, and Node.js) running on Cosmos DB.

Aplikace MEAN.js spuštěná v rámci služby Azure App Service

Použití služby Azure Cloud ShellUse Azure Cloud Shell

Hostitelé Azure Azure Cloud Shell interaktivní prostředí prostředí, které můžete používat v prohlížeči.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Cloud Shell vám umožní pracovat se bash službami PowerShell Azure pomocí nebo.Cloud Shell lets you use either bash or PowerShell to work with Azure services. Můžete použít Cloud Shell předinstalované příkazy ke spuštění kódu v tomto článku, aniž byste museli instalovat cokoli do svého místního prostředí.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.

Spuštění Azure Cloud Shell:To launch Azure Cloud Shell:

MožnostOption Příklad nebo propojeníExample/Link
Zvolte Vyzkoušet v pravém horním rohu bloku kódu.Select Try It in the upper-right corner of a code block. Při výběru možnosti vyzkoušet se kód automaticky nezkopíruje do Cloud Shell.Selecting Try It doesn't automatically copy the code to Cloud Shell. Příklad pokusu o Azure Cloud Shell
V prohlížeči otevřete Cloud Shell kliknutím na tlačítko Spustit Cloud Shell. https://shell.azure.comGo to https://shell.azure.com or select the Launch Cloud Shell button to open Cloud Shell in your browser. Spustit Cloud Shell v novém okněLaunch Cloud Shell in a new window
Vyberte tlačítko Cloud Shell v pravém horním panelu nabídek v Azure Portal.Select the Cloud Shell button on the top-right menu bar in the Azure portal. Tlačítko Cloud Shell na webu Azure Portal

Chcete-li spustit kód v tomto článku v Azure Cloud Shell:To run the code in this article in Azure Cloud Shell:

  1. Spusťte Cloud Shell.Launch Cloud Shell.
  2. Vyberte tlačítko Kopírovat na bloku kódu ke zkopírování kódu.Select the Copy button on a code block to copy the code.
  3. Vložte kód do relace Cloud Shell stisknutím kombinace kláves CTRL+SHIFT+v v systému Windows a Linux nebo příkazem cmd+SHIFT+v v MacOS.Paste the code into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS.
  4. Stiskněte klávesu ENTER pro spuštění kódu.Press Enter to run the code.

Pokud se rozhodnete nainstalovat a používat rozhraní příkazového řádku (CLI) místně, musíte mít spuštěnou verzi Azure CLI 2.0 nebo novější.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. Verzi zjistíte spuštěním příkazu az --version.Run az --version to find the version. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace Azure CLI.If you need to install or upgrade, see Install Azure CLI.

PožadavkyPrerequisites

Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet před tím, než začnete.If you don't have an Azure subscription, create a free account before you begin.

Alternativně můžete vyzkoušet službu Azure Cosmos DB zdarma bez předplatného Azure, poplatků a závazků.Alternatively, you can Try Azure Cosmos DB for free without an Azure subscription, free of charge and commitments. Nebo můžete pro tento kurz použít emulátor služby Azure Cosmos DB s připojovacím řetězcemOr 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

Abyste mohli spustit příkazy npmgit, musíte mít kromě rozhraní příkazového řádku Azure místně nainstalovaný Node.jsGit.In addition to Azure CLI, you need Node.js and Git installed locally to run npm and git commands.

Měli byste mít praktickou znalost Node.js.You should have working knowledge of Node.js. Tento rychlý start není určen jako pomůcka pro všeobecný vývoj aplikací v Node.js.This quickstart is not intended to help you with developing Node.js applications in general.

Klonování ukázkové aplikaceClone the sample application

Spuštěním následujících příkazů naklonujte ukázkové úložiště.Run the following commands to clone the sample repository. Toto ukázkové úložiště obsahuje výchozí aplikaci MEAN.js.This sample repository contains the default MEAN.js application.

  1. Otevřete příkazový řádek, vytvořte novou složku git-samples a potom příkazový řádek zavřete.Open a command prompt, create a new folder named git-samples, then close the command prompt.

    md "C:\git-samples"
    
  2. Otevřete okno terminálu Git, například Git Bash, a pomocí příkazu cd přejděte do nové složky, do které chcete nainstalovat ukázkovou aplikaci.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. Ukázkové úložiště naklonujete spuštěním následujícího příkazu.Run the following command to clone the sample repository. Tento příkaz vytvoří na vašem počítači kopii ukázkové aplikace.This command creates a copy of the sample app on your computer.

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

Spuštění aplikaceRun the application

Nainstalujte požadované balíčky a spusťte aplikaci.Install the required packages and start the application.

cd mean
npm install
npm start

Aplikace se pokusí připojit ke zdroji MongoDB, selže a ukončí se, když se na výstupu vrátí chyba [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]".

Přihlášení k AzureLog in to Azure

Pokud používáte nainstalované rozhraní příkazového řádku Azure, přihlaste se k předplatnému Azure pomocí příkazu az login a postupujte podle pokynů na obrazovce.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. Pokud používáte Azure Cloud Shell, můžete tento krok přeskočit.You can skip this step if you're using the Azure Cloud Shell.

az login 

Přidání modulu služby Azure Cosmos DBAdd the Azure Cosmos DB module

Pokud používáte nainstalované rozhraní příkazového řádku Azure, zkontrolujte pomocí příkazu az, zda je komponenta cosmosdb už nainstalovaná.If you are using an installed Azure CLI, check to see if the cosmosdb component is already installed by running the az command. Pokud se komponenta cosmosdb v seznamu základních příkazů nachází, pokračujte k dalšímu příkazu.If cosmosdb is in the list of base commands, proceed to the next command. Pokud používáte Azure Cloud Shell, můžete tento krok přeskočit.You can skip this step if you're using the Azure Cloud Shell.

Pokud se komponenta cosmosdb v seznamu základních příkazů nenachází, přeinstalujte rozhraní příkazového řádku Azure.If cosmosdb is not in the list of base commands, reinstall Azure CLI.

Vytvoření skupiny prostředkůCreate a resource group

Vytvořte pomocí příkazu az group create skupinu prostředků.Create a resource group with the az group create. Skupina prostředků Azure je logický kontejner, ve kterém se nasazují a spravují prostředky Azure, jako například webové aplikace, databáze a účty úložiště.An Azure resource group is a logical container into which Azure resources like web apps, databases and storage accounts are deployed and managed.

Následující příklad vytvoří skupinu prostředků pro oblast Západní Evropa.The following example creates a resource group in the West Europe region. Pro skupinu prostředků vyberte jedinečný název.Choose a unique name for the resource group.

Pokud používáte Azure Cloud Shell, vyberte vyzkoušet, postupujte podle pokynů na obrazovce pro přihlášení a pak zkopírujte příkaz do příkazového řádku.If you are using Azure Cloud Shell, select Try It, follow the onscreen prompts to login, then copy the command into the command prompt.

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

Vytvoření účtu služby Azure Cosmos DBCreate an Azure Cosmos DB account

Pomocí příkazu AZ cosmosdb Create vytvořte účet Cosmos.Create a Cosmos account with the az cosmosdb create command.

V následujícím příkazu nahraďte <cosmosdb-name> zástupný symbol vlastním jedinečným názvem účtu Cosmos.In the following command, please substitute your own unique Cosmos account name where you see the <cosmosdb-name> placeholder. Tento jedinečný název se použije jako součást Cosmos DBho koncového bodu (https://<cosmosdb-name>.documents.azure.com/), takže název musí být jedinečný ve všech účtech Cosmos v 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

Parametr --kind MongoDB umožňuje klientská připojení MongoDB.The --kind MongoDB parameter enables MongoDB client connections.

Po vytvoření účtu služby Azure Cosmos DB zobrazí rozhraní příkazového řádku Azure podobné informace jako v následujícím příkladu.When the Azure Cosmos DB account is created, the Azure CLI shows information similar to the following example.

Poznámka

Tento příklad jako formát výstupu Azure CLI používá výchozí JSON.This example uses JSON as the Azure CLI output format, which is the default. Pokud chcete použít jiný formát výstupu, přečtěte si téma Formáty výstupu pro příkazy Azure CLI.To use another output format, see Output formats for Azure CLI commands.

{
  "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"
    }
  ]
} 

Připojení aplikace Node.js k databáziConnect your Node.js application to the database

V tomto kroku připojíte ukázkovou aplikaci střední. js k databázi Cosmos, kterou jste právě vytvořili.In this step, you connect your MEAN.js sample application to Cosmos database you just created.

Konfigurace připojovacího řetězce v aplikaci Node.jsConfigure the connection string in your Node.js application

V úložišti MEAN.js otevřete config/env/local-development.js.In your MEAN.js repository, open config/env/local-development.js.

Obsah tohoto souboru nahraďte následujícím kódem.Replace the content of this file with the following code. Nezapomeňte také nahradit tyto dva <cosmosdb-name> zástupné symboly názvem vašeho účtu Cosmos.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'
  }
};

Načtení klíčeRetrieve the key

Aby bylo možné se připojit k databázi Cosmos, potřebujete klíč databáze.In order to connect to a Cosmos database, you need the database key. Pro načtení primárního klíče použijte příkaz az cosmosdb list-keys.Use the az cosmosdb list-keys command to retrieve the primary key.

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

Výstupní informace rozhraní příkazového řádku Azure jsou podobné jako v následujícím příkladu.The Azure CLI outputs information similar to the following example.

"RUayjYjixJDWG5xTqIiXjC..."

Zkopírujte hodnotu primaryMasterKey.Copy the value of primaryMasterKey. Vložte ji místo <primary_master_key> v souboru local-development.js.Paste this over the <primary_master_key> in local-development.js.

Uložte provedené změny.Save your changes.

Spusťte aplikaci znovu.Run the application again.

Spusťte npm start znovu.Run npm start again.

npm start

Zpráva konzoly by vás teď měla informovat o tom, že vývojové prostředí je připravené a spuštěné.A console message should now tell you that the development environment is up and running.

V prohlížeči http://localhost:3000 přejdete na.Go to http://localhost:3000 in a browser. V horní nabídce vyberte možnost zaregistrovat se a zkuste vytvořit dva fiktivní uživatele.Select Sign Up in the top menu and try to create two dummy users.

Ukázková aplikace MEAN.js ukládá data uživatelů v databázi.The MEAN.js sample application stores user data in the database. Pokud budete úspěšní a aplikace MEAN.js automaticky zaregistruje vytvořeného uživatele, bude připojení Azure Cosmos DB fungovat.If you are successful and MEAN.js automatically signs into the created user, then your Azure Cosmos DB connection is working.

Aplikace MEAN.js se úspěšně připojí k databázi MongoDB

Zobrazení dat v Průzkumníku datView data in Data Explorer

Data uložená v databázi Cosmos jsou k dispozici pro zobrazení a dotazování v Azure Portal.Data stored in a Cosmos database is available to view and query in the Azure portal.

Pokud chcete zobrazovat uživatelská data vytvořená v předchozím kroku, zadávat na ně dotazy a pracovat s nimi, přihlaste se k portálu Azure Portal ve webovém prohlížeči.To view, query, and work with the user data created in the previous step, login to the Azure portal in your web browser.

Do vyhledávacího pole nahoře zadejte Azure Cosmos DB.In the top Search box, enter Azure Cosmos DB. Když se otevře okno účtu Cosmos, vyberte svůj účet Cosmos.When your Cosmos account blade opens, select your Cosmos account. V levém navigačním panelu vyberte Průzkumník dat.In the left navigation, select Data Explorer. Rozbalte kolekci v podokně Kolekce. Pak můžete zobrazovat dokumenty v kolekci, dotazovat se na data a dokonce vytvářet a spouštět uložené procedury, triggery a funkce UDF.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.

Průzkumník dat na portálu Azure Portal

Nasaďte aplikaci Node.js do platformy AzureDeploy the Node.js application to Azure

V tomto kroku nasadíte aplikaci Node. js na Cosmos DB.In this step, you deploy your Node.js application to Cosmos DB.

Pravděpodobně jste si všimli, že dříve změněný soubor konfigurace je určený pro vývojové prostředí (/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). Pokud nasadíte aplikaci do služby App Service, bude se ve výchozím nastavení spouštět v produkčním prostředí.When you deploy your application to App Service, it will run in the production environment by default. Teď tedy musíte provést stejné změny v příslušném souboru konfigurace.So now, you need to make the same change to the respective configuration file.

V úložišti MEAN.js otevřete config/env/production.js.In your MEAN.js repository, open config/env/production.js.

V objektu db nahraďte hodnotu uri tak, jak je uvedeno v následujícím příkladu.In the db object, replace the value of uri as show in the following example. Nezapomeňte nahradit zástupné symboly jako v předcházejícím případě.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',

Poznámka

Možnost ssl=true je důležitá, protože Cosmos DB vyžaduje protokol SSL.The ssl=true option is important because Cosmos DB requires SSL.

V terminálu potvrďte do systému Git všechny změny.In the terminal, commit all your changes into Git. Můžete zkopírovat oba příkazy a spouštět je společně.You can copy both commands to run them together.

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

Vyčištění prostředkůClean up resources

Až budete s webovou aplikací a Azure Cosmos DB účtem hotovi, můžete odstranit prostředky Azure, které jste vytvořili, abyste se s nimi neúčtují další poplatky.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. Odstranění prostředků:To delete the resources:

  1. Úplně nalevo na webu Azure Portal vyberte Skupiny prostředků.In the Azure portal, select Resource groups on the far left. Pokud je levá nabídka sbalená, vyberte tlačítko rozbalit a rozbalte ji.If the left menu is collapsed, select Expand button to expand it.

  2. Vyberte skupinu prostředků, kterou jste vytvořili pro tento rychlý Start.Select the resource group you created for this quickstart.

    Metriky na webu Azure Portal

  3. V novém okně vyberte Odstranit skupinu prostředků.In the new window, select Delete resource group.

    Metriky na webu Azure Portal

  4. V dalším okně zadejte název skupiny prostředků, kterou chcete odstranit, a pak vyberte Odstranit.In the next window, enter the name of the resource group to delete, and then select Delete.

Další krokyNext steps

V tomto rychlém startu jste se naučili, jak vytvořit účet Cosmos, vytvořit kolekci a spustit konzolovou aplikaci.In this quickstart, you've learned how to create a Cosmos account, create a collection and run a console app. Nyní můžete importovat další data do databáze Cosmos.You can now import additional data to your Cosmos database.