Azure Container Apps hosting of Azure Functions

Azure Functions menyediakan dukungan terintegrasi untuk mengembangkan, menyebarkan, dan mengelola aplikasi fungsi dalam kontainer di Azure Container Apps. 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 dengan dukungan bawaan untuk pemantauan sumber terbuka, mTLS, Dapr, dan KEDA.

Penting

Dukungan untuk menghosting aplikasi fungsi di Azure Container Apps saat ini dalam pratinjau.

Integrasi dengan Container Apps memungkinkan Anda menggunakan model pemrograman fungsi yang ada untuk menulis kode fungsi dalam bahasa pemrograman atau kerangka kerja pilihan Anda yang didukung oleh Azure Functions. Anda masih mendapatkan pemicu dan pengikatan Functions dengan penskalakan berbasis peristiwa. Container Apps menggunakan kekuatan Azure Kubernetes Service (AKS) yang mendasar saat menghapus kompleksitas harus bekerja dengan API Kubernetes.

Integrasi ini juga berarti Anda dapat menggunakan alat klien Functions yang ada dan portal Azure untuk membuat kontainer, menyebarkan kontainer aplikasi fungsi ke Container Apps, dan mengonfigurasi penyebaran berkelanjutan. Konfigurasi jaringan dan pengamatan ditentukan di tingkat lingkungan Aplikasi Kontainer dan berlaku untuk semua layanan mikro yang berjalan di lingkungan Container Apps, termasuk aplikasi fungsi Anda. Anda juga mendapatkan kemampuan cloud-native Lainnya dari Container Apps, termasuk KEDA, Dapr, Envoy. Anda masih dapat menggunakan Application Insights untuk memantau eksekusi fungsi Anda.

Hosting dan profil beban kerja

Ada dua paket hosting utama untuk Container Apps, paket Konsumsi tanpa server dan paket Khusus, yang menggunakan profil beban kerja untuk mengontrol sumber daya penyebaran Anda dengan lebih baik. Profil beban kerja menentukan jumlah sumber daya komputasi dan memori yang tersedia untuk aplikasi kontainer yang disebarkan di lingkungan. Profil ini dikonfigurasi agar sesuai dengan berbagai kebutuhan aplikasi Anda. Profil beban kerja Konsumsi adalah profil default yang ditambahkan ke setiap jenis lingkungan profil Beban Kerja. Anda dapat menambahkan profil beban kerja Khusus ke lingkungan saat membuat lingkungan atau setelah dibuat. Untuk mempelajari selengkapnya tentang profil beban kerja, lihat Profil beban kerja di Azure Container Apps.

Hosting Container Apps dari aplikasi fungsi kontainer didukung di semua wilayah yang mendukung Aplikasi Kontainer.

Jika aplikasi Anda tidak memiliki persyaratan perangkat keras tertentu, Anda dapat menjalankan lingkungan Anda baik dalam paket Konsumsi atau dalam paket Khusus menggunakan profil beban kerja Konsumsi default. Saat menjalankan fungsi di Container Apps, Anda hanya dikenakan biaya untuk penggunaan Container Apps. Untuk informasi selengkapnya, lihat halaman harga Azure Container Apps.

Azure Functions di Azure Container Apps mendukung hosting dengan dukungan GPU dalam paket Khusus dengan profil beban kerja.

Untuk mempelajari cara membuat dan menyebarkan kontainer aplikasi fungsi ke Aplikasi Kontainer dalam paket Konsumsi default, lihat Membuat fungsi kontainer pertama Anda di Azure Container Apps.

Untuk mempelajari cara membuat lingkungan Container Apps dengan profil beban kerja dan menyebarkan kontainer aplikasi fungsi ke beban kerja tertentu, lihat Profil beban kerja Container Apps.

Fungsi dalam kontainer

Untuk menggunakan hosting Container Apps, kode fungsi Anda harus berjalan dalam kontainer Linux yang Anda buat dan pertahankan. Functions mempertahankan sekumpulan gambar dasar khusus bahasa yang dapat Anda gunakan untuk menghasilkan aplikasi fungsi kontainer Anda.

Saat Anda membuat proyek Functions menggunakan Azure Functions Core Tools dan menyertakan --docker opsi , Core Tools menghasilkan Dockerfile dengan gambar dasar yang benar, yang dapat Anda gunakan sebagai titik awal saat membuat kontainer 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.

Saat membuat perubahan pada kode fungsi, Anda harus membangun kembali dan menerbitkan ulang gambar kontainer Anda. Untuk informasi selengkapnya, lihat Memperbarui gambar di registri.

Opsi penyebaran

Azure Functions saat ini mendukung metode berikut untuk menyebarkan aplikasi fungsi dalam kontainer ke Azure Container Apps:

Mengonfigurasi aturan skala

Azure Functions di Container Apps dirancang untuk mengonfigurasi parameter dan aturan skala sesuai target peristiwa. Anda tidak perlu khawatir tentang mengonfigurasi objek berskala KEDA. Anda masih dapat mengatur jumlah replika minimum dan maksimum saat membuat atau memodifikasi aplikasi fungsi Anda. Perintah Azure CLI berikut mengatur jumlah replika minimum dan maksimum saat membuat aplikasi fungsi baru di lingkungan Container Apps dari Azure Container Registry:

az functionapp create --name <APP_NAME> --resource-group <MY_RESOURCE_GROUP> --max-replicas 15 --min-replicas 1 --storage-account <STORAGE_NAME> --environment MyContainerappEnvironment --image <LOGIN_SERVER>/azurefunctionsimage:v1 --registry-username <USERNAME> --registry-password <SECURE_PASSWORD> --registry-server <LOGIN_SERVER>

Perintah berikut menetapkan jumlah replika minimum dan maksimum yang sama pada aplikasi fungsi yang ada:

az functionapp config container set --name <APP_NAME> --resource-group <MY_RESOURCE_GROUP> --max-replicas 15 --min-replicas 1

Grup sumber daya terkelola

Azure Function on Container Apps menjalankan sumber daya kontainer yang difungsikan dalam grup sumber daya yang dikelola secara khusus, yang membantu melindungi konsistensi aplikasi Anda dengan mencegah modifikasi atau penghapusan sumber daya yang tidak diinginkan atau tidak sah di grup terkelola oleh pengguna, grup, atau prinsip layanan. Grup sumber daya terkelola ini dibuat untuk Anda saat pertama kali membuat sumber daya aplikasi fungsi di lingkungan Container Apps. Sumber daya Container Apps yang diperlukan oleh aplikasi fungsi kontainer Anda berjalan di grup sumber daya terkelola ini, dan aplikasi fungsi lain yang dibuat di lingkungan yang sama menggunakan grup yang ada ini. Grup sumber daya terkelola dihapus secara otomatis setelah semua sumber daya kontainer aplikasi fungsi dihapus dari lingkungan. Saat grup sumber daya terkelola terlihat, setiap upaya untuk memodifikasi atau menghapus grup sumber daya terkelola mengakibatkan kesalahan. Untuk menghapus grup sumber daya terkelola dari lingkungan, hapus semua sumber daya kontainer aplikasi fungsi dan akan dihapus untuk Anda. Jika Anda mengalami masalah dengan grup sumber daya terkelola ini, Anda harus menghubungi dukungan.

Pertimbangan untuk hosting Aplikasi Kontainer

Perlu diingat pertimbangan berikut saat menyebarkan kontainer aplikasi fungsi Anda ke Container Apps:

  • Meskipun semua pemicu dapat digunakan, hanya pemicu berikut yang dapat menskalakan secara dinamis (dari nol instans) saat berjalan di Container Apps:
    • HTTP
    • Azure Queue Storage
    • Azure Service Bus
    • Azure Event Hubs
    • Kafka*
    • Pengatur Waktu
      *Nilai ssl protokol tidak didukung saat dihosting di Container Apps. Gunakan nilai protokol yang berbeda.
  • Untuk definisi kebijakan Container Apps bawaan, saat ini hanya kebijakan tingkat lingkungan yang berlaku untuk kontainer Azure Functions.
  • Saat ini Anda tidak dapat memindahkan penyebaran aplikasi fungsi yang dihosting Container Apps antara grup sumber daya atau antar langganan. Sebagai gantinya, Anda harus membuat ulang penyebaran aplikasi kontainer yang ada di grup sumber daya, langganan, atau wilayah baru.
  • Saat menggunakan Container Apps, Anda tidak memiliki akses langsung ke API Kubernetes tingkat bawah.
  • containerapp Ekstensi bertentangan appservice-kube dengan ekstensi di Azure CLI. Jika sebelumnya Anda telah menerbitkan aplikasi ke Azure Arc, jalankan az extension list dan pastikan aplikasi appservice-kube tersebut tidak diinstal. Jika ya, Anda dapat menghapusnya dengan menjalankan az extension remove -n appservice-kube.
  • Ekstensi Functions Dapr juga dalam pratinjau, dengan bantuan yang disediakan di repositori.

Langkah berikutnya