Bagikan melalui


Perbedaan antara model pekerja yang terisolasi dan model dalam proses untuk .NET di Azure Functions

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 lebih lanjut, lihat Mengembangkan fungsi proses pekerja terisolasi .NET.
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 .NET.

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 Parameter
IAsyncCollector
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 melalui injeksi dependensi ILogger diteruskan ke fungsi
ILogger<T> melalui 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

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 dingin dapat juga terpengaruh pada Windows saat menggunakan beberapa versi pratinjau .NET karena pemuatan kerangka kerja pratinjau just-in-time. 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 proses5
Functions 4.x1 .NET 9.0 (pratinjau)
.NET 8.0
.NET 6.02
.NET Framework 4.83
.NET 8.0
.NET 6.02
Functions 1.x4 n/a .NET Framework 4.8

1 .NET 7 sebelumnya didukung pada model pekerja yang terisolasi tetapi mencapai akhir dukungan resmi pada 14 Mei 2024.

2 .NET 6 mencapai akhir dukungan resmi pada 12 November 2024.

3 Proses build juga memerlukan .NET SDK.

4 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.

5 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.

Langkah berikutnya