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

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

Node.js uygulamasını Azure'da yayımlarken çeşitli seçenekler vardır. Bunlar Azure Uygulaması Hizmeti, seçtiğiniz 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ını içerir. Bu seçeneklerin her biri hakkında daha fazla ayrıntı için bkz . İşlem.

Bu öğreticide, uygulamayı Linux App Service'e dağı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'nin arkasında Node.js uygulamalarını çalıştıran Windows App Service'in aksine).

Bu öğreticide, Visual Studio için Node.js Araçları ile yüklenen bir şablondan başlayan bir Node.js uygulamasının nasıl oluşturulacağı, kodu GitHub'daki bir depoya nasıl gönderebileceğiniz ve ardından GitHub deposundan dağıtabilmeniz için Azure web portalı aracılığıyla bir Azure Uygulaması Hizmeti sağlama gösterilmektedir. komut satırını kullanarak Azure Uygulaması Hizmeti'ni sağlamak ve kodu yerel git deposundan göndermek için bkz. Node.js Uygulaması 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 aşağıdakilerin 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ğıtma

Ö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, ücretsiz yüklemek için Visual Studio indirmeleri sayfasına gidin.

    İş yükünü yüklemeniz gerekiyorsa ancak Visual Studio'nuz zaten varsa Araçlar>Araçları ve Özellikleri Al...'e gidin ve bu da Visual Studio Yükleyicisi açar. Node.js geliştirme iş yükünü ve ardından Değiştir'i seçin.

    Node.js workload in VS Installer

  • Node.js çalışma zamanının yüklü olması gerekir.

    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'i seçin).

Azure'da çalıştırılacak 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 tuşuna basın. Arama kutusunu açmak için Ctrl + Q yazın, Node.js yazın, ardından Yeni Temel Azure Node.js Express 4 uygulaması (TypeScript) oluştur'u seçin. Görüntülenen iletişim kutusunda Oluştur'u seçin.

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

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

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

  4. Proje için yerel bir Git deposu oluşturmak için Kaynak denetimine Dosya>Ekle'yi 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. Araç>Uzantıları ve Güncelleştirmeler menü öğesini kullanarak Visual Studio için GitHub Uzantısı'nın yüklendiğinden ve etkinleştirildiğinden emin olun.

  2. Menüden Diğer Windows GitHub'ı> Görüntüle'yi>seçin.

    GitHub penceresi açılır.

  3. GitHub penceresinde Başlarken düğmesini görmüyorsanız, Kaynak Denetimine Dosya>Ekle'ye tıklayın ve kullanıcı arabiriminin güncelleştirilmesini bekleyin.

    Open the GitHub window

  4. Başlarken'e tıklayın.

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

    GitHub repo settings

  5. Yeni deponun yayımlayacağı alanları doldurun ve yayımla'ya 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 bir Azure Uygulaması Hizmetine yayımlamayı öğreneceksiniz.

Azure'da Linux App Service oluşturma

  1. Azure Portal’ında oturum açın.

  2. Soldaki hizmetler listesinden Uygulama Hizmetleri'ni seçin ve ekle'ye tıklayın.

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

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

    Create a Linux App Service

  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 adı SCM_SCRIPT_GENERATOR_ARGS ve değeri --nodeolan bir ayar ekleyin.

    Application settings

    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. Bir ise.Dağıtılan içerikte sln dosyası algılandığında, MSBuild tabanlı bir projenin dağıtıldığı varsayılır. Yukarıda eklenen ayar bu mantığı geçersiz kılar ve bunun bir Node.js uygulaması olduğunu açıkça belirtir. Bu ayar olmadan, Node.js uygulaması dağıtılamaz.sln dosyası, App Service'e dağıtılan deponun bir parçasıdır.

  7. Uygulama ayarları'nınWEBSITE_NODE_DEFAULT_VERSION altında adı ve değeri 8.9.0olan başka bir ayar ekleyin.

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

    Deployment options

  9. Kaynak seç'e tıklayın ve GitHub'ı seçin ve gerekli izinleri yapılandırın.

    GitHub permissions

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

    Publish to Linux App Service

    Eşitleme sırasında dağıtım seçenekleri sayfası görüntülenir.

    Deploying and syncing with GitHub

    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 Uygulaması Hizmeti için oluşturulan URL'den (varsayılan olarak Azure Uygulaması Hizmetine verilen ad ve ardından ".azurewebsites.net") erişilebilir.

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

  1. burada app.ts dosyasında gösterilen kodu satırından app.use('/users', users);sonra ekleyin. Bu, URL /api'ye bir REST API ekler.

    app.use('/api', (req, res, next) => {
        res.json({"result": "success"});
    });
    
  2. Kodu derleyin ve yerel olarak test edin, ardından iade edin 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.

    Modify and sync

  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.js adresinde gö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ünde SSH'ye 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ı günlüğü ayarını Kapalı olan Dosya Sistemi olarak 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. Diğer ayrıntılar için Özel Etki Alanını Eşleme konusuna 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şturma konusuna bakın.
  • Daha sık sorulan sorular için Linux üzerinde App Service SSS bölümüne bakın.

Sonraki adımlar

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