Azure Bulut Hizmeti'ne (klasik) Node.js uygulaması derleme ve dağıtma
Önemli
Cloud Services (klasik) artık yeni müşteriler için kullanımdan kaldırılmıştır ve tüm müşteriler için 31 Ağustos 2024'te kullanımdan kaldırılacaktır. Yeni dağıtımlarda yeni Azure Resource Manager tabanlı dağıtım modeli Azure Cloud Services (genişletilmiş destek) kullanılmalıdır.
Bu öğreticide Azure Cloud Service’te çalışan basit bir Node.js uygulamasını oluşturma işlemi gösterilmektedir. Cloud Services, Azure’daki ölçeklenebilir bulut uygulamalarının yapı taşlarıdır. 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. Cloud Services her bir rolü güvenilir bir şekilde barındırmaya yönelik sağlam bir özel sanal makine sağlar.
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ı.
İpucu
Basit bir web sitesi tasarlamak mı istiyorsunuz? Senaryonuz yalnızca basit bir web sitesi ön ucu içeriyorsa, basit bir web uygulaması kullanmayı düşünün. Web uygulamanız büyüdükçe ve gereksinimleriniz değiştikçe kolayca Cloud Services’e yükseltebilirsiniz.
Bu öğreticiyi izleyerek bir web rolünün içinde barındırılan basit bir web uygulaması oluşturacaksınız. 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.
Uygulama basit bir "hello world" uygulamasıdır:
Önkoşullar
Not
Bu öğretici Windows gerektiren Azure PowerShell’i kullanır.
- Azure PowerShell yükleyin ve yapılandırın.
- [.NET 2.7 için Azure SDK]'sını indirin ve yükleyin. Yükleme kurulumunda şunları seçin:
- MicrosoftAzureAuthoringTools
- MicrosoftAzureComputeEmulator
Azure Cloud Service projesi oluşturma
Temel Node.js iskelesiyle birlikte yeni bir Azure Cloud Service projesi oluşturmak için aşağıdaki görevleri gerçekleştirin:
Windows PowerShell’i Yönetici olarak çalıştırın; Başlat Menüsü veya Başlangıç Ekranı’ndan Windows PowerShell araması yapın.
Aboneliğinize PowerShell’i bağlayın.
Projeyi oluşturmak için aşağıdaki PowerShell cmdlet'ini girin:
New-AzureServiceProject helloworld
New-AzureServiceProject cmdlet’i bir Node.js uygulamasını Cloud Service’te yayımlamaya yönelik basit bir yapı oluşturur. Azure’da yayımlamak için gerekli yapılandırma dosyalarını içerir. Cmdlet ayrıca çalışma dizininizi hizmetin diziniyle değiştirir.
Cmdlet aşağıdaki dosyaları oluşturur:
- ServiceConfiguration.Cloud.cscfg, ServiceConfiguration.Local.cscfg ve ServiceDefinition.csdef: Uygulamanızı yayımlamak için gereken Azure’a özel dosyalar. Daha fazla bilgi için bkz. Azure için Barındırılan Hizmet Oluşturmaya Genel Bakış.
- deploymentSettings.json: Azure PowerShell dağıtım cmdlet’leri tarafından kullanılan yerel ayarları depolar.
Yeni bir web rolü eklemek için aşağıdaki komutu girin:
Add-AzureNodeWebRole
Add-AzureNodeWebRole cmdlet’i basit bir Node.js uygulaması oluşturur. Ayrıca yeni rol için yapılandırma girdileri eklemek üzere .csfg ve .csdef dosyalarını değiştirir.
Not
Bir rol adı belirtmezseniz varsayılan ad kullanılır. Birinci cmdlet parametresi olarak bir ad sağlayabilirsiniz:
Add-AzureNodeWebRole MyRole
Node.js uygulaması web rolünün dizininde (varsayılan olarak WebRole1) bulunan server.js dosyasında tanımlanır. Kod aşağıdaki gibidir:
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.
Uygulamayı Azure'a dağıtma
Not
Bu öğreticiyi tamamlamak için bir Azure hesabınızın olması gerekir. MSDN abone avantajınızı etkinleştirebilir ya da ücretsiz hesap için kaydolabilirsiniz.
Azure yayımlama ayarlarını indirme
Uygulamanızı Azure’a dağıtmak için öncelikle Azure aboneliğinizin yayımlama ayarlarını indirmeniz gerekir.
Aşağıdaki Azure PowerShell cmdlet'ini çalıştırın:
Get-AzurePublishSettingsFile
Bu işlem, yayımlama ayarları indirme sayfasına gitmek için tarayıcınızı kullanır. Bir Microsoft Hesabı ile oturum açmanız istenebilir. İstenirse Azure aboneliğinizle ilişkili olan hesabı kullanın.
İndirilen profili kolayca erişebileceğiniz bir dosya konumuna kaydedin.
İndirdiğiniz yayımlama profilini içeri aktarmak için aşağıdaki cmdlet'i çalıştırın:
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.
Uygulamayı yayımlama
Yayımlamak için aşağıdaki komutu çalıştırın:
$ServiceName = "NodeHelloWorld" + $(Get-Date -Format ('ddhhmm'))
Publish-AzureServiceProject -ServiceName $ServiceName -Location "East US" -Launch
- -ServiceName dağıtımın adını belirtir. Bu bir benzersiz ad olmalıdır, aksi takdirde yayımlama işlemi başarısız olur. Get-Date komutu, adı benzersiz hale getirmesi gereken bir tarih/saat dizesine eklenir.
- -Location, uygulamanın barındırılacağı veri merkezini belirtir. Kullanılabilir veri merkezlerinin listesini görmek için Get-AzureLocation cmdlet'ini kullanın.
- -Launch bir tarayıcı penceresi açar ve dağıtım tamamlandıktan sonra barındırılan hizmete gider.
Yayımlama başarılı olduktan sonra aşağıdakine benzer bir yanıt görürsünüz:
Not
Uygulamanın dağıtılması ve ilk kez yayımlandığında kullanılabilir olması birkaç dakika sürebilir.
Dağıtım tamamlandıktan sonra bir tarayıcı penceresi açın ve bulut hizmetine gidin.
Uygulamanız artık Azure üzerinde çalışıyor.
Publish-AzureServiceProject cmdlet’i aşağıdaki adımları uygular:
- Dağıtacağınız bir paket oluşturur. Paket, uygulama klasörünüzdeki tüm dosyaları içerir.
- Mevcut değilse yeni bir depolama hesabı oluşturur. Azure depolama hesabı, dağıtım sırasında uygulama paketini depolamak için kullanılır. Dağıtım bittikten sonra depolama hesabını güvenli bir şekilde silebilirsiniz.
- Henüz mevcut değilse yeni bir bulut hizmeti oluşturur. Bulut hizmeti uygulamanızın Azure’a dağıtıldığında barındırıldığı kapsayıcıdır. Daha fazla bilgi için bkz. Azure için Barındırılan Hizmet Oluşturmaya Genel Bakış.
- Dağıtım paketini Azure’da yayımlar.
Uygulamanızı durdurma ve silme
Uygulamanızı dağıttıktan sonra ek maliyetlerden kaçınmak için devre dışı bırakmak isteyebilirsiniz. Azure web rolü örneklerini harcanan sunucu saati başına faturalandırır. Uygulamanız dağıtıldıktan sonra örnekler çalışmadığında ve durdurulmuş halde olduğunda bile sunucu saati harcanır.
Windows PowerShell penceresinde önceki bölümde oluşturulan hizmet dağıtımını aşağıdaki cmdlet ile durdurun:
Stop-AzureService
Hizmetin durdurulması birkaç dakika sürebilir. Hizmet durdurulduğunda bunu belirten bir ileti alırsınız.
Hizmeti silmek için aşağıdaki cmdlet'i çağırın:
Remove-AzureService
İstendiğinde hizmeti silmek için Y yazın.
Hizmetin silinmesi birkaç dakika sürebilir. Hizmet silindikten sonra bunu belirten bir ileti alırsınız.
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. Depolama alanı başka bir işlem tarafından kullanılmıyorsa silmek isteyebilirsiniz.
Sonraki adımlar
Daha fazla bilgi için bkz. Node.js Geliştirici Merkezi.