Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Halaman ini mencantumkan praktik terbaik penting untuk mengembangkan dan menjalankan Aplikasi Databricks. Panduan ini berfokus pada persyaratan keamanan, performa, dan platform.
Praktik terbaik umum
Gunakan fitur asli Azure Databricks untuk pemrosesan data. Komputasi aplikasi dioptimalkan untuk penyajian UI. Gunakan Databricks SQL untuk kueri dan himpunan data, Lakeflow Jobs untuk pemrosesan batch, dan Penayangan Model untuk inferensi AI. Offload pemrosesan data berat ke layanan ini untuk menghindari masalah performa. Uji aplikasi Anda di bawah kondisi beban yang diharapkan untuk memverifikasi bahwa aplikasi memenuhi kebutuhan Anda.
Terapkan penanganan matikan yang anggun. Aplikasi Anda harus dimatikan dalam waktu 15 detik setelah menerima
SIGTERMsinyal, atau dihentikan secara paksa denganSIGKILL.Hindari operasi istimewa. Aplikasi berjalan sebagai pengguna yang tidak memiliki hak istimewa dan tidak dapat melakukan tindakan yang memerlukan izin yang ditinggikan seperti akses root. Anda tidak dapat menginstal paket tingkat sistem menggunakan manajer paket seperti
apt-get, ,yumatauapk. Sebagai gantinya, gunakan paket Python dari PyPI atau paket Node.js dari npm untuk mengelola dependensi aplikasi Anda.Memahami jaringan yang dikelola platform. Permintaan diteruskan melalui proksi terbalik, sehingga aplikasi Anda tidak dapat bergantung pada asal permintaan. Azure Databricks menangani penghentian TLS dan mengharuskan aplikasi mendukung cleartext HTTP/2 (H2C). Jangan terapkan penanganan TLS kustom.
Ikat ke host dan port yang benar. Aplikasi Anda harus memantau
0.0.0.0dan menggunakan port yang ditentukan dalam variabel lingkunganDATABRICKS_APP_PORT. Lihat variabel lingkungan untuk detailnya.Minimalkan waktu mulai kontainer. Jaga agar logika inisialisasi tetap ringan untuk mengurangi latensi cold-start. Hindari memblokir operasi seperti penginstalan dependensi besar atau panggilan API eksternal selama startup. Muat sumber daya berat hanya jika diperlukan.
Masuk ke stdout dan stderr. Azure Databricks mengambil log dari output standar dan aliran kesalahan. Gunakan ini untuk semua pengelogan untuk memastikan log terlihat di antarmuka pengguna Azure Databricks. Hindari menulis log ke file lokal.
Tangani kesalahan tak terduga dengan anggun. Terapkan penanganan pengecualian global untuk mencegah crash dari kesalahan yang tidak tertangkap. Kembalikan respons kesalahan HTTP yang benar tanpa mengekspos jejak tumpukan atau data sensitif.
Tetapkan versi dependensi. Gunakan nomor versi yang tepat dalam file Anda
requirements.txtuntuk memastikan lingkungan yang konsisten di seluruh build. Hindari menggunakan versi paket yang belum di-pin atau terbaru.Memvalidasi dan membersihkan input pengguna. Selalu validasi data masuk dan sanitasi datanya untuk mencegah serangan injeksi atau input cacat, bahkan di aplikasi internal.
Gunakan cache dalam memori untuk operasi berbiaya tinggi. Cache data yang sering digunakan seperti hasil kueri atau respons API untuk mengurangi waktu tunda dan menghindari pemrosesan redundan. Gunakan
functools.lru_cache,cachetools, atau pustaka serupa, dan lakukan pengaturan cache dengan hati-hati di aplikasi multi-pengguna.Gunakan pola permintaan asinkron untuk operasi yang berjalan lama. Hindari permintaan sinkron yang menunggu operasi selesai, yang dapat kehabisan waktu. Sebagai gantinya, buat permintaan awal untuk memulai operasi, lalu kueri status sumber daya atau titik akhir secara berkala untuk memeriksa status penyelesaian.
Praktik terbaik keamanan
Ikuti prinsip hak istimewa paling sedikit. Hanya berikan izin yang diperlukan untuk setiap pengguna atau grup. Gunakan
CAN USEalih-alihCAN MANAGEkecuali diperlukan kontrol penuh. Lihat Praktik terbaik untuk izin.Pilih metode autentikasi dengan hati-hati. Gunakan "prinsipal layanan" ketika akses ke sumber daya dan data tetap konsisten bagi semua pengguna aplikasi. Hanya terapkan autentikasi pengguna di ruang kerja dengan penulis aplikasi tepercaya dan kode aplikasi yang ditinjau serekan, saat aplikasi harus menghormati izin pengguna panggilan.
Gunakan prinsipal layanan khusus untuk setiap aplikasi. Jangan bagikan kredensial perwakilan layanan antara aplikasi atau pengguna. Hanya berikan izin minimum yang diperlukan, seperti
CAN USEatauCAN QUERY. Putar kredensial perwakilan layanan saat pembuat aplikasi meninggalkan organisasi Anda. Lihat Mengelola akses aplikasi ke sumber daya.Mengisolasi lingkungan aplikasi. Gunakan ruang kerja yang berbeda untuk memisahkan aplikasi pengembangan, penahapan, dan produksi. Ini mencegah akses yang tidak disengaja ke data produksi selama pengembangan dan pengujian.
Akses data melalui komputasi yang sesuai. Jangan konfigurasikan aplikasi Anda untuk mengakses atau memproses data secara langsung. Gunakan gudang SQL untuk kueri, Pelayanan Model untuk inferensi AI, dan Tugas Lakeflow untuk pemrosesan batch.
Mengelola rahasia. Jangan pernah mengekspos nilai rahasia mentah dalam variabel lingkungan. Gunakan
valueFromdalam konfigurasi aplikasi Anda dan perbarui rahasia secara teratur, terutama saat peran dalam tim berubah. Lihat Praktik terbaik.Meminimalkan cakupan dan mencatat tindakan pengguna. Saat menggunakan otorisasi pengguna, minta hanya cakupan yang dibutuhkan aplikasi Anda, dan catat semua tindakan pengguna dengan catatan audit terstruktur. Lihat Praktik terbaik untuk otorisasi pengguna.
Batasi akses jaringan keluar. Izinkan hanya domain yang dibutuhkan aplikasi Anda, seperti repositori paket dan API eksternal. Gunakan mode dry-run dan log penolakan untuk memvalidasi konfigurasi Anda. Lihat Praktik terbaik untuk mengonfigurasi kebijakan jaringan.
Ikuti praktik pengkodan yang aman. Parameterisasi kueri SQL untuk mencegah serangan injeksi dan menerapkan pedoman pengembangan aman umum, seperti validasi input dan penanganan kesalahan. Lihat API Eksekusi Pernyataan: Jalankan SQL di gudang.
Pantau aktivitas yang mencurigakan. Tinjau log audit secara teratur untuk pola akses yang tidak biasa atau tindakan yang tidak sah. Siapkan pemberitahuan untuk peristiwa keamanan penting.