Mesin aturan fungsi Azure

Penting

Fungsionalitas yang dijelaskan pada bagian ini saat ini dalam pratinjau pribadi. Pratinjau pribadi mencakup akses ke SDK dan dokumentasi untuk tujuan pengujian yang belum tersedia untuk umum. Daftar untuk menjadi pengadopsi awal dengan mengisi formulir untuk akses pratinjau ke Azure Communication Services.

Sebagai bagian dari model ekstensibilitas pelanggan, Azure Communication Services Job Router mendukung mesin aturan berbasis Azure Function. Ini memberi Anda kemampuan untuk membawa fungsi Azure Anda sendiri. Dengan Azure Functions, Anda dapat memasukkan logika kustom dan kompleks ke dalam proses perutean.

Membuat fungsi Azure

Jika Anda baru menggunakan Azure Functions, lihat Mulai menggunakan Azure Functions untuk mempelajari cara membuat fungsi pertama Anda dengan alat dan bahasa favorit Anda.

Catatan

Azure Function Anda harus dikonfigurasi untuk menggunakan pemicu Http

Isi permintaan Http yang dikirim ke fungsi Anda akan menyertakan label masing-masing entitas yang terlibat. Misalnya, jika Anda menulis fungsi untuk menentukan prioritas pekerjaan, payload akan menyertakan semua label pekerjaan di job bawah kunci.

{
    "job": {
        "label1": "foo",
        "label2": "bar",
        "urgent": true,
    }
}

Contoh berikut akan memeriksa nilai urgent label dan mengembalikan prioritas 10 jika benar.

public static class GetPriority
{
    [FunctionName("GetPriority")]
    public static async Task<IActionResult> Run(
        [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
        ILogger log)
    {
        var priority = 5;
        string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
        var data = JsonConvert.DeserializeObject<JObject>(requestBody);
        var isUrgent = data["job"]["urgent"].Value<bool>();
        if (isUrgent)
            priority = 10;

        return new OkObjectResult(JsonConvert.SerializeObject(priority));
    }
}

Mengonfigurasi kebijakan untuk menggunakan fungsi Azure

Periksa fungsi yang Anda sebarkan di portal Azure dan temukan Uri fungsi dan kunci autentikasi. Kemudian gunakan SDK untuk mengonfigurasi kebijakan yang menggunakan mesin aturan untuk menunjuk ke fungsi tersebut.

await client.SetClassificationPolicyAsync(
    "policy-1", 
    prioritizationRule: new AzureFunctionRule("<insert function uri>", new AzureFunctionRuleCredential("<insert function key>")));

Ketika pekerjaan baru dikirimkan atau diperbarui, fungsi ini akan dipanggil untuk menentukan prioritas pekerjaan.

Kesalahan

Jika Azure Function gagal atau mengembalikan kode non-200, pekerjaan akan berpindah ke ClassificationFailed status dan Anda akan menerima JobClassificationFailedEvent dari Event Grid yang berisi detail kesalahan.