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.
Durable Functions adalah ekstensi Azure Functions dan Azure WebJobs yang memungkinkan Anda menulis fungsi stateful di lingkungan tanpa server. Ekstensi ini mengelola kondisi, titik pemeriksaan, dan pemulihan untuk Anda. Jika Anda belum terbiasa dengan Durable Functions, lihat gambaran dokumentasi .
Ringkasan versi
| Versi | Status | Perubahan kunci |
|---|---|---|
| v3.x | Saat ini (disarankan) | Diperbarui Azure Storage SDK, peningkatan efisiensi biaya, tidak ada perubahan kode untuk meningkatkan dari v2.x |
| v2.x | Dipertahankan (hanya perbaikan keamanan dan bug) | Entitas tahan lama, HTTP Tahan Lama |
| v1.x | Akhir dukungan September 2026 | Legacy |
Apa yang baru di v3.x
Microsoft.Azure. Paket WebJobs.Extensions.DurableTask v3 (disebut sebagai WebJobs.Extensions.DurableTask di bagian berikutnya) adalah versi yang direkomendasikan saat ini. Memutakhirkan dari v2.x tidak memerlukan perubahan kode — Anda hanya perlu memperbarui dependensi paket Anda. Pembaruan ini hanya dianggap sebagai perubahan signifikan bagi pelanggan yang menjalankan aplikasi Durable C# yang menggunakan model in-process.
Note
Paket Durable Functions .NET di luar proses, Microsoft.Azure. Functions.Worker.Extensions.DurableTask, mereferensikan Microsoft. Azure. WebJobs.Extensions.DurableTask sebagai rakitan yang mendasarnya. Dengan demikian, pembaruan ini juga berlaku untuk Microsoft. Azure. Functions.Worker.Extensions.DurableTask, mulai dari versi 1.2.x.
SDK Azure Storage yang diperbarui
Secara default, Durable Functions menggunakan Azure Storage sebagai backend penyimpanan untuk menyimpan status aplikasi secara durab. Di WebJobs.Extensions.DurableTask v3, backend Azure Storage ditingkatkan untuk menggunakan versi terbaru SDK Azure Storage: Azure. Data.Tables, Azure. Storage.Blobs, dan Azure. Storage.Queues. SDK ini menawarkan dukungan yang ditingkatkan untuk Identitas Terkelola, performa yang lebih baik, penanganan data yang lebih efisien, dan peningkatan keamanan dibandingkan dengan paket warisan Microsoft.Azure.Storage.* yang digunakan dalam v2.x.
Peningkatan efisiensi biaya (untuk penyedia Azure Storage)
Dalam backend Azure Storage, Manajer Partisi bertanggung jawab untuk mendistribusikan partisi/antrean kontrol di antara pekerja. Paket WebJobs.Extensions.DurableTask v3 menggunakan Partition Manager V3 secara default, yang merupakan desain baru yang menggunakan Azure Table untuk mengelola penetapan partisi alih-alih sewa Blob Azure. Desain ini dapat secara signifikan mengurangi biaya penyimpanan sekaligus mempermudah penelusuran kesalahan. Ketika Partition Manager V3 digunakan, tabel baru, bernama Partitions, dibuat di akun penyimpanan Anda, memungkinkan Anda untuk dengan mudah memeriksa informasi partisi.
Menghapus dukungan untuk runtime Azure Functions v1
WebJobs.Extensions.DurableTask v3 tidak lagi mendukung runtime Azure Functions versi 1.x, dukungan yang dijadwalkan berakhir di September 2026. Jika Anda harus menggunakan runtime Functions v1, gunakan versi ekstensi Durable Functions yang lebih rendah dari v2.11.0. Perlu diingat bahwa ketika akhir dukungan terjadwal datang, Durable Functions juga akan menghilangkan dukungannya untuk runtime v1.
Pembaruan target runtime .NET
WebJobs.Extensions.DurableTask v3 memperbarui runtime target dari .NET Core 3.1 ke .NET 6, menawarkan peningkatan performa dan kompatibilitas yang ditingkatkan dengan fitur dan pustaka .NET modern. Pembaruan ini selaras dengan rilis bundel ekstensi Azure Functions di masa mendatang.
Migrasi dari v2.x ke v3.x
Migrasi dari v2.x ke v3.x tidak memerlukan perubahan kode — cukup perbarui dependensi Anda untuk mulai menggunakan fitur baru.
- Model proses: Perbarui ke Microsoft.Azure. WebJobs.Extensions.DurableTask versi 3.0.0 atau yang lebih baru.
- Model pekerja terisolasi: Perbarui ke Microsoft.Azure. Functions.Worker.Extensions.DurableTask versi 1.2.0 atau yang lebih baru.
Perbarui ke Azure Functions bundel ekstensi versi 4.22.0 atau yang lebih baru.
Menurunkan kompatibilitas (v3.x ke v2.x)
WebJobs.Extensions.DurableTask v3 menggunakan pengodean teks yang berbeda untuk Azure Storage SDK (Base64) dibandingkan dengan v2 (UTF-8). Jika Anda perlu mengembalikan dari v3.x ke v2.x, gunakan versi minimum berikut untuk memastikan kompatibilitas mundur:
Kembali ke versi bundel ekstensi yang lebih lama dari 4.22.0.
Dukungan dan pemeliharaan v2.x
WebJobs.Extensions.DurableTask v2.x terus menerima pembaruan keamanan dan perbaikan bug, memastikan bahwa aplikasi Anda yang ada tetap aman dan stabil. Namun, semua fitur dan peningkatan baru ditambahkan secara eksklusif ke v3.x. Karena itu, Anda sebaiknya segera meningkatkan ke WebJobs.Extensions.DurableTask v3 untuk mengambil manfaat dari kemampuan terbaru dan peningkatan yang sedang berlangsung.
Fitur yang diperkenalkan dalam v2.x
Fitur berikut tersedia di Durable Functions 2.x dan yang lebih baru, di semua bahasa yang didukung.
Note
Detail API .NET dalam proses di bagian ini tidak berlaku untuk model pekerja yang terisolasi. Untuk panduan mengenai pekerja yang terisolasi, lihat gambaran umum proses Durable Functions yang terisolasi.
Entitas tahan lama
Durable Functions mendukung fungsi entity untuk membaca dan memperbarui potongan-potongan kecil status, yang dikenal sebagai entitas durable. Seperti fungsi orkestrator, fungsi entitas adalah fungsi dengan jenis pemicu khusus, pemicu entitas. Tidak seperti fungsi orkestrator, fungsi entitas tidak memiliki batasan kode tertentu. Fungsi entitas juga mengelola status secara eksplisit daripada secara implisit mewakili status melalui alur kontrol.
Untuk mempelajari lebih lanjut, lihat artikel entitas tahan lama .
HTTP tahan lama
Durable Functions menyertakan fitur Durable HTTP yang memungkinkan Anda untuk:
- Panggil API HTTP langsung dari fungsi orkestrasi (dengan beberapa batasan yang didokumenkan).
- Terapkan polling status HTTP 202 otomatis di sisi klien.
- Gunakan dukungan bawaan untuk Azure Identitas Terkelola.
Untuk mempelajari selengkapnya, lihat artikel fitur HTTP .
Migrasi dari 1.x ke 2.x
Important
Runtime Azure Functions versi 1.x mencapai akhir dukungan dalam September 2026. Jika Anda masih menggunakan v1.x, rencanakan migrasi Anda segera.
Bagian ini menjelaskan cara memigrasikan Durable Functions versi 1.x yang ada ke versi 2.x untuk memanfaatkan fitur baru.
Meng-upgrade ekstensi dari Durable Functions
Instal ekstensi pengikatan Durable Functions versi 2.x terbaru di proyek Anda.
Durable Functions 2.x tersedia mulai versi 2.x dari bundel ekstensi Azure Functions.
dukungan Python di Durable Functions memerlukan Durable Functions 2.x atau lebih tinggi.
Untuk memperbarui versi bundel ekstensi di proyek Anda, buka host.json dan perbarui bagian extensionBundle untuk menggunakan versi 4.x ([4.*, 5.0.0)).
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
Durable Functions 2.x tersedia mulai versi 2.x dari bundel ekstensi Azure Functions.
Untuk memperbarui versi bundel ekstensi di proyek Anda, buka host.json dan perbarui bagian extensionBundle untuk menggunakan versi 4.x ([4.*, 5.0.0)).
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
Note
Jika Visual Studio Code tidak menampilkan templat yang benar setelah Anda mengubah versi bundel ekstensi, muat ulang jendela dengan menjalankan perintah Developer: Muat Ulang Jendela (Ctrl+R di Windows dan Linux, Command+R di macOS).
Durable Functions 2.x tersedia mulai versi 2.x dari bundel ekstensi Azure Functions.
Untuk memperbarui versi bundel ekstensi di proyek Anda, buka host.json dan perbarui bagian extensionBundle untuk menggunakan versi 4.x ([4.*, 5.0.0)).
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
Perbarui proyek .NET Anda untuk menggunakan versi terbaru ekstensi pengikatan Durable Functions.
Lihat ekstensi pengikatan Register Azure Functions untuk informasi selengkapnya.
Memperbarui kode Durable Functions Anda
Durable Functions 2.x memperkenalkan beberapa perubahan mendasar. aplikasi Durable Functions 1.x tidak kompatibel dengan Durable Functions 2.x tanpa perubahan kode. Bagian ini mencantumkan beberapa perubahan yang harus Anda buat saat memutakhirkan fungsi versi 1.x Anda ke 2.x.
Skema host.json
Durable Functions 2.x menggunakan skema host.json baru. Perubahan utama dari 1.x meliputi:
-
"storageProvider"(dan subbagian"azureStorage") untuk konfigurasi khusus penyimpanan. -
"tracing"untuk konfigurasi pelacakan dan pengelogan. -
"notifications"(dan subbagian"eventGrid") untuk konfigurasi notifikasi Event Grid.
Lihat dokumentasi referensi Durable Functions host.json untuk detailnya.
Perubahan nama hub tugas bawaan
Dalam versi 1.x, jika nama hub tugas tidak ditentukan di host.json, secara otomatis disetel ke "DurableFunctionsHub". Di versi 2.x, nama hub tugas default sekarang berasal dari nama aplikasi fungsi. Karena itu, jika Anda belum menentukan nama hub tugas saat meningkatkan ke 2.x, kode Anda akan beroperasi dengan hub tugas baru, dan semua orkestrasi dalam penerbangan tidak akan lagi memiliki aplikasi yang memprosesnya. Untuk mengatasi hal ini, Anda dapat secara eksplisit mengatur nama hub tugas Anda ke default v1.x dari "DurableFunctionsHub", atau Anda dapat mengikuti panduan penyebaran zero-downtime kami untuk detail tentang cara menangani perubahan yang mengganggu untuk orkestrasi yang sedang berjalan.
Perubahan antarmuka publik dalam Durable Functions
Dalam versi 1.x, berbagai objek context yang didukung oleh Durable Functions memiliki kelas dasar abstrak yang dimaksudkan untuk digunakan dalam pengujian unit. Sebagai bagian dari Durable Functions 2.x, kelas dasar abstrak ini diganti dengan antarmuka.
Tabel berikut menunjukkan perubahan utama:
| 1.x | 2.x |
|---|---|
DurableOrchestrationClientBase |
IDurableOrchestrationClient atau IDurableClient |
DurableOrchestrationContext atau DurableOrchestrationContextBase |
IDurableOrchestrationContext |
DurableActivityContext atau DurableActivityContextBase |
IDurableActivityContext |
OrchestrationClientAttribute |
DurableClientAttribute |
Dalam kasus di mana kelas dasar abstrak berisi metode virtual, metode virtual ini telah digantikan oleh metode ekstensi yang ditentukan dalam DurableContextExtensions.
perubahan function.json
Dalam Durable Functions 1.x, pengikatan klien orkestrasi menggunakan typeorchestrationClient. Versi 2.x menggunakan durableClient sebagai gantinya.
Memicu perubahan peristiwa
Dalam Durable Functions 1.x, menjalankan event raise API dan menentukan suatu instans yang tidak ada mengakibatkan gagal diam-diam. Mulai dari 2.x, menaikkan peristiwa ke orkestrasi yang tidak ada menghasilkan pengecualian.
Konten terkait
- Migrasi dari dalam proses ke model pekerja yang terisolasi
- Gambaran umum Durable Functions
- gambaran umum proses terisolasi Durable Functions