Bagikan melalui


Menerbitkan aplikasi Node.js ke Azure (Linux App Service)

Tutorial ini memandu Anda melalui tugas membuat aplikasi Node.js sederhana dan menerbitkannya ke Azure.

Saat menerbitkan aplikasi Node.js ke Azure, ada beberapa opsi. Ini termasuk Azure App Service, VM yang menjalankan OS pilihan Anda, Azure Container Service (AKS) untuk manajemen dengan Kubernetes, Instans Kontainer menggunakan Docker, dan banyak lagi. Untuk detail selengkapnya tentang masing-masing opsi ini, lihat Compute.

Untuk tutorial ini, Anda menyebarkan aplikasi untuk Linux App Service. Linux App Service menyebarkan kontainer Linux Docker untuk menjalankan aplikasi Node.js (dibandingkan dengan Windows App Service, yang menjalankan aplikasi Node.js di belakang IIS di Windows).

Tutorial ini menunjukkan cara membuat aplikasi Node.js mulai dari templat yang diinstal dengan Node.js Tools for Visual Studio, mendorong kode ke repositori di GitHub, lalu menyediakan Azure App Service melalui portal web Azure sehingga Anda dapat menyebarkan dari repositori GitHub. Untuk menggunakan baris perintah untuk menyediakan Azure App Service dan mengunggah kode dari repositori Git lokal, lihat Membuat Node.js Aplikasi.

Penting

Informasi dalam artikel ini hanya berlaku untuk jenis proyek Node.js (.njsproj). Templat yang digunakan dalam artikel ini tidak tersedia lagi mulai dari Visual Studio 2022 versi 17.8 Pratinjau 2.

Dalam tutorial ini, Anda mempelajari cara:

  • Membuat proyek Node.js
  • Membuat repositori GitHub untuk kode
  • Membuat Linux App Service di Azure
  • Menyebarkan ke Linux

Prasyarat

  • Anda harus menginstal Visual Studio dan beban kerja pengembangan Node.js.

    Jika Anda belum menginstal Visual Studio 2019, buka halaman unduhan Visual Studio untuk menginstalnya secara gratis.

    Jika Anda perlu menginstal beban kerja tetapi sudah memiliki Visual Studio, buka Alat >Dapatkan Alat dan Fitur..., yang membuka Alat Penginstal Visual Studio. Pilih Node.js beban kerja pengembangan, lalu pilih Ubah .

    Node.js beban kerja di VS Penginstal

  • Anda harus menginstal runtime Node.js.

    Jika Anda tidak menginstalnya, instal versi LTS dari situs web Node.js. Secara umum, Visual Studio secara otomatis mendeteksi runtime Node.js yang diinstal. Jika tidak mendeteksi runtime yang diinstal, Anda dapat mengonfigurasi proyek Anda untuk mereferensikan runtime terinstal di halaman properti (setelah Anda membuat proyek, klik kanan simpul proyek dan pilih properti ).

Membuat proyek Node.js untuk dijalankan di Azure

  1. Buka Visual Studio.

  2. Buat aplikasi TypeScript Express baru.

    Tekan Esc untuk menutup jendela mulai. Ketik Ctrl + Q untuk membuka kotak pencarian, ketik Node.js, lalu pilih Buat aplikasi Azure Node.js Express 4 baru (TypeScript). Dalam kotak dialog yang muncul, pilih Buat.

    Jika Anda tidak melihat templat proyek aplikasi Azure Node.js Express 4 Dasar, Anda harus menambahkan beban kerja pengembanganNode.js. Untuk petunjuk terperinci, lihat Prasyarat .

    Visual Studio membuat proyek dan membukanya di Penjelajah Solusi (panel kanan).

  3. Tekan F5 untuk membuat dan menjalankan aplikasi, dan pastikan semuanya berjalan seperti yang diharapkan.

  4. Pilih File>Tambahkan ke kontrol sumber untuk membuat repositori Git lokal untuk proyek.

    Saat ini, aplikasi Node.js menggunakan kerangka kerja Express dan ditulis dalam TypeScript berfungsi dan telah di-commit ke sistem kontrol versi lokal.

  5. Edit proyek sesuai keinginan sebelum melanjutkan ke langkah berikutnya.

Mendorong kode dari Visual Studio ke GitHub

Untuk menyiapkan GitHub untuk Visual Studio:

  1. Pastikan Ekstensi GitHub untuk Visual Studio diinstal dan diaktifkan menggunakan item menu Alat>Ekstensi dan Pembaruan.

  2. Dari menu pilih Lihat>Windows lain>GitHub.

    Jendela GitHub terbuka.

  3. Jika Anda tidak melihat tombol Mulai di jendela GitHub, klik File>Tambahkan ke Kontrol Sumber dan tunggu hingga UI diperbarui.

    Buka jendela GitHub

  4. Klik Mulai.

    Jika Anda sudah tersambung ke GitHub, kotak alat tampak mirip dengan ilustrasi berikut.

    pengaturan repositori GitHub

  5. Lengkapi bidang untuk repositori baru yang akan diterbitkan, lalu klik Terbitkan.

    Setelah beberapa saat, banner yang menyatakan "Repositori berhasil dibuat" muncul.

    Di bagian berikutnya, Anda mempelajari cara menerbitkan dari repositori ini ke Azure App Service di Linux.

Membuat Linux App Service di Azure

  1. Masuk ke portal Microsoft Azure .

  2. Pilih App Services dari daftar layanan di sebelah kiri, lalu klik Tambahkan.

  3. Jika diperlukan, buat paket Grup Sumber Daya dan App Service baru untuk menghosting aplikasi baru.

  4. Pastikan untuk mengatur OS ke Linux, dan atur Runtime Stack ke versi Node.js yang diperlukan, seperti yang ditunjukkan dalam ilustrasi.

    Membuat Layanan Aplikasi Linux

  5. Klik Buat untuk membuat App Service.

    Mungkin perlu waktu beberapa menit untuk disebarkan.

  6. Setelah disebarkan, buka bagian Pengaturan aplikasi, dan tambahkan pengaturan dengan nama SCM_SCRIPT_GENERATOR_ARGS dan nilai --node.

    Peringatan

    Proses penyebaran App Service menggunakan serangkaian heuristik untuk menentukan jenis aplikasi mana yang akan dicoba dan dijalankan. Jika file .sln terdeteksi dalam konten yang disebarkan, diasumsikan bahwa proyek berbasis MSBuild sedang disebarkan. Pengaturan yang ditambahkan di atas mengambil alih logika ini dan menentukan secara eksplisit bahwa ini adalah aplikasi Node.js. Tanpa pengaturan ini, aplikasi Node.js akan gagal disebarkan jika .file sln adalah bagian dari repositori yang disebarkan ke App Service.

  7. Di bawah Pengaturan aplikasi, tambahkan pengaturan lain dengan nama WEBSITE_NODE_DEFAULT_VERSION dan nilai 8.9.0.

  8. Setelah disebarkan, buka App Service dan pilih Opsi Penyebaran .

    Opsi Penyebaran

  9. Klik Pilih sumber, lalu pilih GitHub, lalu konfigurasikan izin yang diperlukan.

    izin GitHub

  10. Pilih repositori dan cabang untuk diterbitkan, lalu pilih OK.

    Terbitkan ke Linux App Service

    Halaman opsi penyebaran muncul ketika menyinkronkan.

    Menyebarkan dan menyinkronkan dengan GitHub

    Setelah selesai disinkronkan, tanda centang akan muncul.

    Situs ini sekarang menjalankan aplikasi Node.js dari repositori GitHub, dan dapat diakses di URL yang dibuat untuk Azure App Service (secara default nama yang diberikan ke Azure App Service diikuti oleh .azurewebsites.net).

Ubah aplikasi Anda dan terapkan perubahan

  1. Tambahkan kode yang ditampilkan di sini di app.ts setelah baris app.use('/users', users);. Ini menambahkan REST API di URL /api.

    app.use('/api', (req, res, next) => {
        res.json({"result": "success"});
    });
    
  2. Buat kode dan uji secara lokal, lalu periksa dan dorong ke GitHub.

    Di portal Microsoft Azure, dibutuhkan beberapa saat untuk mendeteksi perubahan dalam repositori GitHub, lalu sinkronisasi baru penyebaran dimulai. Ini terlihat mirip dengan ilustrasi berikut.

    Mengubah dan menyinkronkan

  3. Setelah penyebaran selesai, navigasikan ke situs publik dan tambahkan /api ke URL. Respons JSON akan dikembalikan.

Pemecahan masalah

  • Jika proses node.exe mati (yaitu, pengecualian yang tidak tertangani terjadi), kontainer dimulai ulang.
  • Ketika kontainer dimulai, itu menggunakan berbagai heuristik untuk mencari tahu cara memulai proses Node.js. Detail implementasi dapat dilihat pada generateStartupCommand.js.
  • Anda dapat terhubung ke kontainer yang sedang berjalan melalui SSH untuk penyelidikan. Ini mudah dilakukan menggunakan portal Microsoft Azure. Pilih App Service, dan gulir ke bawah daftar alat hingga mencapai SSH di bawah bagian Alat Pengembangan.
  • Untuk membantu dalam pemecahan masalah, buka pengaturan log Diagnostik untuk App Service, dan ubah pengaturan pencatatan log Kontainer Docker dari Nonaktif menjadi Sistem File. Log dibuat dalam kontainer di bawah /home/LogFiles/_docker.log*, dan dapat diakses pada kotak menggunakan SSH atau FTP(S).
  • Nama domain kustom mungkin ditetapkan ke situs, bukan *.azurewebsites.net URL yang ditetapkan secara default. Untuk detail selengkapnya, lihat topik Menetapkan Domain Kustom.
  • Menyebarkan ke situs staging untuk pengujian lebih lanjut sebelum pindah ke produksi adalah praktik terbaik. Untuk detail cara mengonfigurasi ini, lihat pada topik Membuat lingkungan penahapan.
  • Lihat FAQ App Service di Linux untuk pertanyaan umum.

Langkah berikutnya

Dalam tutorial ini, Anda mempelajari cara membuat Linux App Service dan menyebarkan aplikasi Node.js ke layanan. Anda mungkin ingin mempelajari lebih lanjut tentang Linux App Service.