Bagikan melalui


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.
  1. 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.
  2. Di beberapa wilayah, aplikasi Linux pada paket Premium dapat menskalakan ke 100 instans. Untuk informasi selengkapnya, lihat artikel paket Premium.
  3. Untuk batas tertentu untuk berbagai opsi paket App Service, lihat batas paket App Service.
  4. Paritas fitur adalah tujuan hosting terintegrasi di Azure Container Apps.
  5. Memerlukan KEDA; didukung oleh sebagian besar pemicu. Untuk mempelajari pemicu mana yang mendukung penskalaan berbasis peristiwa, lihat Pertimbangan untuk hosting Container Apps.
  6. Ketika jumlah minimum replika diatur ke nol, batas waktu default bergantung pada pemicu tertentu yang digunakan dalam aplikasi.
  7. 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.
  8. 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)