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.
Ada dua model eksekusi untuk fungsi .NET:
Model eksekusi | Deskripsi |
---|---|
Model pekerja terisolasi | Kode fungsi Anda berjalan dalam proses pekerja .NET terpisah. Gunakan dengan versi .NET dan .NET Framework yang didukung. Untuk mempelajari selengkapnya, lihat Panduan untuk menjalankan C# Azure Functions dalam model pekerja yang terisolasi. |
Model dalam proses | Kode fungsi Anda berjalan dalam proses yang sama dengan proses host Azure Functions. Hanya mendukung versi Dukungan Jangka Panjang (LTS) .NET. Untuk mempelajari lebih lanjut, lihat Mengembangkan fungsi pustaka kelas C# dengan menggunakan Azure Functions. |
Penting
Dukungan akan berakhir untuk model dalam proses pada 10 November 2026. Kami sangat menyarankan Agar Anda memigrasikan aplikasi Anda ke model pekerja yang terisolasi untuk dukungan penuh.
Artikel ini menjelaskan status perbedaan fungsi dan perilaku saat ini antara kedua model. Untuk bermigrasi dari model dalam proses ke model pekerja yang terisolasi, lihat Memigrasikan aplikasi .NET dari model dalam proses ke model pekerja yang terisolasi.
Tabel perbandingan model eksekusi
Gunakan tabel berikut untuk membandingkan fitur dan perbedaan fungsional antara kedua model:
Fitur/perilaku | Model pekerja terisolasi | Model dalam proses3 |
---|---|---|
Versi .NET yang didukung | Versi Dukungan Jangka Panjang (LTS), Versi Dukungan Istilah Standar (STS), .NET Framework |
Versi Dukungan Jangka Panjang (LTS), berakhiran dengan .NET 8 |
Paket inti |
Microsoft.Azure.Functions.Worker Microsoft.Azure.Functions.Worker.Sdk |
Microsoft.NET.Sdk.Functions |
Paket ekstensi pengikatan | Microsoft.Azure.Functions.Worker.Extensions.* | Microsoft.Azure.WebJobs.Extensions.* |
Fungsi Tahan Lama | Didukung | Didukung |
Jenis model yang diekspos oleh pengikatan | Jenis sederhana Jenis yang bisa diserialisasikan JSON Array/enumerasi Layanan SDK jenis4 |
Jenis sederhana Jenis JSON yang dapat diserialisasikan Array/enumerasi Layanan SDK jenis4 |
Jenis model pemicu HTTP |
HttpRequestData / HttpResponseData HttpRequest / IActionResult (menggunakan integrasi ASP.NET Core)5 |
HttpRequest IActionResult5 / HttpRequestMessage / HttpResponseMessage |
Interaksi pengikatan output | Mengembalikan nilai dalam model yang diperluas dengan: - output tunggal atau beberapa - array output |
Mengembalikan nilai (output tunggal saja),out ParameterIAsyncCollector |
Pengikatan imperatif1 | Tidak didukung - sebagai gantinya bekerja dengan jenis SDK secara langsung | Didukung |
Injeksi dependensi | Didukung (model yang ditingkatkan konsisten dengan ekosistem .NET) | Didukung |
Middleware | Didukung | Tidak didukung |
Pencatatan |
ILogger<T>
/
ILogger diperoleh dari FunctionContext atau dengan menggunakan injeksi dependensi |
ILogger diteruskan ke fungsiILogger<T> dengan menggunakan injeksi dependensi |
Dependensi Application Insights | Didukung | Didukung |
Token pembatalan | Didukung | Didukung |
Waktu cold start2 | Pengoptimalan yang dapat dikonfigurasi | Dioptimalkan |
ReadyToRun | Didukung | Didukung |
[Konsumsi Flex] | Didukung | Tidak didukung |
.NET Aspire | Pratinjau | Tidak didukung |
1 Ketika Anda perlu berinteraksi dengan layanan menggunakan parameter yang ditentukan pada runtime, menggunakan SDK layanan yang sesuai secara langsung disarankan daripada menggunakan pengikatan imperatif. SDK bersifat kurang verbose, mencakup lebih banyak skenario, dan memiliki keuntungan untuk tujuan penanganan kesalahan dan penelusuran kesalahan. Rekomendasi ini berlaku untuk kedua model.
2 Waktu mulai yang dingin bisa semakin terpengaruh pada Windows saat menggunakan beberapa versi pratinjau .NET karena pemrosesan tepat waktu kerangka kerja pratinjau. Dampak ini berlaku untuk model dalam proses dan di luar proses tetapi dapat terlihat saat membandingkan di berbagai versi. Penundaan untuk versi pratinjau ini tidak ada pada paket Linux.
3 Fungsi Skrip C# juga berjalan dalam proses dan menggunakan pustaka yang sama dengan fungsi pustaka kelas dalam proses. Untuk informasi selengkapnya, lihat referensi pengembang skrip Azure Functions C# (.csx).
4 Jenis SDK Layanan mencakup jenis dari Azure SDK untuk .NET seperti BlobClient.
5 jenis ASP.NET Core tidak didukung untuk .NET Framework.
Versi yang didukung
Versi runtime Functions mendukung versi .NET tertentu. Untuk mempelajari selengkapnya tentang versi Functions, lihat Gambaran umum versi runtime Azure Functions. Dukungan versi juga bergantung pada apakah fungsi Anda berjalan dalam proses atau proses pekerja terisolasi.
Catatan
Untuk mempelajari cara mengubah versi runtime Functions yang digunakan oleh aplikasi fungsi Anda, lihat menampilkan dan memperbarui versi runtime saat ini.
Tabel berikut menunjukkan tingkat tertinggi .NET atau .NET Framework yang dapat digunakan dengan versi Functions tertentu.
Versi runtime Functions | Model pekerja terisolasi | Model dalam proses4 |
---|---|---|
Fungsi 4.x1 | .NET 9.0 .NET 8.0 .NET Framework 4.82 |
.NET 8.0 |
Fungsi 1.x3 | N/a | .NET Framework 4.8 |
1 .NET 6 sebelumnya didukung pada kedua model tetapi mencapai akhir dukungan resmi pada 12 November 2024. .NET 7 sebelumnya didukung pada model pekerja yang terisolasi tetapi mencapai akhir dukungan resmi pada 14 Mei 2024.
2 Proses build juga memerlukan .NET SDK.
3 Dukungan berakhir untuk runtime Azure Functions versi 1.x pada 14 September 2026. Untuk informasi selengkapnya, lihat pengumuman dukungan ini. Untuk dukungan penuh berkelanjutan, Anda harus memigrasikan aplikasi Anda ke versi 4.x.
4 Dukungan berakhir untuk model dalam proses pada 10 November 2026. Untuk informasi selengkapnya, lihat pengumuman dukungan ini. Untuk dukungan penuh berkelanjutan, Anda harus memigrasikan aplikasi Anda ke model pekerja yang terisolasi.
Untuk berita terbaru tentang rilis Azure Functions, termasuk penghapusan versi minor lama tertentu, lihat pengumuman Azure App Service.