Dukungan kontainer Linux di Azure Functions
Saat Anda merencanakan dan mengembangkan fungsi individual untuk dijalankan di Azure Functions, Anda biasanya berfokus pada kode itu sendiri. Azure Functions memudahkan untuk menyebarkan hanya proyek kode Anda ke aplikasi fungsi di Azure. Saat Anda menyebarkan proyek kode ke aplikasi fungsi yang berjalan di Linux, proyek berjalan dalam kontainer yang dibuat untuk Anda secara otomatis. Kontainer ini dikelola oleh Functions.
Functions juga mendukung penyebaran aplikasi fungsi dalam kontainer. Dalam penyebaran dalam kontainer, Anda membuat instans aplikasi fungsi Anda sendiri di kontainer Docker lokal dari gambar berbasis yang didukung. Anda kemudian dapat menyebarkan aplikasi fungsi dalam kontainer ini ke lingkungan hosting di Azure. Membuat kontainer aplikasi fungsi Anda sendiri memungkinkan Anda menyesuaikan atau mengontrol lingkungan runtime langsung kode fungsi Anda.
Penting
Saat membuat kontainer Anda sendiri, Anda diharuskan untuk menjaga gambar dasar kontainer Anda diperbarui ke gambar dasar terbaru yang didukung. Gambar dasar yang didukung untuk Azure Functions khusus bahasa dan ditemukan di repositori gambar dasar Azure Functions.
Tim Functions berkomitmen untuk menerbitkan pembaruan bulanan untuk gambar dasar ini. Pembaruan reguler mencakup pembaruan versi minor terbaru dan perbaikan keamanan untuk runtime Functions dan bahasa. Anda harus memperbarui kontainer Anda secara teratur dari gambar dasar terbaru dan menyebarkan ulang versi kontainer Anda yang diperbarui.
Opsi hosting kontainer
Ada beberapa opsi untuk menghosting aplikasi fungsi kontainer Anda di Azure:
Opsi Hosting | Keuntungan |
---|---|
Azure Container Apps | Azure Functions menyediakan dukungan terintegrasi untuk mengembangkan, menyebarkan, dan mengelola aplikasi fungsi dalam kontainer di Azure Container Apps. Ini memungkinkan Anda mengelola aplikasi menggunakan alat dan halaman Functions yang sama di portal Azure. Gunakan Azure Container Apps untuk menghosting kontainer aplikasi fungsi Anda saat Anda perlu menjalankan fungsi berbasis peristiwa di Azure di lingkungan yang sama dengan layanan mikro, API, situs web, alur kerja, atau program yang dihosting kontainer lainnya. Hosting Container Apps memungkinkan Anda menjalankan fungsi di lingkungan berbasis Kubernetes terkelola dengan dukungan bawaan untuk pemantauan sumber terbuka, mTLS, Dapr, dan KEDA. Mendukung skala-ke-nol dan menyediakan model hosting pay-for-what-you-use tanpa server. Anda juga dapat meminta perangkat keras khusus, bahkan GPU, dengan menggunakan profil beban kerja. Opsi hosting yang direkomendasikan untuk menjalankan aplikasi fungsi kontainer di Azure. |
Kluster Kubernetes dengan dukungan Azure Arc (pratinjau) | Anda dapat menghosting aplikasi fungsi di kluster Kubernetes dengan dukungan Azure Arc sebagai penyebaran khusus kode atau dalam kontainer Linux kustom. Azure Arc memungkinkan Anda melampirkan kluster Kubernetes sehingga Anda dapat mengelola dan mengonfigurasinya di Azure. Menghosting kontainer Azure Functions pada kluster Kubernetes dengan dukungan Azure Arc saat ini dalam pratinjau. |
Azure Functions | Anda dapat menghosting aplikasi fungsi dalam kontainer di Azure Functions dengan menjalankan kontainer baik dalam paket Elastic Premium atau paket Khusus. Hosting paket premium memberi Anda manfaat penskalaan dinamis. Anda mungkin ingin menggunakan hosting Paket khusus untuk memanfaatkan sumber daya paket App Service yang tidak digunakan yang ada. |
Kubernetes | Karena runtime Azure Functions memberikan fleksibilitas dalam menghosting di mana dan bagaimana Anda inginkan, Anda dapat menghosting dan mengelola kontainer aplikasi fungsi anda langsung di kluster Kubernetes. KEDA (Kubernetes-based Event Driven Autoscaling) cocok dengan runtime dan perkakas Azure Functions untuk memberikan skala berbasis kejadian di Kubernetes. Perlu diingat bahwa menjalankan aplikasi fungsi kontainer Anda di Kubernetes, baik dengan menggunakan KEDA atau dengan penyebaran langsung, adalah upaya sumber terbuka yang dapat Anda gunakan secara gratis, dengan dukungan upaya terbaik yang disediakan oleh kontributor dan dari komunitas. Anda bertanggung jawab untuk memelihara kontainer aplikasi fungsi Anda sendiri dalam kluster, bahkan saat menyebarkan ke Azure Kubernetes Service (AKS). |
Perbandingan dukungan fitur
Tingkat di mana berbagai fitur dan perilaku Azure Functions didukung saat menjalankan aplikasi fungsi Anda dalam kontainer tergantung pada opsi hosting kontainer yang Anda pilih.
Fitur/perilaku | Aplikasi Kontainer (terintegrasi) | Aplikasi Kontainer (langsung) | Paket premium | Paket khusus | Kubernetes |
---|---|---|---|---|---|
Dukungan produk | Ya | No | Ya | Ya | No |
Integrasi portal Functions | Ya | Tanpa | Ya | Ya | Tanpa |
Penskalakan berbasis peristiwa | Ya5 | Ya (aturan skala) | Ya | No | Tidak |
Skala maksimum (instans) | 10001 | 10001 | 1002 | 10-303 | Bervariasi menurut kluster |
Menskalakan ke nol instans | Ya | Ya | Tidak | Tidak | KEDA |
Batas waktu eksekusi | Tidak terikat6 | Tidak terikat6 | Tidak terikat7 | Tidak terikat8 | Tidak |
Penyebaran Core Tools | func azurecontainerapps |
Tidak | No | Tidak | func kubernetes |
Revisi | Tanpa | Ya | Tanpa | Tanpa | Tanpa |
Slot Penyebaran | Tanpa | Tanpa | Ya | Ya | Tanpa |
Log streaming | Ya | Ya | Ya | Ya | Tanpa |
Akses konsol | Saat ini tidak tersedia4 | Ya | Ya (menggunakan Kudu) | Ya (menggunakan Kudu) | Ya (dalam pod menggunakan kubectl ) |
Mitigasi mulai dingin | Replika minimum | Aturan skala | Instans yang selalu siap/dihangatkan sebelumnya | n/a | N/a |
Autentikasi App Service | Saat ini tidak tersedia4 | Ya | Ya | Ya | Tanpa |
Nama domain kustom | Saat ini tidak tersedia4 | Ya | Ya | Ya | Tanpa |
Sertifikat kunci privat | Saat ini tidak tersedia4 | Ya | Ya | Ya | Tanpa |
Jaringan virtual | Ya | Ya | Ya | Ya | Ya |
Zona ketersediaan | Ya | Ya | Ya | Ya | Ya |
Diagnostik | Saat ini tidak tersedia4 | Ya | Ya | Ya | Tanpa |
Perangkat keras khusus | Ya (profil beban kerja) | Ya (profil beban kerja) | Tanpa | Ya | Ya |
GPU khusus | Ya (profil beban kerja) | Ya (profil beban kerja) | Tanpa | Tidak | Ya |
Jumlah memori/CPU yang dapat dikonfigurasi | Ya | Ya | No | Tanpa | Ya |
Opsi "Pemberian gratis" | Ya | Ya | No | No | Tidak |
Detail harga | Penagihan Container Apps | Penagihan Container Apps | Penagihan paket premium | Penagihan paket khusus | Harga AKS |
Persyaratan nama layanan | 2-32 karakter: terbatas pada huruf kecil, angka, dan tanda hubung. Harus dimulai dengan huruf dan diakhir dengan karakter alfanumerik. | 2-32 karakter: terbatas pada huruf kecil, angka, dan tanda hubung. Harus dimulai dengan huruf dan diakhir dengan karakter alfanumerik. | Kurang dari 64 karakter: terbatas pada karakter alfanumerik dan tanda hubung. Tidak dapat dimulai dengan atau diakhir dalam tanda hubung. | Kurang dari 64 karakter: terbatas pada karakter alfanumerik dan tanda hubung. Tidak dapat dimulai dengan atau diakhir dalam tanda hubung. | Kurang dari 253 karakter: terbatas pada karakter alfanumerik dan tanda hubung. Harus dimulai dan diakhir dengan karakter alfanumerik. |
- Pada Container Apps, defaultnya adalah 10 instans, tetapi Anda dapat mengatur jumlah maksimum replika, yang memiliki maksimum keseluruhan 1000. Pengaturan ini dihormati selama ada cukup kuota inti yang tersedia. Saat membuat aplikasi fungsi dari portal Azure, Anda dibatasi hingga 300 instans.
- Di beberapa wilayah, aplikasi Linux pada paket Premium dapat menskalakan ke 100 instans. Untuk informasi selengkapnya, lihat artikel paket Premium.
- Untuk batas tertentu untuk berbagai opsi paket App Service, lihat batas paket App Service.
- Paritas fitur adalah tujuan hosting terintegrasi di Azure Container Apps.
- Memerlukan KEDA; didukung oleh sebagian besar pemicu. Untuk mempelajari pemicu mana yang mendukung penskalaan berbasis peristiwa, lihat Pertimbangan untuk hosting Container Apps.
- Ketika jumlah minimum replika diatur ke nol, batas waktu default bergantung pada pemicu tertentu yang digunakan dalam aplikasi.
- Tidak ada durasi batas waktu eksekusi maksimum yang diberlakukan. Namun, masa tenggang yang diberikan untuk eksekusi fungsi adalah 60 menit selama penskalaan, dan masa tenggang 10 menit diberikan selama pembaruan platform.
- Mengharuskan paket App Service diatur ke Always On. Masa tenggang 10 menit diberikan selama pembaruan platform.
Memulai
Gunakan tautan ini untuk mulai bekerja dengan Azure Functions di kontainer Linux:
Aku ingin... | Lihat artikel: |
---|---|
Membuat fungsi kontainer pertama saya | Membuat aplikasi fungsi di kontainer Linux lokal |
Membuat dan menyebarkan fungsi ke Azure Container Apps | Membuat fungsi kontainer pertama Anda di Azure Container Apps |
Membuat dan menyebarkan fungsi dalam kontainer ke Azure Functions | Membuat Azure Functions kontainer pertama Anda |
Membuat dan menyebarkan fungsi ke Kubernetes dengan dukungan Azure Arc | Membuat Azure Functions kontainer pertama Anda di Azure Arc (pratinjau) |