Azure App Service'te Node.js web uygulaması oluşturma

Bu hızlı başlangıçta, ilk Node.js (Express) web uygulamanızı oluşturma ve Azure App Service. App Service, hem Linux hem de Node.js'ta çeşitli sürümlerini Windows.

Bu hızlı başlangıç, ücretsiz App Service bir uygulama yapılandırarak Azure aboneliğiniz için ücret ödemez.

İlk ortamınızı ayarlama

Node.js oluşturma

Bu adımda, bir başlangıç uygulaması Node.js ve bilgisayarınızda çalıştırıla olduğundan emin olun.

İpucu

Uygulama öğreticisini zatenNode.js Azure'adağıtma adımına atlayabilirsiniz.

  1. Node.js Node.js ve NPM ile varsayılan olarak yüklü olan Express Generator'ıkullanarak basit bir Node.js oluşturun.

    npx express-generator myExpressApp --view pug
    
  2. Uygulamanın dizinine değişiklik yapmak ve NPM paketlerini yüklemek.

    cd myExpressApp
    npm install
    
  3. Geliştirme sunucusunu başlatma.

    npm start
    
  4. Tarayıcıda'ya http://localhost:3000 gidin. Şuna benzer bir şey görmeniz gerekir:

    Hızlı Uygulama Çalıştırma

Azure’a dağıtın

Devam etmek için tüm önkoşulların yüklü ve yapılandırılmış olduğundan emin olur.

Not

Uygulama Node.js Azure'da çalışması için ortam değişkeni tarafından sağlanan bağlantı noktasını PORT dinlemesi gerekir. Oluşturulan Express uygulamanıza bu ortam değişkeni zaten başlangıç betiği bin/www içinde kullanılmıştır (için process.env.PORT arama).

Azure'da oturum açma

  1. Terminalde myExpressApp dizininde olduğundan emin olun ve aşağıdaki komutla Visual Studio Code başlatabilirsiniz:

    code .
    
  2. Bu Visual Studio Code Etkinlik Çubuğunda Azure logosunu seçin.

  3. Bu App Service Azure'da oturum açın... öğesini seçin ve yönergeleri izleyin.

    Bu Visual Studio Code Azure e-posta adresinizi Azure APP SERVICE gezgininde durum çubuğunda ve aboneliğinizi görüyor olun.

    Azure'da oturum açma

App Service uygulamasını yapılandırma ve kod dağıtma

  1. Web App Service Web Uygulamasına Dağıt simgesini seçin.

    Seçili mavi ok simgesini gösteren azure Visual Studio Code Azure App Service'in ekran görüntüsü.

  2. myExpressApp klasörünü seçin.

  1. Yeni Web Uygulaması oluştur'a seçin. Linux kapsayıcısı varsayılan olarak kullanılır.

  2. Web uygulamanız için genel olarak benzersiz bir ad yazın ve Enter tuşuna basın. Ad Tüm Azure'da benzersiz olmalı ve yalnızca alfasayısal karakterler ('A-Z', 'a-z', '0-9') ve kısa çizgi ('-' ) kullanmalıdır.

  3. Çalışma zamanı yığını seçin altında istediğiniz Node.js sürümünü seçin. LTS sürümü önerilir.

  4. Fiyatlandırma katmanı seçin'de Ücretsiz (F1) öğesini seçin ve Kaynakların Azure'da sağlanmasını bekleyin.

  5. Açılan pencerede Her zaman "myExpressApp" çalışma alanını " olarak <app-name> dağıtın, Evet'i seçin. Bu şekilde, aynı çalışma alanında olduğu sürece, Visual Studio Code her App Service aynı App Service dağıtır.

    Azure Visual Studio Code sağlar ve kodu dağıtırken ilerleme bildirimleri gösterir.

  6. Dağıtım tamamlandıktan sonra bildirim açılan menüsünden Web Sitesine Gözat'ı seçin. Tarayıcıda Express varsayılan sayfası görüntüleniyor.

Terminalde, myExpressApp dizininde olduğundan emin olun ve komutunu kullanarak kodu yerel klasörünüze (myExpressApp) az webapp up dağıtın:

az webapp up --sku F1 --name <app-name>
  • Komut az tanınmıyorsa, İlk ortamınızı ayarlama konusunda açıklandığı gibi Azure CLI'nin yüklü olduğundan emin olun.
  • yerine <app_name> Tüm Azure'da benzersiz olan bir ad yazın (geçerli karakterler , ve a-z 0-9 karakterleridir). - İyi bir desen, şirket adınızla uygulama tanımlayıcısının bir birleşimini kullanmaktır.
  • bağımsız --sku F1 değişkeni, ücretsiz fiyatlandırma katmanında web uygulamasını oluşturur ve bu da ücrete neden olmaz.
  • İsteğe bağlı olarak, kullanılabilir bir --location <location-name> Azure bölgesi olan bağımsız <location_name> değişkenlerini dahil edin. komutunu çalıştırarak Azure hesabınız için izin verilebilir bölgelerin listesini az account list-locations edinebilirsiniz.
  • Komutu, varsayılan olarak Node.js için bir Linux uygulaması oluşturur. Bunun yerine bir Windows oluşturmak için bağımsız değişkenlerini --os-type kullanın.
  • "Uygulamanın çalışma zamanı yığını otomatik olarak algılanamadı" hatasını görüyorsanız myExpressApp dizininde komutunu çalıştırarak emin olun (bkz. az webapp upile ilgili otomatik algılama sorunlarını giderme).

Komutun tamamlanması birkaç dakika sürebilir. Çalışırken, kaynak grubu, App Service planı ve uygulama kaynağı oluşturma, günlüğü yapılandırma ve ZIP dağıtımı yapma hakkında iletiler sağlar. Daha sonra, "uygulamayı < > Azure 'da uygulamanın URL 'si olan http://app-name. azurewebsites.net konumunda başlatabilirsiniz.

The webapp '<app-name>' doesn't exist
Creating Resource group '<group-name>' ...
Resource group creation complete
Creating AppServicePlan '<app-service-plan-name>' ...
Creating webapp '<app-name>' ...
Configuring default logging for the app, if not already enabled
Creating zip with contents of dir /home/cephas/myExpressApp ...
Getting scm site credentials for zip deployment
Starting zip deployment. This operation can take a while to complete ...
Deployment endpoint responded with status code 202
You can launch the app at http://<app-name>.azurewebsites.net
{
  "URL": "http://<app-name>.azurewebsites.net",
  "appserviceplan": "<app-service-plan-name>",
  "location": "centralus",
  "name": "<app-name>",
  "os": "<os-type>",
  "resourcegroup": "<group-name>",
  "runtime_version": "node|10.14",
  "runtime_version_detected": "0.0",
  "sku": "FREE",
  "src_path": "//home//cephas//myExpressApp"
}

Not

az webapp up komutu şu eylemleri gerçekleştirir:

Azure portalda oturum açın

https://portal.azure.com adresinden Azure portalında oturum açın.

Azure kaynakları oluşturma

  1. Aramaya uygulama hizmetleri yazın. Hizmetler altında uygulama hizmetleri' ni seçin.

    Portal arama ekran görüntüsü

  2. Uygulama hizmetleri sayfasında Oluştur' u seçin.

  3. Temel Bilgiler sekmesinde, Proje ayrıntıları altında, doğru aboneliğin seçildiğinden emin olun, ardından Yeni oluştur kaynak grubunu seçin. Ad için Myresourcegroup yazın.

    web uygulaması için Azure aboneliğini ve kaynak grubunu nerede seçdiğinin gösterildiği Project ayrıntıları bölümünün ekran görüntüsü

  4. Örnek ayrıntıları' nın altında, Web uygulamanız için genel olarak benzersiz bir ad yazın ve kod' u seçin. Düğüm 14 LTS çalışma zamanı yığını, bir işletim sistemi ve uygulamanıza hizmeti sağlamak istediğiniz bölgeyi seçin.

    Sanal makine için bir ad verdiğiniz örnek ayrıntıları bölümünün ekran görüntüsü ve kendi bölgesini, görüntüsünü ve boyutunu seçebilirsiniz

  5. App Service planı altında yeni App Service planı oluşturmayı seçin. Ad için Myappserviceplan yazın. Ücretsiz katmana geçiş yapmak için boyutu Değiştir' e tıklayın, geliştirme/test sekmesini seçin, F1' i seçin ve sayfanın altındaki Uygula düğmesini seçin.

    Yönetici Kullanıcı adını ve parolasını sağladığınız yönetici hesabı bölümünün ekran görüntüsü

  6. Sayfanın alt kısmındaki gözden geçir + oluştur düğmesini seçin.

    Sayfanın alt kısmındaki Inceleme ve oluşturma düğmesini gösteren ekran görüntüsü

  7. Doğrulama çalıştıktan sonra sayfanın alt kısmındaki Oluştur düğmesini seçin.

  8. Dağıtım tamamlandıktan sonra Kaynağa Git' i seçin.

    Kaynağa giden sonraki adımı gösteren ekran görüntüsü

FTP kimlik bilgilerini al

Azure App Service, FTP/S dağıtımı için iki tür kimlik bilgilerini destekler. Bu kimlik bilgileri, Azure aboneliğiniz kimlik bilgilerinizle aynı değildir. Bu bölümde, FileZilla ile kullanmak için uygulama kapsamı kimlik bilgilerini alacaksınız.

  1. App Service uygulaması sayfasında, sol taraftaki menüden Dağıtım Merkezi ' ne tıklayın ve FTPS kimlik bilgileri sekmesini seçin.

    FTPS dağıtım kimlik bilgileri

  2. FileZilla açın ve yeni bir site oluşturun.

  3. FTPS kimlik bilgileri sekmesinde, FTPS uç noktası, Kullanıcı adı ve parolayı FileZilla içine kopyalayın.

    FTPS bağlantı ayrıntıları

  4. FileZilla içinde Bağlan ' ye tıklayın.

FTP ile dosya dağıtma

  1. Tüm dosya ve dizin dosyalarını Azure 'da /site/Wwwroot dizinine kopyalayın.

    FileZilla dağıtım dosyaları

  2. Uygulamanın düzgün çalıştığını doğrulamak için uygulamanızın URL 'sine gidin.

Güncelleştirmeleri yeniden Dağıt

Visual Studio Code düzenlemeler yaparak, dosyalarınızı kaydederek ve sonra Azure uygulamanıza yeniden dağıtarak bu uygulamaya yapılan değişiklikleri dağıtabilirsiniz. Örnek:

  1. Örnek projeden Görünümler/index. Pug öğesini açın ve değiştirin

    p Welcome to #{title}
    

    kullanıcısı

    p Welcome to Azure!
    
  1. App Service Gezgini ' nde Web uygulamasına dağıt simgesini tekrar seçin, yeniden Dağıt ' a tıklayarak onaylayın.

  2. Dağıtımın tamamlanmasını bekleyin, sonra bildirim açılır penceresinde Web sitesine gözatamazsınız ' ı seçin. Welcome to Expressİletinin olarak değiştirildiğini görmeniz gerekir Welcome to Azure! .

  1. Değişikliklerinizi kaydedin, sonra az webapp up komutu bir bağımsız değişken olmadan tekrar kullanarak uygulamayı yeniden dağıtın:

    az webapp up
    

    Bu komut, uygulama adı, kaynak grubu ve App Service planı gibi . Azure/config dosyasında yerel olarak önbelleğe alınan değerleri kullanır.

  2. Dağıtım tamamlandıktan sonra, Web sayfasını yenileyin http://<app-name>.azurewebsites.net . Welcome to Expressİletinin olarak değiştirildiğini görmeniz gerekir Welcome to Azure! .

  1. Değişikliklerinizi kaydedin ve sonra FTP istemcinizi kullanarak uygulamayı yeniden dağıtın.

  2. Dağıtım tamamlandıktan sonra, Web sayfasını yenileyin http://<app-name>.azurewebsites.net . Welcome to Expressİletinin olarak değiştirildiğini görmeniz gerekir Welcome to Azure! .

Akış Günlükleri

console.log()Azure uygulamasından doğrudan Visual Studio Code çıkış penceresinde günlük çıktısını (çağrıları) akışla aktarabilirsiniz.

  1. App Service Gezgini ' nde, uygulama düğümüne sağ tıklayın ve akış günlüklerini Başlat' ı seçin.

    Akış günlüklerini başlatma

  2. Uygulamayı yeniden başlatmak isteyip istemediğiniz sorulursa Evet' e tıklayın. uygulama yeniden başlatıldıktan sonra Visual Studio Code çıkış penceresi, günlük akışı bağlantısıyla açılır.

  3. Birkaç saniye sonra çıkış penceresinde, günlük akış hizmetine bağlı olduğunuzu belirten bir ileti gösterilir. Tarayıcıdaki sayfayı yenileyerek daha fazla çıkış etkinliği oluşturabilirsiniz.

     Connecting to log stream...
     2020-03-04T19:29:44  Welcome, you are now connected to log-streaming service. The default timeout is 2 hours.
     Change the timeout with the App Setting SCM_LOGSTREAM_TIMEOUT (in seconds).
     

Uygulamanın içinden oluşturulan konsol günlüklerine ve çalıştığı kapsayıcıya erişebilirsiniz. Günlükler, çağrıları tarafından oluşturulan çıktıları içerir console.log() .

Günlükleri akışa almak için az WebApp log tail komutunu çalıştırın:

az webapp log tail

Komut . Azure/config dosyasında önbelleğe alınmış kaynak grubu adını kullanır.

--logs az webapp up Günlük akışını otomatik olarak dağıtımda açmak için parametresini then komutuyla da dahil edebilirsiniz.

Uygulamaya HTTP isteklerini açıklayan iletileri içeren konsol günlükleri oluşturmak için uygulamayı tarayıcıda yenileyin. Hiçbir çıkış hemen yoksa, 30 saniye içinde yeniden deneyin.

Günlük akışını istediğiniz zaman durdurmak için terminalde CTRL + C tuşuna basın.

Uygulamanın içinden oluşturulan konsol günlüklerine ve çalıştığı kapsayıcıya erişebilirsiniz. Node.js uygulamasından doğrudan Azure portal günlük çıkışını (öğesine çağrılar) akışla aktarabilirsiniz console.log() .

  1. Uygulamanızın aynı App Service sayfasında, izleme bölümüne gitmek için sol menüyü kullanın ve günlük akışı' na tıklayın.

    Azure App Service 'teki günlük akışının ekran görüntüsü.

  2. Birkaç saniye sonra çıkış penceresinde, günlük akış hizmetine bağlı olduğunuzu belirten bir ileti gösterilir. Tarayıcıdaki sayfayı yenileyerek daha fazla çıkış etkinliği oluşturabilirsiniz.

     Connecting...
     2021-10-26T21:04:14  Welcome, you are now connected to log-streaming service.
     Starting Log Tail -n 10 of existing logs ----
     /appsvctmp/volatile/logs/runtime/81b1b83b27ea1c3d598a1cdec28c71c4074ce66c735d0be57f15a8d07cb3178e.log
     2021-10-26T21:04:08.614384810Z: [INFO]
     2021-10-26T21:04:08.614393710Z: [INFO]  # Enter the source directory to make sure the script runs where the user expects
     2021-10-26T21:04:08.614399010Z: [INFO]  cd "/home/site/wwwroot"
     2021-10-26T21:04:08.614403210Z: [INFO]
     2021-10-26T21:04:08.614407110Z: [INFO]  export NODE_PATH=/usr/local/lib/node_modules:$NODE_PATH
     2021-10-26T21:04:08.614411210Z: [INFO]  if [ -z "$PORT" ]; then
     2021-10-26T21:04:08.614415310Z: [INFO]          export PORT=8080
     2021-10-26T21:04:08.614419610Z: [INFO]  fi
     2021-10-26T21:04:08.614423411Z: [INFO]
     2021-10-26T21:04:08.614427211Z: [INFO]  node /opt/startup/default-static-site.js
     Ending Log Tail of existing logs ---
     

Kaynakları temizleme

Önceki adımlarda, bir kaynak grubunda Azure kaynakları oluşturdunuz. Bu hızlı başlangıçta oluşturma adımları bu kaynak grubundaki tüm kaynakları koyar. Temizlemek için, yalnızca kaynak grubunu kaldırmanız yeterlidir.

  1. Visual Studio Azure uzantısında kaynak grupları gezginini genişletin.

  2. Aboneliği genişletin, daha önce oluşturduğunuz kaynak grubunu sağ tıklatın ve Sil' i seçin.

    App Service kaynakları içeren bir kaynağı silmeye yönelik Visual Studio Code gezinmesinin ekran görüntüsü.

  3. İstendiğinde, silmekte olduğunuz kaynak grubunun adını girerek silme işlemini onaylayın. Onaylama işlemi tamamlandıktan sonra kaynak grubu silinir ve tamamlandığında bir bildirim görürsünüz.

Önceki adımlarda, bir kaynak grubunda Azure kaynakları oluşturdunuz. Kaynak grubu, konumunuza bağlı olarak "appsvc_rg_Linux_CentralUS" gibi bir ada sahiptir.

Gelecekte bu kaynakların gerekli olmasını istemiyorsanız, aşağıdaki komutu çalıştırarak kaynak grubunu silin:

az group delete --no-wait

Komut . Azure/config dosyasında önbelleğe alınmış kaynak grubu adını kullanır.

--no-waitBağımsız değişkeni, işlem tamamlanmadan önce komutun dönmesini sağlar.

Artık gerekli değilse, kaynak grubunu, App Service 'i ve tüm ilgili kaynakları silebilirsiniz.

  1. App Service genel bakış sayfasında, Azure kaynakları oluştur adımında oluşturduğunuz kaynak grubuna tıklayın.

    App Service Genel Bakış sayfasında kaynak grubu

  2. Kaynak grubu sayfasında, kaynak grubunu sil' i seçin. Kaynakları silmeyi tamamlayacak kaynak grubunun adını onaylayın.

    Kaynak grubunu silme

Sonraki adımlar

Tebrikler, bu hızlı başlangıcı başarıyla tamamladınız!

Diğer Azure uzantılarına göz atabilirsiniz.

Veya Azure uzantı paketi için Düğüm Paketini yükleyerek bunların hepsini edinin.