Hızlı Başlangıç: Mevcut bir MongoDB Node. js web uygulamasını Azure Cosmos DB 'ye geçirmeQuickstart: Migrate an existing MongoDB Node.js web app to Azure Cosmos DB

Azure Cosmos DB, Microsoft'un genel olarak dağıtılmış çok modelli veritabanı hizmetidir.Azure Cosmos DB is Microsoft’s globally distributed multi-model database service. Cosmos DB temel dağıtım ve yatay ölçek özelliğinden faydalanabilir ve her şey belge, anahtar/değer ve grafik veritabanlarını hızlıca oluşturup sorgulayabilirsiniz.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.

Bu hızlı başlangıçta, Node. js ' de yazılmış mevcut bir MongoDB uygulamasını kullanma ve MongoDB istemcisini destekleyen Cosmos veritabanınıza bağlama işlemlerinin nasıl yapılacağı gösterilir.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. Diğer bir deyişle, verilerin Cosmos veritabanında depolandığı uygulamaya saydamdır.In other words, it is transparent to the application that the data is stored in a Cosmos database.

İşiniz bittiğinde, Cosmos DBüzerinde çalışan bir ortalama uygulamanız (MongoDB, Express, angular ve Node. js) olacaktır.When you are done, you will have a MEAN application (MongoDB, Express, Angular, and Node.js) running on Cosmos DB.

Azure App Service’te çalışan MEAN.js uygulaması

Azure Cloud Shell kullanmaUse Azure Cloud Shell

Azure, tarayıcınız aracılığıyla kullanabileceğiniz etkileşimli bir kabuk ortamı Azure Cloud Shell.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Cloud Shell, ya da bash PowerShell Azure hizmetleriyle çalışmak için kullanmanıza olanak sağlar.Cloud Shell lets you use either bash or PowerShell to work with Azure services. Bu makaledeki kodu, yerel ortamınıza herhangi bir şey yüklemeye gerek kalmadan çalıştırmak için Cloud Shell önceden yüklenmiş komutları kullanabilirsiniz.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 başlatmak için:To launch Azure Cloud Shell:

SeçenekOption Örnek/bağlantıExample/Link
Kod bloğunun sağ üst köşesindeki Deneyin’i seçin.Select Try It in the upper-right corner of a code block. Dene ' nin seçilmesi, kodu Cloud Shell otomatik olarak kopyalamaz.Selecting Try It doesn't automatically copy the code to Cloud Shell. Azure Cloud Shell için deneme örneği
Tarayıcınızda Cloud Shell açmak için Başlat Cloud Shell düğmesine gidin veyaseçin. https://shell.azure.comGo to https://shell.azure.com or select the Launch Cloud Shell button to open Cloud Shell in your browser. Cloud Shell yeni bir pencerede BaşlatLaunch Cloud Shell in a new window
Azure Portalsağ üstteki menü çubuğunda Cloud Shell düğmesini seçin.Select the Cloud Shell button on the top-right menu bar in the Azure portal. Azure portaldaki Cloud Shell düğmesi

Bu makaledeki kodu Azure Cloud Shell çalıştırmak için:To run the code in this article in Azure Cloud Shell:

  1. Cloud Shell'i açın.Open Cloud Shell.
  2. Kodu kopyalamak için bir kod bloğunda Kopyala düğmesini seçin.Select the Copy button on a code block to copy the code.
  3. Kodu Windows ve Linux 'ta CTRL+SHIFT+v veya MacOS 'ta cmd+Shift+v ile Cloud Shell oturumuna yapıştırın.Paste the code into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS.
  4. Kodu çalıştırmak için ENTER tuşuna basın.Press Enter to run the code.

CLI'yi yerel olarak yükleyip kullanmayı tercih ederseniz bu konu, Azure CLI 2.0 veya sonraki bir sürümünü kullanmanızı gerektirir.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. Sürümü bulmak için az --version komutunu çalıştırın.Run az --version to find the version. Yükleme veya yükseltme yapmanız gerekiyorsa bkz. Azure CLI'yı yükleme.If you need to install or upgrade, see Install Azure CLI.

ÖnkoşullarPrerequisites

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.If you don't have an Azure subscription, create a free account before you begin.

Alternatif olarak, Azure aboneliği olmadan ve herhangi bir taahhütte bulunmadan Azure Cosmos DB’yi ücretsiz olarak deneyebilirsiniz.Alternatively, you can Try Azure Cosmos DB for free without an Azure subscription, free of charge and commitments. Ya da bu öğretici için Azure Cosmos DB Öykünücüsü’nü şu bağlantı dizesiyle kullanabilirsiniz:Or 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

npm ve git komutlarını çalıştırmak için Azure CLI'nin yanı sıra yerel olarak Node.js ve Git yüklemeniz gerekir.In addition to Azure CLI, you need Node.js and Git installed locally to run npm and git commands.

Node.js çalıştırma bilgisine sahip olmanız gerekir.You should have working knowledge of Node.js. Bu hızlı başlangıç, genel olarak Node.js uygulamaları geliştirmenize yardımcı olmak için tasarlanmamıştır.This quickstart is not intended to help you with developing Node.js applications in general.

Örnek uygulamayı kopyalamaClone the sample application

Örnek depoyu kopyalamak için aşağıdaki komutları çalıştırın.Run the following commands to clone the sample repository. Bu örnek depo, varsayılan MEAN.js uygulamasını içerir.This sample repository contains the default MEAN.js application.

  1. Bir komut istemini açın, git-samples adlı yeni bir klasör oluşturun ve komut istemini kapatın.Open a command prompt, create a new folder named git-samples, then close the command prompt.

    md "C:\git-samples"
    
  2. Git Bash gibi bir Git terminal penceresi açın ve örnek uygulamayı yüklemek üzere yeni bir klasör olarak değiştirmek için cd komutunu kullanın.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. Örnek depoyu kopyalamak için aşağıdaki komutu çalıştırın.Run the following command to clone the sample repository. Bu komut bilgisayarınızda örnek uygulamanın bir kopyasını oluşturur.This command creates a copy of the sample app on your computer.

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

Uygulamayı çalıştırmaRun the application

Gereken paketleri yükleyip uygulamayı başlatın.Install the required packages and start the application.

cd mean
npm install
npm start

Uygulama bir MongoDB kaynağına bağlanmayı deneyip başarısız olur, çıkış "[MongoError: connect ECONNREFUSED 127.0.0.1:27017]" döndürdüğünde uygulamadan çıkabilirsiniz.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]".

Azure'da oturum açmaLog in to Azure

Yüklenen bir Azure CLI kullanıyorsanız az login komutuyla Azure aboneliğinizde oturum açın ve ekrandaki yönergeleri uygulayın.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. Azure Cloud Shell'i kullanıyorsanız bu adımı atlayabilirsiniz.You can skip this step if you're using the Azure Cloud Shell.

az login 

Azure Cosmos DB modülü eklemeAdd the Azure Cosmos DB module

Yüklenen bir Azure CLI kullanıyorsanız az komutunu çalıştırarak cosmosdb bileşeninin zaten yüklü olup olmadığını kontrol edin.If you are using an installed Azure CLI, check to see if the cosmosdb component is already installed by running the az command. cosmosdb, temel komutlar listesindeyse bir sonraki komuta geçin.If cosmosdb is in the list of base commands, proceed to the next command. Azure Cloud Shell'i kullanıyorsanız bu adımı atlayabilirsiniz.You can skip this step if you're using the Azure Cloud Shell.

cosmosdb, temel komutlar listesinde değilse Azure CLI'yi yeniden yükleyin.If cosmosdb is not in the list of base commands, reinstall Azure CLI.

Kaynak grubu oluşturmaCreate a resource group

az group create ile bir kaynak grubu oluşturun.Create a resource group with the az group create. Azure kaynak grubu; web uygulamaları, veritabanları ve depolama hesapları gibi Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır.An Azure resource group is a logical container into which Azure resources like web apps, databases and storage accounts are deployed and managed.

Aşağıdaki örnekte Batı Avrupa bölgesinde bir kaynak grubu oluşturulmaktadır.The following example creates a resource group in the West Europe region. Kaynak grubu için benzersiz bir ad seçin.Choose a unique name for the resource group.

Azure Cloud Shell kullanıyorsanız, deneyin' i seçin, oturum açmak için ekrandaki istemleri izleyin, sonra komutu komut istemine kopyalayın.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"

Azure Cosmos DB hesabı oluşturmaCreate an Azure Cosmos DB account

Az cosmosdb Create komutuyla bir Cosmos hesabı oluşturun.Create a Cosmos account with the az cosmosdb create command.

Aşağıdaki komutta, lütfen <cosmosdb-name> yer tutucuyu gördüğünüz benzersiz Cosmos hesabınızın adını yerine koyun.In the following command, please substitute your own unique Cosmos account name where you see the <cosmosdb-name> placeholder. Bu benzersiz ad Cosmos DB uç noktasınınhttps://<cosmosdb-name>.documents.azure.com/bir parçası olarak kullanılır. bu nedenle, adın Azure 'daki tüm Cosmos hesaplarında benzersiz olması gerekir.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

--kind MongoDB parametresi MongoDB istemci bağlantılarını etkinleştirir.The --kind MongoDB parameter enables MongoDB client connections.

Azure Cosmos DB hesabı oluşturulduğunda Azure CLI, aşağıdaki örneğe benzer bilgiler gösterir.When the Azure Cosmos DB account is created, the Azure CLI shows information similar to the following example.

Not

Bu örnek, varsayılan Azure CLI çıktı biçimi olarak JSON kullanır.This example uses JSON as the Azure CLI output format, which is the default. Başka bir çıktı biçimi kullanmak için bkz. Azure CLI komutları için çıktı biçimleri.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"
    }
  ]
} 

Node.js uygulamanızı veritabanına bağlamaConnect your Node.js application to the database

Bu adımda, ortalama. js örnek uygulamanızı yeni oluşturduğunuz Cosmos veritabanına bağlayadınız.In this step, you connect your MEAN.js sample application to Cosmos database you just created.

Node.js uygulamanızda bağlantı dizesini yapılandırmaConfigure the connection string in your Node.js application

MEAN.js deponuzda config/env/local-development.js dosyasını açın.In your MEAN.js repository, open config/env/local-development.js.

Bu dosyanın içeriğini aşağıdaki kodla değiştirin.Replace the content of this file with the following code. İki <cosmosdb-name> yer tutucuyu Cosmos hesap adınızla değiştirdiğinizden de emin olun.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'
  }
};

Anahtarı almaRetrieve the key

Cosmos veritabanına bağlanmak için veritabanı anahtarına ihtiyacınız vardır.In order to connect to a Cosmos database, you need the database key. Birincil anahtarı almak için az cosmosdb list-keys komutunu kullanın.Use the az cosmosdb list-keys command to retrieve the primary key.

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

Azure CLI aşağıdaki örneğe benzer bilgiler çıkarır.The Azure CLI outputs information similar to the following example.

"RUayjYjixJDWG5xTqIiXjC..."

primaryMasterKey değerini kopyalayın.Copy the value of primaryMasterKey. local-development.js içinde bulunan <primary_master_key> üzerine yapıştırın.Paste this over the <primary_master_key> in local-development.js.

Yaptığınız değişiklikleri kaydedin.Save your changes.

Uygulamayı yeniden çalıştırın.Run the application again.

npm start komutunu yeniden çalıştırın.Run npm start again.

npm start

Bir konsol iletisi, geliştirme ortamının çalışır durumda olduğunu söyleyecektir.A console message should now tell you that the development environment is up and running.

http://localhost:3000 Bir tarayıcıda adresine gidin.Go to http://localhost:3000 in a browser. Üstteki menüden Kaydol ' u seçin ve iki kukla Kullanıcı oluşturmayı deneyin.Select Sign Up in the top menu and try to create two dummy users.

MEAN.js örnek uygulaması, kullanıcı verilerini veritabanında depolar.The MEAN.js sample application stores user data in the database. Başarılı olursanız ve MEAN.js oluşturulan kullanıcının oturumunu otomatik olarak açarsa, Azure Cosmos DB bağlantınız çalışıyordur.If you are successful and MEAN.js automatically signs into the created user, then your Azure Cosmos DB connection is working.

MEAN.js, MongoDB’ye başarıyla bağlanır

Veri Gezgini’nde verileri görüntülemeView data in Data Explorer

Cosmos veritabanında depolanan veriler, Azure portal görüntülemek ve sorgulamak için kullanılabilir.Data stored in a Cosmos database is available to view and query in the Azure portal.

Önceki adımda oluşturulan verileri görüntülemek, sorgulamak ve üzerinde çalışmak için web tarayıcınızda Azure portalı oturumunu açın.To view, query, and work with the user data created in the previous step, login to the Azure portal in your web browser.

Üst arama kutusuna Azure Cosmos DBgirin.In the top Search box, enter Azure Cosmos DB. Cosmos hesabı dikey penceresi açıldığında, Cosmos hesabınızı seçin.When your Cosmos account blade opens, select your Cosmos account. Sol gezinti bölmesinde Veri Gezgini' yi seçin.In the left navigation, select Data Explorer. Koleksiyonlar bölmesinde koleksiyonunuzu genişletin; bundan sonra koleksiyondaki belgeleri görüntüleyebilir, verileri sorgulayabilir ve hatta saklı yordam, tetikleyici ve UDF’ler oluşturup çalıştırabilirsiniz.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.

Azure portalında Veri Gezgini

Node.js uygulamasını Azure’a dağıtmaDeploy the Node.js application to Azure

Bu adımda, Cosmos DB için Node. js uygulamanızı dağıtırsınız.In this step, you deploy your Node.js application to Cosmos DB.

Daha önce değiştirdiğiniz yapılandırma dosyasının geliştirme ortamına (/config/env/local-development.js) yönelik olduğunu fark etmiş olabilirsiniz.You may have noticed that the configuration file that you changed earlier is for the development environment (/config/env/local-development.js). Uygulamanızı App Service’e dağıttığınızda, varsayılan olarak üretim ortamında çalıştırılır.When you deploy your application to App Service, it will run in the production environment by default. O halde şimdi, ilgili yapılandırma dosyasında aynı değişikliği yapmanız gerekir.So now, you need to make the same change to the respective configuration file.

MEAN.js deponuzda config/env/production.js dosyasını açın.In your MEAN.js repository, open config/env/production.js.

db nesnesinde uri değerini aşağıdaki örnekte gösterilen şekilde değiştirin.In the db object, replace the value of uri as show in the following example. Yer tutucuları daha önceki gibi değiştirdiğinizden emin olun.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',

Not

Cosmos DB SSL gerektirdiğindenbu seçenekönemlidir.ssl=trueThe ssl=true option is important because Cosmos DB requires SSL.

Terminalde tüm değişikliklerinizi Git’e uygulayın.In the terminal, commit all your changes into Git. Her iki komutu birlikte çalıştırmak üzere kopyalayabilirsiniz.You can copy both commands to run them together.

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

Kaynakları temizlemeClean up resources

Web uygulamanız ve Azure Cosmos DB hesabınızla işiniz bittiğinde, daha fazla ücret ödemeniz için oluşturduğunuz Azure kaynaklarını silebilirsiniz.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. Kaynakları silmek için:To delete the resources:

  1. Azure portalının en sol tarafındaki Kaynak gruplarını seçin.In the Azure portal, select Resource groups on the far left. Sol menü daraltılmışsa, genişletmek için Genişlet düğmesini seçin.If the left menu is collapsed, select Expand button to expand it.

  2. Bu hızlı başlangıç için oluşturduğunuz kaynak grubunu seçin.Select the resource group you created for this quickstart.

    Azure portalında ölçümler

  3. Yeni pencerede, kaynak grubunu sil' i seçin.In the new window, select Delete resource group.

    Azure portalında ölçümler

  4. Sonraki pencerede, silinecek kaynak grubunun adını girin ve Sil' i seçin.In the next window, enter the name of the resource group to delete, and then select Delete.

Sonraki adımlarNext steps

Bu hızlı başlangıçta, Cosmos hesabı oluşturmayı, bir koleksiyon oluşturmayı ve bir konsol uygulamasını çalıştırmayı öğrendiniz.In this quickstart, you've learned how to create a Cosmos account, create a collection and run a console app. Artık Cosmos veritabanınıza ek veri aktarabilirsiniz.You can now import additional data to your Cosmos database.