Jenis dan fitur Durable Functions

Durable Functions adalah ekstensi Azure Functions. Anda dapat menggunakan Durable Functions untuk orkestrasi eksekusi fungsi yang canggih. Aplikasi fungsi yang tahan lama adalah solusi yang terdiri dari berbagai fungsi Azure. Functions dapat memainkan peran yang berbeda dalam orkestrasi fungsi yang tahan lama.

Saat ini ada empat jenis fungsi yang tahan lama di Azure Functions: aktivitas, orkestrator, entitas, dan klien. Bagian lainnya menjelaskan detail tentang jenis fungsi yang digunakan dalam orkestrasi.

Fungsi orkestrator

Fungsi orkestrator menjelaskan cara tindakan dijalankan dan urutan eksekusi tindakan. Fungsi orkestrator menjelaskan orkestrasi dalam kode (C# atau JavaScript) seperti yang ditunjukkan dalam pola aplikasi Durable Functions. Orkestrasi dapat memiliki berbagai jenis tindakan, termasuk fungsi aktivitas, sub-orkestrasi, menunggu peristiwa eksternal, HTTP, dan timer. Fungsi orkestrator juga dapat berinteraksi dengan fungsi entitas.

Catatan

Fungsi orkestrator ditulis menggunakan kode biasa, tetapi ada persyaratan ketat tentang cara menulis kode. Khususnya, kode fungsi orkestrator harus deterministik. Jika persyaratan determinisme tidak dipenuhi, fungsi orkestrator tidak dapat dijalankan dengan benar. Informasi terperinci tentang persyaratan ini dan cara mengatasinya dapat ditemukan dalam topik batasan kode.

Untuk informasi selengkapnya tentang fungsi orkestrator dan fiturnya, lihat artikel Orkestrasi tahan lama.

Fungsi aktivitas

Fungsi aktivitas adalah unit dasar pekerjaan dalam orkestrasi fungsi yang tahan lama. Fungsi aktivitas adalah fungsi dan tugas yang diorkestrasi dalam proses. Misalnya, Anda dapat membuat fungsi orkestrator untuk memproses urutan. Tugas tersebut melibatkan pemeriksaan inventaris, penagihan pelanggan, dan melakukan pengiriman. Setiap tugas akan menjadi fungsi aktivitas terpisah. Fungsi aktivitas ini dapat dijalankan secara seri, paralel, atau beberapa kombinasi keduanya.

Tidak seperti fungsi orkestrator, fungsi aktivitas tidak dibatasi dalam hal jenis pekerjaan yang dapat Anda lakukan di dalamnya. Fungsi aktivitas sering digunakan untuk melakukan panggilan jaringan atau menjalankan operasi berat CPU. Fungsi aktivitas juga dapat menampilkan data kembali ke fungsi orkestrator. Durable Task Framework menjamin bahwa setiap fungsi aktivitas yang dipanggil akan dijalankan setidaknya sekali selama eksekusi orkestrasi.

Catatan

Karena fungsi aktivitas hanya menjamin eksekusi setidaknya sekali, sebaiknya Anda membuat logika fungsi aktivitas Anda idempoten kapan pun dimungkinkan.

Gunakan pemicu aktivitas untuk menentukan fungsi aktivitas. Fungsi .NET menerima DurableActivityContext sebagai parameter. Anda juga dapat mengikat pemicu ke objek yang dapat diserialkan JSON lainnya untuk meneruskan input ke fungsi. Di JavaScript, Anda dapat mengakses input melalui properti <activity trigger binding name> pada objek context.bindings. Fungsi aktivitas hanya dapat memiliki nilai tunggal yang diteruskan ke fungsi tersebut. Untuk meneruskan beberapa nilai, Anda harus menggunakan tuple, larik, atau jenis yang kompleks.

Catatan

Anda dapat memicu fungsi aktivitas hanya dari fungsi orkestrator.

Fungsi entitas

Fungsi entitas menentukan operasi untuk membaca dan memperbarui bagian-bagian kecil status. Kami sering menyebut entitas berstatus ini sebagai entitas tahan lama. Seperti fungsi orkestrator, fungsi entitas adalah fungsi dengan jenis pemicu khusus, pemicu entitas. Fungsi ini juga dapat dipanggil dari fungsi klien atau dari fungsi orkestrator. 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.

Catatan

Fungsi entitas dan fungsionalitas terkait hanya tersedia dalam Durable Functions 2.0 dan yang lebih baru.

Untuk informasi selengkapnya tentang fungsi entitas, lihat artikel Entitas Tahan Lama.

Fungsi klien

Fungsi orkestrator dipicu oleh pengikatan pemicu orkestrasi dan fungsi entitas dipicu oleh pengikatan pemicu entitas. Kedua pemicu ini bekerja dengan bereaksi terhadap pesan yang diwariskan ke hub tugas. Cara utama untuk menyampaikan pesan ini adalah dengan menggunakan pengikatan klien orkestrator atau pengikatan klien entitas dari dalam fungsi klien. Setiap fungsi non-orkestrator dapat menjadi fungsi klien. Misalnya, Anda dapat memicu orkestrator dari fungsi yang dipicu HTTP, fungsi yang dipicu Azure Event Hub, dll. Apa yang membuat fungsi menjadi fungsi klien penggunaan pengikatan output klien yang tahan lama.

Catatan

Tidak seperti jenis fungsi lainnya, fungsi orkestrator dan entitas tidak dapat dipicu secara langsung menggunakan tombol di Portal Azure. Jika ingin menguji fungsi orkestrator atau entitas di Portal Azure, Anda harus menjalankan fungsi klien yang memulai fungsi orkestrator atau entitas sebagai bagian dari implementasinya. Untuk pengalaman pengujian yang paling sederhana, fungsi pemicu manual direkomendasikan.

Selain memicu fungsi orkestrator atau entitas, pengikatan klien yang tahan lama dapat digunakan untuk berinteraksi dengan orkestrasi dan entitas yang berjalan. Misalnya, orkestrasi dapat dikueri, dihentikan, dan dapat memiliki peristiwa yang diajukan kepada orkestrasi. Untuk informasi selengkapnya tentang mengelola orkestrasi dan entitas, lihat artikel Pengelolaan instans.

Langkah berikutnya

Untuk memulai, buat fungsi tahan lama pertama Anda di C#, JavaScript, Python, PowerShell, atau Java.