Bir Node.js uygulaması derleme ve Azure Cloud Service’e dağıtmaBuild and deploy a Node.js application to an Azure Cloud Service

Bu öğreticide Azure Cloud Service’te çalışan basit bir Node.js uygulamasını oluşturma işlemi gösterilmektedir.This tutorial shows how to create a simple Node.js application running in an Azure Cloud Service. Cloud Services, Azure’daki ölçeklenebilir bulut uygulamalarının yapı taşlarıdır.Cloud Services are the building blocks of scalable cloud applications in Azure. Uygulamanızın ön uç ve arka uç bileşenlerinin ayrılmasına ve bağımsız yönetimi ile ölçek artırımına imkan tanır.They allow the separation and independent management and scale-out of front-end and back-end components of your application. Cloud Services her bir rolü güvenilir bir şekilde barındırmaya yönelik sağlam bir özel sanal makine sağlar.Cloud Services provide a robust dedicated virtual machine for hosting each role reliably.

Cloud Services ve Azure Websites ile Virtual machines hizmetlerine benzerlikleri hakkında daha fazla bilgi için bkz. Azure Websites, Cloud Services ve Virtual Machines karşılaştırması.For more information on Cloud Services, and how they compare to Azure Websites and Virtual machines, see Azure Websites, Cloud Services and Virtual Machines comparison.

İpucu

Basit bir web sitesi tasarlamak mı istiyorsunuz?Looking to build a simple website? Senaryonuz yalnızca basit bir web sitesi ön ucu içeriyorsa, basit bir web uygulaması kullanmayı düşünün.If your scenario involves just a simple website front-end, consider using a lightweight web app. Web uygulamanız büyüdükçe ve gereksinimleriniz değiştikçe kolayca Cloud Services’e yükseltebilirsiniz.You can easily upgrade to a Cloud Service as your web app grows and your requirements change.

Bu öğreticiyi izleyerek bir web rolünün içinde barındırılan basit bir web uygulaması oluşturacaksınız.By following this tutorial, you will build a simple web application hosted inside a web role. Uygulamanızı yerel olarak test etmek ve ardından PowerShell komut satırı araçlarını kullanarak dağıtmak için işlem öykünücüsünü kullanacaksınız.You will use the compute emulator to test your application locally, then deploy it using PowerShell command-line tools.

Uygulama basit bir "hello world" uygulamasıdır:The application is a simple "hello world" application:

Hello World web sayfasını gösteren bir web tarayıcısı

ÖnkoşullarPrerequisites

Not

Bu öğretici Windows gerektiren Azure PowerShell’i kullanır.This tutorial uses Azure PowerShell, which requires Windows.

Azure Cloud Service projesi oluşturmaCreate an Azure Cloud Service project

Temel Node.js iskelesiyle birlikte yeni bir Azure Cloud Service projesi oluşturmak için aşağıdaki görevleri gerçekleştirin:Perform the following tasks to create a new Azure Cloud Service project, along with basic Node.js scaffolding:

  1. Windows PowerShell’i Yönetici olarak çalıştırın; Başlat Menüsü veya Başlangıç Ekranı’ndan Windows PowerShell araması yapın.Run Windows PowerShell as Administrator; from the Start Menu or Start Screen, search for Windows PowerShell.

  2. Aboneliğinize PowerShell’i bağlayın.Connect PowerShell to your subscription.

  3. Projeyi oluşturmak için aşağıdaki PowerShell cmdlet'ini girin:Enter the following PowerShell cmdlet to create to create the project:

     New-AzureServiceProject helloworld
    

    New-AzureService helloworld komutunun sonucu

    New-AzureServiceProject cmdlet’i bir Node.js uygulamasını Cloud Service’te yayımlamaya yönelik basit bir yapı oluşturur.The New-AzureServiceProject cmdlet generates a basic structure for publishing a Node.js application to a Cloud Service. Azure’da yayımlamak için gerekli yapılandırma dosyalarını içerir.It contains configuration files necessary for publishing to Azure. Cmdlet ayrıca çalışma dizininizi hizmetin diziniyle değiştirir.The cmdlet also changes your working directory to the directory for the service.

    Cmdlet aşağıdaki dosyaları oluşturur:The cmdlet creates the following files:

    • ServiceConfiguration.Cloud.cscfg, ServiceConfiguration.Local.cscfg ve ServiceDefinition.csdef: Uygulamanızı yayımlamak için gereken azure'a özel dosyalar.ServiceConfiguration.Cloud.cscfg, ServiceConfiguration.Local.cscfg and ServiceDefinition.csdef: Azure-specific files necessary for publishing your application. Daha fazla bilgi için bkz. Azure için Barındırılan Hizmet Oluşturmaya Genel Bakış.For more information, see Overview of Creating a Hosted Service for Azure.
    • deploymentSettings.json: Azure PowerShell dağıtım cmdlet'leri tarafından kullanılan yerel ayarları depolar.deploymentSettings.json: Stores local settings that are used by the Azure PowerShell deployment cmdlets.
  4. Yeni bir web rolü eklemek için aşağıdaki komutu girin:Enter the following command to add a new web role:

    Add-AzureNodeWebRole
    

    The output of the Add-AzureNodeWebRole command

    Add-AzureNodeWebRole cmdlet’i basit bir Node.js uygulaması oluşturur.The Add-AzureNodeWebRole cmdlet creates a basic Node.js application. Ayrıca yeni rol için yapılandırma girdileri eklemek üzere .csfg ve .csdef dosyalarını değiştirir.It also modifies the .csfg and .csdef files to add configuration entries for the new role.

    Not

    Bir rol adı belirtmezseniz varsayılan ad kullanılır.If you do not specify a role name, a default name is used. Birinci cmdlet parametresi olarak bir ad sağlayabilirsiniz: Add-AzureNodeWebRole MyRoleYou can provide a name as the first cmdlet parameter: Add-AzureNodeWebRole MyRole

Node.js uygulaması web rolünün dizininde (varsayılan olarak WebRole1) bulunan server.js dosyasında tanımlanır.The Node.js app is defined in the file server.js, located in the directory for the web role (WebRole1 by default). Kod aşağıdaki gibidir:Here is the code:

var http = require('http');
var port = process.env.port || 1337;
http.createServer(function (req, res) {
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end('Hello World\n');
}).listen(port);

Bu kod temelde nodejs.org web sitesindeki "Hello World" örneğiyle aynıdır, ancak bulut ortamı tarafından atanan bağlantı noktası numarasını kullanır.This code is essentially the same as the "Hello World" sample on the nodejs.org website, except it uses the port number assigned by the cloud environment.

Uygulamayı Azure’a dağıtmaDeploy the application to Azure

Not

Bu öğreticiyi tamamlamak için bir Azure hesabınızın olması gerekir.To complete this tutorial, you need an Azure account. MSDN abone avantajınızı etkinleştirebilir ya da ücretsiz hesap için kaydolabilirsiniz.You can activate your MSDN subscriber benefits or sign up for a free account.

Azure yayımlama ayarlarını indirmeDownload the Azure publishing settings

Uygulamanızı Azure’a dağıtmak için öncelikle Azure aboneliğinizin yayımlama ayarlarını indirmeniz gerekir.To deploy your application to Azure, you must first download the publishing settings for your Azure subscription.

  1. Aşağıdaki Azure PowerShell cmdlet'ini çalıştırın:Run the following Azure PowerShell cmdlet:

    Get-AzurePublishSettingsFile
    

    Bu işlem, yayımlama ayarları indirme sayfasına gitmek için tarayıcınızı kullanır.This will use your browser to navigate to the publish settings download page. Bir Microsoft Hesabı ile oturum açmanız istenebilir.You may be prompted to log in with a Microsoft Account. İstenirse Azure aboneliğinizle ilişkili olan hesabı kullanın.If so, use the account associated with your Azure subscription.

    İndirilen profili kolayca erişebileceğiniz bir dosya konumuna kaydedin.Save the downloaded profile to a file location you can easily access.

  2. İndirdiğiniz yayımlama profilini içeri aktarmak için aşağıdaki cmdlet'i çalıştırın:Run following cmdlet to import the publishing profile you downloaded:

    Import-AzurePublishSettingsFile [path to file]
    

    Not

    Yayımlama ayarlarını indirdikten sonra, başka bir kişinin hesabınıza erişmesine imkan tanıyabilecek bilgiler içerdiğinden indirdiğiniz .publishSettings dosyasını silmeyi düşünün.After importing the publish settings, consider deleting the downloaded .publishSettings file, because it contains information that could allow someone to access your account.

Uygulamayı yayımlamaPublish the application

Yayımlamak için aşağıdaki komutu çalıştırın:To publish, run the following commands:

  $ServiceName = "NodeHelloWorld" + $(Get-Date -Format ('ddhhmm'))
Publish-AzureServiceProject -ServiceName $ServiceName  -Location "East US" -Launch
  • -ServiceName dağıtımın adını belirtir.-ServiceName specifies the name for the deployment. Bu bir benzersiz ad olmalıdır, aksi takdirde yayımlama işlemi başarısız olur.This must be a unique name, otherwise the publish process will fail. Get-Date komutu, adı benzersiz hale getirmesi gereken bir tarih/saat dizesine eklenir.The Get-Date command tacks on a date/time string that should make the name unique.
  • -Location, uygulamanın barındırılacağı veri merkezini belirtir.-Location specifies the datacenter that the application will be hosted in. Kullanılabilir veri merkezlerinin listesini görmek için Get-AzureLocation cmdlet'ini kullanın.To see a list of available datacenters, use the Get-AzureLocation cmdlet.
  • -Launch bir tarayıcı penceresi açar ve dağıtım tamamlandıktan sonra barındırılan hizmete gider.-Launch opens a browser window and navigates to the hosted service after deployment has completed.

Yayımlama başarılı olduktan sonra aşağıdakine benzer bir yanıt görürsünüz:After publishing succeeds, you will see a response similar to the following:

The output of the Publish-AzureService command

Not

Uygulamanın dağıtılması ve ilk kez yayımlandığında kullanılabilir olması birkaç dakika sürebilir.It can take several minutes for the application to deploy and become available when first published.

Dağıtım tamamlandıktan sonra bir tarayıcı penceresi açın ve bulut hizmetine gidin.Once the deployment has completed, a browser window will open and navigate to the cloud service.

Hello world sayfasını gösteren bir tarayıcı penceresi; URL sayfanın Azure’da barındırıldığını gösterir.

Uygulamanız artık Azure üzerinde çalışıyor.Your application is now running on Azure.

Publish-AzureServiceProject cmdlet’i aşağıdaki adımları uygular:The Publish-AzureServiceProject cmdlet performs the following steps:

  1. Dağıtacağınız bir paket oluşturur.Creates a package to deploy. Paket, uygulama klasörünüzdeki tüm dosyaları içerir.The package contains all the files in your application folder.
  2. Mevcut değilse yeni bir depolama hesabı oluşturur.Creates a new storage account if one does not exist. Azure depolama hesabı, dağıtım sırasında uygulama paketini depolamak için kullanılır.The Azure storage account is used to store the application package during deployment. Dağıtım bittikten sonra depolama hesabını güvenli bir şekilde silebilirsiniz.You can safely delete the storage account after deployment is done.
  3. Henüz mevcut değilse yeni bir bulut hizmeti oluşturur.Creates a new cloud service if one does not already exist. Bulut hizmeti uygulamanızın Azure’a dağıtıldığında barındırıldığı kapsayıcıdır.A cloud service is the container in which your application is hosted when it is deployed to Azure. Daha fazla bilgi için bkz. Azure için Barındırılan Hizmet Oluşturmaya Genel Bakış.For more information, see Overview of Creating a Hosted Service for Azure.
  4. Dağıtım paketini Azure’da yayımlar.Publishes the deployment package to Azure.

Uygulamanızı durdurma ve silmeStopping and deleting your application

Uygulamanızı dağıttıktan sonra ek maliyetlerden kaçınmak için devre dışı bırakmak isteyebilirsiniz.After deploying your application, you may want to disable it so you can avoid extra costs. Azure web rolü örneklerini harcanan sunucu saati başına faturalandırır.Azure bills web role instances per hour of server time consumed. Uygulamanız dağıtıldıktan sonra örnekler çalışmadığında ve durdurulmuş halde olduğunda bile sunucu saati harcanır.Server time is consumed once your application is deployed, even if the instances are not running and are in the stopped state.

  1. Windows PowerShell penceresinde önceki bölümde oluşturulan hizmet dağıtımını aşağıdaki cmdlet ile durdurun:In the Windows PowerShell window, stop the service deployment created in the previous section with the following cmdlet:

    Stop-AzureService
    

    Hizmetin durdurulması birkaç dakika sürebilir.Stopping the service may take several minutes. Hizmet durdurulduğunda bunu belirten bir ileti alırsınız.When the service is stopped, you receive a message indicating that it has stopped.

    The status of the Stop-AzureService command

  2. Hizmeti silmek için aşağıdaki cmdlet'i çağırın:To delete the service, call the following cmdlet:

    Remove-AzureService
    

    İstendiğinde hizmeti silmek için Y yazın.When prompted, enter Y to delete the service.

    Hizmetin silinmesi birkaç dakika sürebilir.Deleting the service may take several minutes. Hizmet silindikten sonra bunu belirten bir ileti alırsınız.After the service has been deleted you receive a message indicating that the service was deleted.

    The status of the Remove-AzureService command

    Not

    Hizmetin silinmesi, hizmet ilk kez yayımlandığında oluşturulan depolama hesabını silmez ve kullanılan depolama alanı için faturalandırılmaya devam edersiniz.Deleting the service does not delete the storage account that was created when the service was initially published, and you will continue to be billed for storage used. Depolama alanı başka bir işlem tarafından kullanılmıyorsa silmek isteyebilirsiniz.If nothing else is using the storage, you may want to delete it.

Sonraki adımlarNext steps

Daha fazla bilgi için bkz. Node.js Geliştirici Merkezi.For more information, see the Node.js Developer Center.