Aracılığıyla paylaş


Azure işlev kuralı altyapısı

Azure İletişim Hizmetleri İş Yönlendiricisi, müşteri genişletilebilirlik modelinin bir parçası olarak Azure İşlevi tabanlı bir kural altyapısını destekler. Size kendi Azure işlevinizi getirme olanağı sağlar. Azure İşlevleri ile yönlendirme işlemine özel ve karmaşık mantık ekleyebilirsiniz.

Azure işlevi oluşturma

Azure İşlevleri kullanmaya yeni başladıysanız, sık kullandığınız araç ve dille ilk işlevinizi nasıl oluşturacağınızı öğrenmek için Azure İşlevleri kullanmaya başlama bölümüne bakın.

Dekont

Azure İşlevinizin http tetikleyicisi kullanacak şekilde yapılandırılması gerekir

İşlevinize gönderilen Http isteği gövdesi, ilgili varlıkların her birinin etiketlerini içerir. Örneğin, iş önceliğini belirlemek için bir işlev yazıyorsanız, yük anahtarın altındaki job tüm iş etiketlerini içerir.

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

Aşağıdaki örnek, etiketin urgent değerini inceler ve doğruysa 10'un önceliğini döndürür.

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));
    }
}

Azure işlevini kullanmak için bir ilke yapılandırma

Azure portalında dağıtılan işlevinizi inceleyin ve işlev Uri'sini ve kimlik doğrulama anahtarını bulun. Ardından SDK'sını kullanarak bu işleve işaret eden bir kural altyapısı kullanan bir ilke yapılandırın.

await administrationClient.CreateClassificationPolicyAsync(
    new CreateClassificationPolicyOptions("policy-1") {
        PrioritizationRule = new FunctionRouterRule(new Uri("<insert function uri>")) {
            Credential = new FunctionRouterRuleCredential("<insert function key>")
        }});

Yeni bir iş gönderildiğinde veya güncelleştirildiğinde, işin önceliğini belirlemek için bu işlev çağrılır.

Hatalar

Azure İşlevi başarısız olursa veya 200 olmayan bir kod döndürürse iş duruma geçer ClassificationFailed ve Event Grid'den hatanın ayrıntılarını içeren bir JobClassificationFailedEvent alırsınız.

Sonraki adımlar