Cara menonaktifkan fungsi di Azure Functions
Artikel ini menjelaskan cara menonaktifkan fungsi di Azure Functions. Untuk menonaktifkan fungsi berarti membuat runtime mengabaikan peristiwa yang dimaksudkan untuk memicu fungsi. Kemampuan ini memungkinkan Anda mencegah fungsi tertentu berjalan tanpa harus memodifikasi dan menerbitkan ulang seluruh aplikasi fungsi.
Anda dapat menonaktifkan fungsi di tempat dengan membuat pengaturan aplikasi dalam format AzureWebJobs.<FUNCTION_NAME>.Disabled
yang diatur ke true
. Anda dapat membuat dan mengubah pengaturan aplikasi ini dengan beberapa cara, termasuk dengan menggunakan Azure CLI, Azure PowerShell, dan dari tab Gambaran Umum fungsi Anda di portal Azure.
Perubahan pada pengaturan aplikasi menyebabkan aplikasi fungsi Anda dimulai ulang. Untuk informasi selengkapnya, lihat Referensi pengaturan aplikasi untuk Azure Functions.
Menonaktifkan fungsi
Gunakan salah satu mode ini untuk membuat pengaturan aplikasi yang menonaktifkan fungsi contoh bernama QueueTrigger
:
Gunakan tombol Aktifkan dan Nonaktifkan pada halaman Gambaran Umum fungsi. Tombol ini berfungsi dengan mengubah nilai pengaturan aplikasi AzureWebJobs.QueueTrigger.Disabled
. Pengaturan aplikasi khusus fungsi dibuat saat pertama kali fungsi dinonaktifkan.
Bahkan saat menerbitkan ke aplikasi fungsi dari proyek lokal, Anda masih dapat menggunakan portal untuk menonaktifkan fungsi di aplikasi fungsi.
Catatan
Fungsi yang dinonaktifkan masih dapat dijalankan dengan memanggil titik akhir REST menggunakan kunci master. Untuk mempelajari selengkapnya, lihat Menjalankan fungsi yang dinonaktifkan. Ini berarti bahwa fungsi yang dinonaktifkan masih berjalan saat dimulai dari jendela Uji/Jalankan di portal menggunakan master (Kunci host).
Menonaktifkan fungsi dalam slot
Secara default, pengaturan aplikasi juga berlaku untuk aplikasi yang berjalan di slot penyebaran. Namun, Anda dapat mengambil alih pengaturan aplikasi yang digunakan oleh slot dengan mengatur pengaturan aplikasi khusus slot. Misalnya, Anda mungkin ingin fungsi aktif dalam produksi tetapi tidak selama pengujian penyebaran. Adalah umum untuk menonaktifkan fungsi yang dipicu timer di slot untuk mencegah eksekusi simultan.
Untuk menonaktifkan fungsi hanya di slot penahapan:
Navigasikan ke instans slot aplikasi fungsi Anda dengan memilih Slot penyebaran di bawah Penyebaran, pilih slot Anda, dan pilih Functions di instans slot. Pilih fungsi Anda, lalu gunakan tombol Aktifkan dan Nonaktifkan pada halaman Gambaran Umum fungsi. Tombol ini berfungsi dengan mengubah nilai pengaturan aplikasi AzureWebJobs.<FUNCTION_NAME>.Disabled
. Pengaturan khusus fungsi ini dibuat saat pertama kali Anda menonaktifkan fungsi.
Anda juga dapat langsung menambahkan pengaturan aplikasi bernama AzureWebJobs.<FUNCTION_NAME>.Disabled
dengan nilai true
dalam Konfigurasi untuk instans slot. Saat Anda menambahkan pengaturan aplikasi khusus slot, pastikan untuk mencentang kotak Pengaturan slot penyebaran. Opsi ini mempertahankan nilai pengaturan dengan slot selama pertukaran.
Untuk mempelajari selengkapnya, lihat Slot Penyebaran Azure Functions.
Menjalankan fungsi yang dinonaktifkan
Anda masih dapat menyebabkan fungsi yang dinonaktifkan berjalan dengan menyediakan kunci akses master (_master
) dalam permintaan REST ke URL titik akhir fungsi yang dinonaktifkan. Dengan cara ini, Anda dapat mengembangkan dan memvalidasi fungsi di Azure dalam status dinonaktifkan sambil mencegah fungsi diakses oleh orang lain. Menggunakan jenis kunci lain dalam permintaan mengembalikan respons HTTP 404.
Perhatian
Karena izin yang ditinggikan di aplikasi fungsi yang diberikan oleh kunci master, Anda tidak boleh berbagi kunci ini dengan pihak ketiga atau mendistribusikannya di aplikasi klien asli. Berhati-hatilah saat memilih tingkat akses HTTP admin untuk titik akhir fungsi Anda.
Untuk mempelajari selengkapnya tentang kunci master, lihat Memahami kunci. Untuk mempelajari selengkapnya tentang memanggil fungsi yang dipicu non-HTTP, lihat Menjalankan fungsi yang tidak dipicu HTTP secara manual.
Menonaktifkan fungsi secara lokal
Fungsi dapat dinonaktifkan dengan cara yang sama saat berjalan secara lokal. Untuk menonaktifkan fungsi bernama QueueTrigger
, tambahkan entri ke koleksi Nilai di file local.settings.json, sebagai berikut:
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "python",
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"AzureWebJobs.QueueTrigger.Disabled": true
}
}
Pertimbangan
Ingatlah pertimbangan berikut ketika Anda menonaktifkan fungsi:
Saat Anda menonaktifkan fungsi yang dipicu HTTP dengan menggunakan metode yang dijelaskan dalam artikel ini, titik akhir masih dapat diakses saat berjalan di komputer lokal Anda dan di portal.
Saat ini, nama fungsi yang berisi tanda hubung (
-
) tidak dapat dinonaktifkan saat berjalan di Linux. Jika Anda berencana untuk menonaktifkan fungsi saat berjalan di Linux, jangan gunakan tanda hubung dalam nama fungsi Anda.
Langkah berikutnya
Artikel ini berisi tentang menonaktifkan pemicu otomatis. Untuk informasi selengkapnya tentang pemicu, lihat Pemicu dan pengikatan.