Gambaran Umum versi Durable Functions
Durable Functions adalah ekstensi dari Azure Functions dan Azure WebJobs yang memungkinkan Anda menulis fungsi stateful di lingkungan tanpa server. Ekstensi ini mengelola status, titik pemeriksaan, dan menghidupkan ulang untuk Anda. Jika Anda belum terbiasa dengan Durable Functions, lihat dokumentasi gambaran umum.
Fitur baru di versi 2.x
Bagian ini menjelaskan fitur Durable Functions yang ditambahkan di versi 2.x.
Catatan
Bagian ini tidak berlaku untuk Durable Functions di pekerja terisolasi dotnet. Untuk itu, lihat ringkasan proses terisolasi fungsi tahan lama.
Entitas tahan lama
Dalam Durable Functions versi 2.x, kami memperkenalkan konsep fungsi entitas baru.
Fungsi entitas mendefinisikan operasi untuk membaca dan memperbarui potongan-potongan kecil status, yang dikenal sebagai entitas tahan lama. 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, bukan secara implisit, yang menunjukkan status melalui alur kontrol.
Untuk mempelajari lebih lanjut, lihat artikel entitas tahan lama.
HTTP tahan lama
Dalam Durable Functions versi 2.x, kami memperkenalkan fitur HTTP Tahan Lama baru yang memungkinkan Anda:
- Memanggil API HTTP langsung dari fungsi orkestrasi (dengan beberapa batasan yang didokumentasikan).
- Menerapkan penjajakan status HTTP 202 sisi klien otomatis.
- Dukungan bawaan untuk Identitas Terkelola Azure.
Untuk mempelajari lebih lanjut, lihat artikel fitur HTTP.
Migrasi dari versi 1.x ke 2.x
Bagian ini menjelaskan cara memigrasikan Durable Functions versi 1.x yang ada ke versi 2.x untuk memanfaatkan fitur baru.
Meningkatkan ekstensi
Instal versi 2.x terbaru dari ekstensi pengikatan Durable Functions di project Anda.
JavaScript, Python, dan PowerShell
Durable Functions 2.x tersedia mulai dari versi 2.x dari bundel ekstensi Azure Functions.
Dukungan Python dalam Durable Functions membutuhkan Durable Functions versi 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)"
}
}
Catatan
Jika Visual Studio Code tidak menampilkan template yang benar setelah Anda mengubah versi bundel ekstensi, muat ulang jendela dengan menjalankan perintah Developer: Reload Window (Ctrl+R di Windows dan Linux, Command+R di macOS).
Java
Durable Functions versi 2.x tersedia mulai dari versi 4.x dari bundel ekstensi Azure Functions. Anda harus menggunakan runtime Azure Functions 4.0 untuk menjalankan fungsi Java.
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)"
}
}
.NET
Perbarui proyek .NET Anda untuk menggunakan versi terbaru ekstensi pengikatan Durable Functions.
Untuk informasi lebih lanjut, lihat Mendaftarkan ekstensi pengikatan Azure Functions.
Memperbarui kode Anda
Durable Functions 2.x memperkenalkan beberapa perubahan besar. Aplikasi Durable Functions 1.x tidak kompatibel dengan Durable Functions 2.x tanpa perubahan kode. Bagian ini mencantumkan beberapa perubahan yang harus Anda lakukan saat meningkatkan fungsi versi 1.x 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 pencatatan."notifications"
(dan subbagian"eventGrid"
) untuk konfigurasi pemberitahuan Azure Event Grid.
Untuk detail lebih lanjut, lihat Dokumentasi referensi host.json Durable Functions.
Perubahan nama hub tugas secara default
Di versi 1.x, jika nama hub tugas tidak ditentukan di host.json, maka defaultnya adalah "DurableFunctionsHub". Di versi 2.x, nama hub tugas default sekarang diturunkan dari nama aplikasi fungsi. Karena itu, jika Anda belum menentukan nama hub tugas saat meningkatkan ke versi 2.x, kode Anda akan beroperasi dengan hub tugas baru, dan semua orkestrasi yang digunakan 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 besar untuk orkestrasi dalam penerbangan.
Perubahan antarmuka publik (khusus .NET)
Di versi 1.x, berbagai objek konteks 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 ini 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 didefinisikan dalam DurableContextExtensions
.
perubahan function.json
Dalam Durable Functions 1.x, pengikatan klien orkestrasi menggunakan type
dari orchestrationClient
. Versi 2.x menggunakan durableClient
sebagai gantinya.
Menaikkan perubahan peristiwa
Di Durable Functions 1.x, memanggil API peristiwa kenaikan dan menentukan instans yang tidak ada mengakibatkan kegagalan diam. Mulai versi 2.x, menaikkan peristiwa ke orkestrasi yang tidak ada mengakibatkan pengecualian.