Aracılığıyla paylaş


Azure'da Node.js uygulaması yayımlama (Linux App Service)

Bu öğretici, basit bir Node.js uygulaması oluşturma ve uygulamayı Azure'da yayımlama görevi boyunca size yol gösterir.

Azure'da Node.js bir uygulama yayımlarken çeşitli seçenekler vardır. Bunlar arasında Azure App Service, seçtiğiniz bir işletim sistemini çalıştıran bir VM, Kubernetes ile yönetim için Azure Container Service (AKS), Docker kullanan bir Kapsayıcı Örneği ve daha fazlası yer alır. Daha fazla bilgi için her bir seçenek için bkz. İşlem.

Bu öğreticide, uygulamayı Linux App Servicedağıtacaksınız. Linux App Service, Node.js uygulamasını çalıştırmak için bir Linux Docker kapsayıcısı dağıtır (Windows üzerinde IIS arkasında Node.js uygulamalar çalıştıran Windows App Service'in aksine).

Bu öğreticide Visual Studio için Node.js Araçları ile yüklenen bir şablondan başlayarak bir Node.js uygulaması oluşturma, kodu GitHub'daki bir depoya gönderme ve ardından GitHub deposundan dağıtım yapabilmeniz için Azure web portalı aracılığıyla Azure App Service sağlama adımları gösterilmektedir. Komut satırını kullanarak Azure App Service'i sağlamak ve kodu yerel bir Git deposundan göndermek için bkz. Node.js Uygulama oluşturma .

Önemli

Bu makaledeki bilgiler yalnızca Node.js proje türü (.njsproj) için geçerlidir. Bu makalede kullanılan şablon artık Visual Studio 2022 sürüm 17.8 Önizleme 2'den itibaren kullanılamaz.

Bu öğreticide şunların nasıl yapılacağını öğreneceksiniz:

  • Node.js projesi oluşturma
  • Kod için GitHub deposu oluşturma
  • Azure'da Linux App Service oluşturma
  • Linux'a dağıtım yap

Önkoşullar

  • Visual Studio'yu ve Node.js geliştirme iş yükünü yüklemiş olmanız gerekir.

    Visual Studio 2019'u henüz yüklemediyseniz Visual Studio indirmeleri sayfasına giderek ücretsiz yükleyin.

    İş yükünü yüklemeniz gerekiyorsa ancak Visual Studio zaten yüklüyse, Visual Studio Yükleyicisi'ni açan Araçlar>Araçlar ve Özellikleri Al...seçeneğine gidin. Node.js geliştirme iş yükünü seçin ve ardından Değiştiröğesini seçin.

    VS InstallerNode.js iş yükü

  • Node.js çalışma zamanının yüklü olduğundan emin olmalısınız.

    Yüklü değilse Node.js web sitesinden LTS sürümünü yükleyin. Genel olarak, Visual Studio yüklü Node.js çalışma zamanını otomatik olarak algılar. Yüklü bir çalışma zamanını algılamazsa, projenizi özellikler sayfasında yüklü çalışma zamanına başvuracak şekilde yapılandırabilirsiniz (proje oluşturduktan sonra proje düğümüne sağ tıklayın ve özellikler seçin).

Azure'da çalıştırılacak bir Node.js projesi oluşturma

  1. Visual Studio'yu açın.

  2. Yeni bir TypeScript Express uygulaması oluşturun.

    Başlangıç penceresini kapatmak için esc basın. Arama kutusunu açmak için Ctrl + Q yazın, Node.jsyazın ve ardından Yeni Temel Azure Node.js Express 4 uygulaması (TypeScript) oluştur seçin. Görüntülenen iletişim kutusunda Oluştur'useçin.

    Temel Azure Node.js Express 4 uygulama proje şablonunu görmüyorsanız Node.js geliştirme iş yükünü eklemeniz gerekir. Ayrıntılı yönergeler için Önkoşullarbölümüne bakın.

    Visual Studio projeyi oluşturur ve Çözüm Gezgini'nde (sağ bölme) açar.

  3. Uygulamayı derlemek ve çalıştırmak için F5 basın ve her şeyin beklendiği gibi çalıştığından emin olun.

  4. Kaynak kontrolüne eklemek içinprojeye yerel bir Git deposu oluşturmak üzere Dosya> seçeneklerini seçin.

    Bu noktada Express çerçevesini kullanan ve TypeScript'te yazılan bir Node.js uygulaması çalışır ve yerel kaynak denetimine iade edilir.

  5. Sonraki adımlara geçmeden önce projeyi istediğiniz gibi düzenleyin.

Visual Studio'dan GitHub'a kod gönderme

Visual Studio için GitHub'ı ayarlamak için:

  1. Visual Studio için GitHub Uzantısı'nın yüklendiğinden ve araçlar >Uzantılar ve Güncelleştirmelermenü öğesi kullanılarak etkinleştirildiğinden emin olun.

  2. Menüden Görünüm>Diğer Pencereler>GitHuböğesini seçin.

    GitHub penceresi açılır.

  3. GitHub penceresinde Başlarken düğmesini görmüyorsanız, Dosya>Kaynağa Ekle seçeneğine tıklayın ve kullanıcı arabiriminin güncellenmesini bekleyin.

    GitHub penceresini açma

  4. Başlangıç tıklayın.

    GitHub'a zaten bağlıysanız araç kutusu aşağıdaki çizime benzer şekilde görünür.

    GitHub deposu ayarlarını

  5. Yeni depoyu yayımlamak için alanları doldurun ve ardından Yayımlaseçeneğine tıklayın.

    Birkaç dakika sonra "Depo başarıyla oluşturuldu" ifadesini içeren bir başlık görüntülenir.

    Sonraki bölümde, bu depodan Linux üzerinde Azure App Service'e yayımlamayı öğreneceksiniz.

Azure'da Linux App Service oluşturma

  1. Azure portalınaoturum açın.

  2. Soldaki hizmetler listesinden Uygulama Hizmetleri'ni seçin ve ardından Ekleöğesine tıklayın.

  3. Gerekirse, yeni uygulamayı barındırmak için yeni bir Kaynak Grubu ve App Service planı oluşturun.

  4. işletim sistemiLinuxolarak ayarladığınızdan ve çizimde gösterildiği gibi Çalışma Zamanı Yığını gerekli Node.js sürümüne ayarladığınızdan emin olun.

    Bir Linux App Service oluşturma

  5. App Service'i oluşturmak için Oluştur'a tıklayın.

    Dağıtımı birkaç dakika sürebilir.

  6. Dağıtıldıktan sonra Uygulama ayarları bölümüne gidin ve SCM_SCRIPT_GENERATOR_ARGS adına ve --nodedeğerine sahip bir ayar ekleyin.

    uygulama ayarlarını

    Uyarı

    App Service dağıtım işlemi, deneyip çalıştırılacak uygulama türünü belirlemek için bir dizi buluşsal yöntem kullanır. Eğer dağıtılan içerikte bir .sln dosyası algılanırsa, MSBuild tabanlı bir projenin dağıtıldığı varsayılır. Yukarıda eklenen ayar bu mantığı geçersiz kılar ve bunun Node.js bir uygulama olduğunu açıkça belirtir. Bu ayar olmadan,sln dosyası App Service'e dağıtılan deponun bir parçasıysa Node.js uygulaması başarısız olur ve dağıtılamaz.

  7. uygulama ayarları altında, WEBSITE_NODE_DEFAULT_VERSION adına ve 8.9.0değerine sahip başka bir ayar ekleyin.

  8. Dağıtıldıktan sonra App Service'i açın ve Dağıtım seçenekleri'niseçin.

    Dağıtım seçenekleri

  9. Kaynakseçin'e tıklayın, ardından GitHubseçin ve gerekli izinleri yapılandırın.

    GitHub izinlerini

  10. Yayımlayacak depoyu ve dalı seçin ve ardından Tamam'ı seçin.

    Linux App Service 'da yayımlayın

    dağıtım seçenekleri sayfası eşitlenirken görüntülenir.

    GitHub ile dağıtma ve eşitleme

    Eşitleme tamamlandıktan sonra bir onay işareti görüntülenir.

    Site artık GitHub deposundan Node.js uygulamasını çalıştırıyor ve Azure App Service için oluşturulan URL'den erişilebilir (varsayılan olarak Azure App Service'e verilen ad ve ardından .azurewebsites.net).

Uygulamanızı değiştirme ve değişiklikleri gönderme

  1. Burada gösterilen kodu, app.use('/users', users);satırından sonra app.ts'ye ekleyin. Bu, URL'sinde /apibir REST API ekler.

    app.use('/api', (req, res, next) => {
        res.json({"result": "success"});
    });
    
  2. Kodu derleyin ve yerel olarak test edin ve doğrulayın, ardından sisteme kaydedin ve GitHub'a gönderin.

    Azure portalında GitHub deposundaki değişiklikleri algılamak birkaç dakika sürer ve ardından dağıtımın yeni bir eşitlemesi başlar. Bu, aşağıdaki çizime benzer.

    Değiştirme ve eşitleme

  3. Dağıtım tamamlandıktan sonra genel siteye gidin ve URL'ye /api ekleyin. JSON yanıtı döndürülür.

Sorun giderme

  • node.exe işlemi ölürse (yani işlenmeyen bir özel durum oluşursa), kapsayıcı yeniden başlatılır.
  • Kapsayıcı başlatıldığında, Node.js işleminin nasıl başlatacağını bulmak için çeşitli buluşsal yöntemlerle çalışır. Uygulamanın ayrıntıları generateStartupCommand.jsgörülebilir.
  • Araştırma için SSH aracılığıyla çalışan kapsayıcıya bağlanabilirsiniz. Bu, Azure portalı kullanılarak kolayca gerçekleştirilir. App Service'i seçin ve Geliştirme Araçları bölümünün altında SSH ulaşana kadar araç listesini aşağı kaydırın.
  • Sorun gidermeye yardımcı olmak için App Service için Tanılama günlükleri ayarlarına gidin ve Docker Kapsayıcısı günlük kaydı ayarını KapalıDosya Sistemiolarak değiştirin. Günlükler kapsayıcıda /home/LogFiles/_docker.log* altında oluşturulur ve kutuya SSH veya FTP(S) kullanılarak erişilebilir.
  • Siteye varsayılan olarak atanan *.azurewebsites.net URL'si yerine özel bir etki alanı adı atanabilir. Daha fazla ayrıntı için Özel Etki Alanı eşlemekonusuna bakın.
  • Üretime geçmeden önce daha fazla test için bir hazırlama sitesine dağıtmak en iyi yöntemdir. Bunu yapılandırma hakkında ayrıntılı bilgi için Hazırlama ortamları oluşturmakonusuna bakın.
  • Sıkça Sorulan Sorular için Linux için Uygulama Hizmeti SSS bölümüne bakın.

Sonraki adımlar

Bu öğreticide, Linux App Service oluşturmayı ve hizmete bir Node.js uygulaması dağıtmayı öğrendiniz. Linux App Service hakkında daha fazla bilgi edinmek isteyebilirsiniz.

Linux App Service