Membuat Durable Functions menggunakan portal Microsoft Azure

Ekstensi Durable Functions untuk Azure Functions disediakan dalam paket NuGet Microsoft.Azure.WebJobs.Extensions.DurableTask. Ekstensi ini harus diinstal di aplikasi fungsi Anda. Artikel ini menunjukkan cara menginstal paket ini sehingga Anda dapat mengembangkan durable functions di portal Microsoft Azure.

Catatan

Buat aplikasi fungsi

Anda harus memiliki aplikasi fungsi untuk menghosting eksekusi semua fungsi. Dengan Aplikasi fungsi, Anda dapat mengelompokkan fungsi sebagai unit logis untuk lebih memudahkan pengelolaan, penyebaran, penskalaan, dan berbagi sumber daya. Anda dapat membuat aplikasi .NET atau JavaScript.

  1. Pada menu portal Microsoft Azure atau halaman Beranda, pilih Buat sumber daya.

  2. Di halaman Baru, pilih Komputasi>Aplikasi Fungsi.

  3. Di halaman Dasar, gunakan pengaturan aplikasi fungsi seperti ditentukan dalam tabel di bawah:

    Pengaturan Nilai yang disarankan Deskripsi
    Langganan Langganan Anda Langganan tempat Anda membuat aplikasi fungsi baru.
    Grup Sumber Daya myResourceGroup Nama untuk grup sumber daya baru tempat Anda membuat aplikasi fungsi. Anda harus membuat grup sumber daya baru karena ada batasan yang diketahui saat membuat aplikasi fungsi baru di grup sumber daya yang ada.
    Nama Aplikasi Fungsi Nama unik secara global Nama yang akan mengidentifikasi aplikasi fungsi baru Anda. Karakter yang valid a-z (peka huruf besar dan kecil), 0-9, dan -.
    Apakah Anda ingin menyebarkan kode atau gambar kontainer? Kode Opsi untuk menerbitkan file kode atau kontainer Docker.
    Tumpukan runtime Bahasa pilihan Pilih runtime yang mendukung bahasa pemrograman fungsi favorit Anda. Pengeditan dalam portal hanya tersedia untuk skrip JavaScript, PowerShell, Python, TypeScript, dan C#. Pustaka kelas C# dan fungsi Java harus dikembangkan secara lokal.
    Versi Nomor versi Pilih versi runtime yang terpasang.
    Wilayah Wilayah pilihan Pilih wilayah yang ada di dekat Anda atau di dekat layanan lain yang dapat diakses oleh fungsi Anda.
    Sistem operasi Jendela Sistem operasi telah dipilih sebelumnya untuk Anda berdasarkan pemilihan tumpukan runtime Anda, tetapi Anda dapat mengubah pengaturan jika perlu. Pengeditan dalam portal hanya didukung di Windows. Penerbitan kontainer hanya didukung di Linux.
    Opsi dan paket hosting Konsumsi (Tanpa Server) Paket hosting yang menentukan cara sumber daya dialokasikan ke aplikasi fungsi Anda. Dalam paket Konsumsi default, sumber daya ditambahkan secara dinamis sebagaimana diperlukan oleh fungsi Anda. Dalam hosting tanpa server ini, Anda cukup membayar durasi waktu saat fungsi Anda berjalan. Paket premium juga menawarkan penskalakan dinamis. Saat Anda menjalankan paket Azure App Service, Anda harus mengelola penskalaan aplikasi fungsi Anda.
  4. Terima opsi default untuk membuat akun penyimpanan baru di tab Penyimpanan dan instans Application Insight baru pada tab Pemantauan . Anda juga dapat memilih untuk menggunakan akun penyimpanan atau instans Application Insights yang ada.

  5. Pilih Tinjau + buat untuk meninjau konfigurasi aplikasi yang Anda pilih, lalu pilih Buat untuk menyediakan dan menyebarkan aplikasi fungsi.

  6. Pilih ikon Pemberitahuan di sudut kanan atas portal dan lihat pesan Deployment berhasil.

  7. Pilih Buka sumber daya untuk melihat aplikasi fungsi baru Anda. Anda juga dapat memilih Sematkan ke dasbor. Menyematkan memudahkan untuk kembali ke sumber daya aplikasi fungsi ini dari dasbor Anda.

    Screenshot of deployment notification.

Secara default, aplikasi fungsi yang dibuat menggunakan runtime Azure Functions versi 2.x. Ekstensi Durable Functions berfungsi pada versi 1.x dan 2.x runtime Azure Functions di C#, dan versi 2.x di JavaScript. Namun, templat hanya tersedia saat menargetkan versi 2.x runtime terlepas dari bahasa yang dipilih.

Menginstal paket npm durable functions (hanya JavaScript)

Jika Anda membuat Durable Functions JavaScript, Anda harus menginstal durable-functionspaket npm:

  1. Dari halaman aplikasi fungsi Anda, pilih Alat Tingkat Lanjut pada Alat Pengembangan di panel kiri.

    Functions platform features choose Kudu

  2. Di halaman Alat Tingkat Lanjut, pilih Buka.

  3. Di dalam konsol Kudu, pilih Konsol debug, lalu CMD.

    Kudu debug console

  4. Struktur direktori file aplikasi fungsi Anda harus ditampilkan. Navigasi ke folder site/wwwroot. Di folder, Anda dapat mengunggah file package.json dengan menyeret dan menjatuhkannya ke jendela direktori file. Sampel package.json di bawah ini:

    {
      "dependencies": {
        "durable-functions": "^1.3.1"
      }
    }
    

    Kudu upload package.json

  5. Setelah package.json diunggah, jalankan perintah npm install dari Konsol Eksekusi Jarak Jauh Kudu.

    Kudu run npm install

Membuat fungsi orkestrator

  1. Di aplikasi fungsi Anda, pilih Fungsi dari panel kiri, lalu pilih Tambahkan dari menu atas.

  2. Di bidang pencarian halaman Fungsi Baru, masukkan durable, lalu pilih templat starter HTTP Durable Functions.

    Select Durable Functions HTTP starter

  3. Untuk nama Fungsi Baru, masukkan HttpStart, lalu pilih Buat Fungsi.

    Fungsi yang dibuat digunakan untuk memulai orkestrasi.

  4. Buat fungsi lain di aplikasi fungsi, kali ini dengan menggunakan templat orkestrator Durable Functions. Beri nama fungsi orkestrasi baru HelloSequence Anda.

  5. Buat fungsi ketiga bernama Hello dengan menggunakan templat aktivitas Durable Functions.

Uji orkestrasi durable function

  1. Kembali ke fungsi HttpStart, pilih Dapatkan Url fungsi, dan pilih ikon Salin ke clipboard untuk menyalin URL. Anda menggunakan URL ini untuk memulai fungsi HelloSequence.

  2. Gunakan alat HTTP seperti Postman atau cURL untuk mengirim permintaan POST ke URL yang Anda salin. Contoh berikut adalah perintah cURL yang mengirimkan permintaan POST ke durable function:

    curl -X POST https://{your-function-app-name}.azurewebsites.net/api/orchestrators/{functionName} --header "Content-Length: 0"
    

    Dalam contoh ini, {your-function-app-name} adalah domain yang merupakan nama aplikasi fungsi Anda, dan {functionName} adalah fungsi orkestra HelloSequence. Pesan respons berisi sekumpulan titik akhir URI yang bisa Anda gunakan untuk memantau dan mengelola eksekusi, yang terlihat seperti contoh berikut:

    {  
       "id":"10585834a930427195479de25e0b952d",
       "statusQueryGetUri":"https://...",
       "sendEventPostUri":"https://...",
       "terminatePostUri":"https://...",
       "rewindPostUri":"https://..."
    }
    
  3. Panggil URI titik akhir statusQueryGetUri dan Anda melihat status saat ini dari durable function, yang mungkin terlihat seperti contoh ini:

        {
            "runtimeStatus": "Running",
            "input": null,
            "output": null,
            "createdTime": "2017-12-01T05:37:33Z",
            "lastUpdatedTime": "2017-12-01T05:37:36Z"
        }
    
  4. Lanjutkan memanggil titik akhir statusQueryGetUri hingga status berubah menjadi Selesai, dan Anda melihat respons seperti contoh berikut:

    {
            "runtimeStatus": "Completed",
            "input": null,
            "output": [
                "Hello Tokyo!",
                "Hello Seattle!",
                "Hello London!"
            ],
            "createdTime": "2017-12-01T05:38:22Z",
            "lastUpdatedTime": "2017-12-01T05:38:28Z"
        }
    

Durable function pertama Anda sekarang aktif dan berjalan di Azure.

Langkah berikutnya