Menerbitkan aplikasi Node.js ke Azure (App Service Linux)
Tutorial ini memandu Anda melalui tugas membuat aplikasi Node.js sederhana dan menerbitkannya ke Azure.
Terdapat beberapa opsi saat menerbitkan aplikasi Node.js ke Azure. Ini termasuk Azure App Service, VM yang menjalankan OS yang Anda pilih, Azure Container Service (AKS) untuk manajemen dengan Kubernetes, Instance Kontainer menggunakan Docker, dan banyak lagi. Untuk detail selengkapnya tentang masing-masing opsi ini, lihat Komputasi.
Untuk tutorial ini, Anda menyebarkan aplikasi ke App Service Linux. Linux App Service menyebarkan kontainer Docker Linux untuk menjalankan aplikasi Node.js (berlawanan 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 Alat Node.js untuk Visual Studio, memasukkan 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 mendorong kode dari repositori Git lokal, lihat Membuat Aplikasi Node.js.
Penting
Informasi dalam artikel ini hanya berlaku untuk jenis proyek Node.js (.njsproj). Templat yang digunakan dalam artikel ini tidak lagi tersedia mulai visual Studio 2022 versi 17.8 Pratinjau 2.
Dalam tutorial ini, Anda akan mempelajari cara:
- Buat proyek Node.js
- Membuat repositori GitHub untuk kode
- Membuat App Service Linux di Azure
- Menyebarkan ke Linux
Prasyarat
Anda harus menginstal Visual Studio dan beban kerja pengembangan Node.js.
Jika Anda belum memasang Visual Studio 2019, buka halaman unduhan Visual Studio untuk memasangnya 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 beban kerja pengembangan Node.js, lalu pilih Ubah.
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 merujuk runtime yang diinstal di halaman properti (setelah Anda membuat proyek, klik kanan node proyek dan pilih Properti).
Membuat proyek Node.js untuk dijalankan di Azure
Buka Visual Studio.
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 Dasar baru (TypeScript). Dalam kotak dialog yang muncul, pilih Buat.
Jika tidak melihat templat proyek Aplikasi Azure Node.js Express 4 Dasar, Anda perlu menambahkan beban kerja pengembangan Node.js. Untuk instruksi terperinci, lihat Prasyarat.
Visual Studio membuat proyek dan membukanya di Penjelajah Solusi (panel kanan).
Tekan F5 untuk membuat dan menjalankan aplikasi, dan pastikan semuanya berjalan seperti yang diharapkan.
Pilih File>Tambahkan ke kontrol sumber untuk membuat repositori Git lokal untuk proyek.
Pada titik ini, aplikasi Node.js yang menggunakan kerangka kerja Express dan ditulis dalam TypeScript berfungsi dan diperiksa ke kontrol sumber lokal.
Edit proyek sesuai keinginan sebelum melanjutkan ke langkah berikutnya.
Mendorong kode dari Visual Studio ke GitHub
Untuk menyiapkan GitHub untuk Visual Studio:
Pastikan Ekstensi GitHub untuk Visual Studio diinstal dan diaktifkan menggunakan item menu Alat>Ekstensi dan Pembaruan.
Dari menu, pilih Tampilkan>Windows Lain>GitHub.
Jendela GitHub terbuka.
Jika Anda tidak melihat tombol Mulai di jendela GitHub, klik File>Tambahkan ke Kontrol Sumber dan tunggu hingga UI diperbarui.
Klik Mulai.
Jika Anda sudah tersambung ke GitHub, kotak alat muncul seperti ilustrasi berikut.
Lengkapi bidang untuk repositori baru yang akan diterbitkan, lalu klik Terbitkan.
Setelah beberapa saat, akan muncul banner yang menyatakan "Repositori berhasil dibuat".
Di bagian berikutnya, Anda mempelajari cara menerbitkan dari repositori ini ke Azure App Service di Linux.
Membuat App Service Linux di Azure
Masuk ke portal Azure.
Pilih App Services dari daftar layanan di sebelah kiri, lalu klik Tambahkan.
Jika diperlukan, buat paket Grup Sumber Daya baru dan App Service untuk menghosting aplikasi baru.
Pastikan untuk mengatur OS ke Linux, dan atur Runtime Stack ke versi Node.js yang diperlukan, seperti yang ditunjukkan pada ilustrasi.
Klik Buat untuk membuat App Service.
Mungkin perlu waktu beberapa menit untuk disebarkan.
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, file tersebut akan mengasumsikan proyek berbasis MSBuild sedang disebarkan. Pengaturan yang ditambahkan di atas mengambil alih logika ini dan menetapkan 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.
Di bawah Pengaturan aplikasi, tambahkan pengaturan lain dengan nama
WEBSITE_NODE_DEFAULT_VERSION
dan nilai8.9.0
.Setelah disebarkan, buka App Service dan pilih Opsi penyebaran.
Klik Pilih sumber, lalu pilih GitHub, lalu konfigurasikan izin yang diperlukan.
Pilih repositori dan cabang yang akan diterbitkan, lalu pilih OKE.
Halaman opsi penyebaran muncul saat menyinkronkan.
Akan muncul tanda centang setelah sinkronisasi selesai.
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").
Mengubah aplikasi Anda dan mendorong perubahan
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"}); });
Buat kode dan uji secara lokal, lalu periksa dan dorong ke GitHub.
Dalam portal Azure, perlu beberapa saat untuk mendeteksi perubahan dalam repositori GitHub, lalu sinkronisasi baru penyebaran dimulai. Ini terlihat mirip dengan ilustrasi berikut.
Setelah penyebaran selesai, arahkan ke situs publik dan tambahkan /api ke URL. Respons JSON akan dikembalikan.
Pemecahan Masalah
- Jika proses node.exe mati (yaitu, pengecualian yang tidak ditangani terjadi), kontainer akan dimulai ulang.
- Ketika kontainer dimulai, kontainer berjalan melalui berbagai heuristik untuk mencari tahu cara memulai proses Node.js. Detail implementasi dapat dilihat di generateStartupCommand.js.
- Anda dapat terhubung ke kontainer yang sedang berjalan melalui SSH untuk penyelidikan. Ini mudah dilakukan menggunakan portal 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 pengelogan 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 Memetakan Domain Kustom.
- Menyebarkan ke situs penahapan untuk pengujian lebih lanjut sebelum pindah ke produksi adalah praktik terbaik. Untuk detail tentang cara mengonfigurasi ini, lihat topik Membuat lingkungan penahapan.
- Lihat FAQ App Service di Linux untuk pertanyaan umum lainnya.
Langkah berikutnya
Dalam tutorial ini, Anda mempelajari cara membuat App Service Linux dan menyebarkan aplikasi Node.js ke layanan. Anda mungkin ingin mempelajari lebih lanjut tentang Linux App Service.