Memanggil atau memicu aplikasi logika dengan menggunakan Azure Functions dan Azure Service Bus

Anda dapat menggunakan Azure Functions untuk memicu aplikasi logika saat Anda perlu menyebarkan pendengar atau tugas yang berjalan lama. Misalnya, Anda dapat membuat fungsi yang mendengar di antrean Azure Service Bus dan segera meluncurkan aplikasi logika sebagai pemicu dorong.

Prasyarat

Membuat aplikasi logika

Untuk skenario ini, Anda memiliki fungsi yang menjalankan setiap aplikasi logika yang ingin dipicu. Pertama, buat aplikasi logika yang dimulai dengan pemicu permintaan HTTP. Fungsi ini memanggil titik akhir tersebut setiap kali pesan antrean diterima.

  1. Masuk ke portal Microsoft Azure, dan buat aplikasi logika baru.

    Jika Anda baru menggunakan aplikasi logika, tinjau Mulai Cepat: Membuat aplikasi logika pertama Anda.

  2. Di kotak pencarian, masukkan http request. Dari daftar pemicu, pilih pemicu Kapan permintaan HTTP diterima.

    Pilih pemicu

    Dengan pemicu Permintaan, Anda dapat secara opsional memasukkan skema JSON untuk digunakan dengan pesan antrean. Skema JSON membantu Desainer Aplikasi Logika memahami struktur untuk data input, dan membuat Anda lebih mudah menggunakan output dalam alur kerja.

  3. Untuk menentukan skema, masukkan skema dalam kotak Skema JSON Isi Permintaan, misalnya:

    Tentukan skema JSON

    Jika Anda tidak memiliki skema, tetapi memiliki contoh payload dalam format JSON, Anda dapat membuat skema dari payload tersebut.

    1. Di Pemicu permintaan, pilih Gunakan contoh payload untuk membuat skema.

    2. Di bagian Masukkan atau tempelkan contoh payload JSON, masukkan contoh payload Anda, lalu pilih Selesai.

      Gunakan contoh payload

    Contoh payload ini menghasilkan skema ini yang muncul dalam pemicu:

    {
       "type": "object",
       "properties": {
          "address": {
             "type": "object",
             "properties": {
                "number": {
                   "type": "integer"
                },
                "street": {
                   "type": "string"
                },
                "city": {
                   "type": "string"
                },
                "postalCode": {
                   "type": "integer"
                },
                "country": {
                   "type": "string"
                }
             }
          }
       }
    }
    
  4. Tambahkan tindakan lain yang ingin dijalankan setelah menerima pesan antrean.

    Misalnya, Anda bisa mengirim email dengan konektor Office Outlook 365.

  5. Simpan aplikasi logika Anda, yang menghasilkan URL panggilan balik untuk pemicu di aplikasi logika ini. Kemudian, Anda menggunakan URL panggilan balik ini dalam kode untuk pemicu Antrean Azure Service Bus.

    URL panggilan balik muncul di properti URL POST HTTP.

    URL panggilan balik yang dihasilkan untuk pemicu

Membuat fungsi

Selanjutnya, buat fungsi yang bertindak sebagai pemicu dan mendengarkan antrean.

  1. Di portal Microsoft Azure, buka dan perluas aplikasi fungsi, jika belum terbuka.

  2. Di bawah nama aplikasi fungsi, perluas Fungsi. Pada panel Fungsi, pilih Fungsi baru.

    Perluas "Fungsi" dan pilih "Fungsi baru"

  3. Pilih template ini berdasarkan apakah Anda membuat aplikasi fungsi baru tempat Anda memilih .NET sebagai tumpukan runtime, atau Anda menggunakan aplikasi fungsi yang sudah ada.

    • Untuk aplikasi fungsi baru, pilih template ini: Pemicu Antrean Azure Service Bus

      Pilih template untuk aplikasi fungsi baru

    • Untuk aplikasi fungsi yang sudah ada, pilih template ini: Pemicu Antrean Azure Service Bus - C#

      Pilih template untuk aplikasi fungsi yang sudah ada

  4. Pada panel Pemicu Antrean Azure Service Bus, berikan nama untuk pemicu Anda, dan siapkan Koneksi Azure Service Bus untuk antrean, yang menggunakan pendengar OnMessageReceive() SDK Azure Service Bus, lalu pilih Buat.

  5. Tulis fungsi dasar untuk memanggil titik akhir aplikasi logika yang dibuat sebelumnya dengan menggunakan pesan antrean sebagai pemicu. Sebelum Anda menulis fungsi, tinjau pertimbangan ini:

    Contoh ini menggunakan Task.Run metode dalam mode asinkron. Untuk informasi selengkapnya, lihat Pemrograman asinkron dengan fungsi asinkron dan tunggu.

    using System;
    using System.Threading.Tasks;
    using System.Net.Http;
    using System.Text;
    
    // Can also fetch from App Settings or environment variable
    private static string logicAppUri = @"https://prod-05.westus.logic.azure.com:443/workflows/<remaining-callback-URL>";
    
    // Reuse the instance of HTTP clients if possible: https://docs.microsoft.com/azure/azure-functions/manage-connections
    private static HttpClient httpClient = new HttpClient();
    
    public static async Task Run(string myQueueItem, TraceWriter log) 
    {
       log.Info($"C# ServiceBus queue trigger function processed message: {myQueueItem}");
       var response = await httpClient.PostAsync(logicAppUri, new StringContent(myQueueItem, Encoding.UTF8, "application/json")); 
    }
    
  6. Untuk menguji fungsi, tambahkan pesan antrean dengan menggunakan alat seperti Service Bus Explorer.

    Aplikasi logika memicu segera setelah fungsi menerima pesan.

Langkah berikutnya