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.
Penting
Metode hosting baru untuk menjalankan Azure Functions langsung di Azure Container Apps sekarang tersedia (lihat pengumuman) dan direkomendasikan untuk sebagian besar beban kerja baru. Integrasi ini memungkinkan Anda memanfaatkan fitur dan kemampuan lengkap Azure Container Apps sekaligus mendapatkan manfaat dari model pemrograman fungsi dan kesederhanaan penskalaan otomatis yang disediakan oleh Azure Functions.
Untuk informasi selengkapnya, lihat Dukungan Azure Functions Bawaan di Azure Container Apps
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 yang dikelola sepenuhnya dengan dukungan bawaan untuk pemantauan sumber terbuka, mTLS, Dapr, dan Autoscaling Berbasis Peristiwa (KEDA) Kubernetes.
Anda dapat menulis kode fungsi Anda dalam tumpukan bahasa apa pun yang didukung oleh Functions. Anda dapat menggunakan pemicu dan pengikatan yang sama dari Functions dengan penskalan berbasis peristiwa. Anda juga dapat menggunakan alat klien Functions yang ada dan portal Azure untuk membuat kontainer, menyebarkan kontainer aplikasi fungsi ke Container Apps, dan mengonfigurasi penyebaran berkelanjutan.
Integrasi Container Apps juga berarti bahwa konfigurasi jaringan dan pengamatan, yang ditentukan di tingkat lingkungan Aplikasi Kontainer, berlaku untuk aplikasi fungsi Anda seperti yang mereka lakukan pada semua layanan mikro yang berjalan di lingkungan Container Apps. Anda juga mendapatkan kemampuan cloud-native lainnya dari Container Apps, termasuk KEDA, Dapr, dan Envoy. Anda masih dapat menggunakan Application Insights untuk memantau eksekusi fungsi Anda, dan aplikasi fungsi Anda dapat mengakses sumber daya jaringan virtual yang sama yang disediakan oleh lingkungan.
Untuk gambaran umum opsi hosting kontainer untuk Azure Functions, lihat Dukungan kontainer Linux di Azure Functions.
Hosting dan profil beban kerja
Ada dua paket utama untuk Container Apps: paket Konsumsi tanpa server dan paket Khusus. Keduanya dapat digunakan dalam jenis lingkungan profil Beban Kerja, dengan profil beban kerja yang menentukan sumber daya komputasi dan memori yang tersedia untuk aplikasi Anda. 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 Anda 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 Anda harus berjalan pada aplikasi fungsi di 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 kode 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 spesifik 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 pemutakhiran keamanan untuk Functions runtime dan bahasa. Anda harus memperbarui kontainer Anda secara teratur dari gambar dasar terbaru dan menyebarkan ulang versi kontainer Anda yang diperbarui. Untuk informasi selengkapnya, lihat Mempertahankan kontainer kustom.
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:
- Apache Maven
- Templat ARM
- Azure CLI
- Azure Developer CLI (azd)
- Alat Inti Azure Functions
- Tugas Azure Pipeline
- Portal Microsoft Azure
- File Bicep
- Tindakan GitHub
- Visual Studio Code
Anda dapat terus menyebarkan aplikasi dalam kontainer dari kode sumber menggunakan Azure Pipelines atau GitHub Actions. Fitur continuous deployment pada Functions saat ini tidak dapat digunakan untuk menyebarkan ke Container Apps.
Otorisasi identitas terkelola
Untuk keamanan terbaik, Anda harus terhubung ke layanan jarak jauh menggunakan autentikasi Microsoft Entra dan otorisasi identitas terkelola. Anda dapat menggunakan identitas terkelola untuk koneksi ini:
Saat berjalan di Aplikasi Kontainer, Anda dapat menggunakan ID Microsoft Entra dengan identitas terkelola untuk semua ekstensi pengikatan yang mendukung identitas terkelola. Saat ini, hanya ekstensi pengikatan ini yang mendukung penskalaan berbasis peristiwa saat menggunakan autentikasi identitas terkelola:
- Azure Event Hubs
- "Azure Queue Storage"
- Azure Service Bus (Layanan Bus oleh Azure)
Untuk pengikatan lain, gunakan replika tetap saat menggunakan autentikasi identitas terkelola. Untuk informasi selengkapnya, lihat panduan pengembang Functions.
Integrasi jaringan virtual
Saat Anda menghosting aplikasi fungsi di lingkungan Container Apps, fungsi Anda dapat memanfaatkan jaringan virtual yang dapat diakses secara internal dan eksternal. Untuk mempelajari selengkapnya tentang jaringan lingkungan, lihat Jaringan di lingkungan Azure Container Apps.
Penskalaan berbasis peristiwa
Semua pemicu fungsi dapat digunakan di aplikasi fungsi terkontainer Anda. Namun, hanya pemicu ini yang dapat menskalakan secara dinamis (dari nol instans) berdasarkan peristiwa yang diterima saat berjalan di lingkungan Container Apps:
- Azure Cosmos DB (koneksi KEDA)
- Jaringan Acara Azure
- Azure Event Hubs
- Azure Blob Storage (berbasis Event Grid)
- "Azure Queue Storage"
- Azure Service Bus (Layanan Bus oleh Azure)
- Durable Functions (penyedia penyimpanan MSSQL)
- HTTP
- Kafka
- Pengatur Waktu
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 Functions di Container Apps menjalankan sumber daya aplikasi fungsi kontainer Anda di grup sumber daya yang dikelola secara khusus. Grup sumber daya terkelola ini membantu melindungi konsistensi aplikasi Anda dengan mencegah modifikasi atau penghapusan sumber daya yang tidak diinginkan atau tidak sah di grup terkelola, bahkan oleh perwakilan layanan.
Grup sumber daya terkelola 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. Aplikasi fungsi lain yang Anda buat 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 grup tersebut akan dihapus secara otomatis.
Jika Anda mengalami masalah dengan grup sumber daya terkelola ini, Anda harus menghubungi dukungan.
Pengelogan aplikasi
Anda dapat memantau aplikasi fungsi kontainer yang dihosting di Container Apps menggunakan Azure Monitor Application Insights dengan cara yang sama seperti yang Anda lakukan dengan aplikasi yang dihosting oleh Azure Functions. Untuk informasi selengkapnya, lihat Memantau Fungsi Azure.
Untuk pengikatan yang mendukung penskalaan berbasis peristiwa, peristiwa penskalaan dicatat sebagai peristiwa FunctionsScalerInfo dan FunctionsScalerError di ruang kerja Analitik Log Anda. Untuk informasi selengkapnya, lihat Pengelogan Aplikasi di Azure Container Apps.
Pertimbangan untuk hosting Aplikasi Kontainer
Perlu diingat pertimbangan berikut saat menyebarkan kontainer aplikasi fungsi Anda ke Container Apps:
- Batasan ini berlaku untuk pemicu Kafka:
- Nilai
sslprotokol tidak didukung saat dihosting di Container Apps. Gunakan nilai protokol yang berbeda. - Agar pemicu Kafka bersekala secara dinamis ketika terhubung dengan Azure Event Hubs,
usernameproperti harus merujuk pada pengaturan aplikasi yang berisi nilai nama pengguna yang sebenarnya. Saat nilai default$ConnectionStringdigunakan, pemicu Kafka tidak dapat menyebabkan aplikasi menskalakan secara dinamis.
- Nilai
- Untuk definisi kebijakan Container Apps bawaan, saat ini hanya kebijakan tingkat lingkungan yang berlaku untuk kontainer Azure Functions.
- Secara default, aplikasi fungsi kontainer memantau port 80 untuk permintaan masuk. Jika aplikasi Anda harus menggunakan port yang berbeda, gunakan
WEBSITES_PORTpengaturan aplikasi untuk mengubah port default ini. - Saat ini Anda tidak dapat menggunakan fitur penyebaran berkelanjutan bawaan saat menghosting di Container Apps. Anda harus menyebarkan dari kode sumber menggunakan Azure Pipelines atau GitHub Actions.
- 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.
- Ekstensi
containerappbertentangan dengan ekstensiappservice-kubedi Azure CLI. Jika sebelumnya Anda telah menerbitkan aplikasi ke Azure Arc, jalankanaz extension listdan pastikan aplikasiappservice-kubetersebut tidak diinstal. Jika ya, Anda dapat menghapusnya dengan menjalankanaz extension remove -n appservice-kube.