Azure İşlevleri için Azure Veri Gezgini giriş bağlamaları (önizleme)

Azure Veri Gezgini giriş bağlaması veritabanından veri alır.

Örnekler

C# işlevi aşağıdaki C# modlarından biri kullanılarak oluşturulabilir:

  • Yalıtılmış çalışan modeli: Çalışma zamanından yalıtılmış bir çalışan işleminde çalışan derlenmiş C# işlevi. LTS ve .NET ve .NET Framework dışındaki sürümlerde çalışan C# işlevlerini desteklemek için yalıtılmış çalışan işlemi gereklidir.
  • İşlem içi model: İşlevler çalışma zamanıyla aynı işlemde çalışan derlenmiş C# işlevi.
  • C# betiği: Öncelikle Azure portalında C# işlevleri oluşturduğunuzda kullanılır.

Önemli

İşlem içi model desteği 10 Kasım 2026'da sona erecektir. Tam destek için uygulamalarınızı yalıtılmış çalışan modeline geçirmenizi kesinlikle öneririz.

GitHub deposunda Azure Veri Gezgini giriş bağlaması (işlem dışı) için daha fazla örnek mevcuttur.

Bu bölüm aşağıdaki örnekleri içerir:

Örnekler, her ikisi de önceki bölümlerde tanımlanan bir Product sınıfa ve Products tablosuna başvurur.

HTTP tetikleyicisi, sorgu dizesinden kimliğine göre satır alma

Aşağıdaki örnekte tek bir kayıt alan bir C# işlevi gösterilmektedir. İşlev, kimliği belirtmek için sorgu dizesi kullanan bir HTTP isteği tarafından tetikleniyor. Bu kimlik, belirtilen sorguya sahip bir Product kaydı almak için kullanılır.

Not

HTTP sorgu dizesi parametresi büyük/küçük harfe duyarlıdır.

using System.Text.Json.Nodes;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Azure.Functions.Worker.Extensions.Kusto;
using Microsoft.Azure.Functions.Worker.Http;
using Microsoft.Azure.WebJobs.Extensions.Kusto.SamplesOutOfProc.OutputBindingSamples.Common;

namespace Microsoft.Azure.WebJobs.Extensions.Kusto.SamplesOutOfProc.InputBindingSamples
{
    public static class GetProductsQuery
    {
        [Function("GetProductsQuery")]
        public static JsonArray Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "getproductsquery")] HttpRequestData req,
            [KustoInput(Database: "productsdb",
            KqlCommand = "declare query_parameters (productId:long);Products | where ProductID == productId",
            KqlParameters = "@productId={Query.productId}",Connection = "KustoConnectionString")] JsonArray products)
        {
            return products;
        }
    }
}

HTTP tetikleyicisi, yol parametresinden birden çok satır alma

Aşağıdaki örnekte, sorgu tarafından döndürülen kayıtları alan bir C# işlevi gösterilmektedir (bu örnekte ürünün adına göre). İşlev, sorgu parametresinin değerini belirtmek için yönlendirme verilerini kullanan bir HTTP isteği tarafından tetikleniyor. Bu parametre, belirtilen sorgudaki Product kayıtları filtrelemek için kullanılır.

using Microsoft.Azure.Functions.Worker;
using Microsoft.Azure.Functions.Worker.Extensions.Kusto;
using Microsoft.Azure.Functions.Worker.Http;
using Microsoft.Azure.WebJobs.Extensions.Kusto.SamplesOutOfProc.OutputBindingSamples.Common;

namespace Microsoft.Azure.WebJobs.Extensions.Kusto.SamplesOutOfProc.InputBindingSamples
{
    public static class GetProductsFunction
    {
        [Function("GetProductsFunction")]
        public static IEnumerable<Product> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "getproductsfn/{name}")] HttpRequestData req,
            [KustoInput(Database: "productsdb",
            KqlCommand = "declare query_parameters (name:string);GetProductsByName(name)",
            KqlParameters = "@name={name}",Connection = "KustoConnectionString")] IEnumerable<Product> products)
        {
            return products;
        }
    }
}

GitHub deposunda Java Azure Veri Gezgini giriş bağlaması için daha fazla örnek mevcuttur.

Bu bölüm aşağıdaki örnekleri içerir:

Örnekler bir sınıfa (ayrı bir Product dosyada Product.java) ve buna karşılık gelen bir veritabanı tablosuna başvurur.

package com.microsoft.azure.kusto.common;

import com.fasterxml.jackson.annotation.JsonProperty;

public class Product {
    @JsonProperty("ProductID")
    public long ProductID;
    @JsonProperty("Name")
    public String Name;
    @JsonProperty("Cost")
    public double Cost;

    public Product() {
    }

    public Product(long ProductID, String name, double Cost) {
        this.ProductID = ProductID;
        this.Name = name;
        this.Cost = Cost;
    }
}

HTTP tetikleyicisi, birden çok satır alma

Örnek, ürünlerin kimliğinin adını belirtmek için bir yol parametresi kullanır. Eşleşen tüm ürünler ürünler tablosundan alınır.

package com.microsoft.azure.kusto.inputbindings;

import com.microsoft.azure.functions.HttpMethod;
import com.microsoft.azure.functions.HttpRequestMessage;
import com.microsoft.azure.functions.HttpResponseMessage;
import com.microsoft.azure.functions.HttpStatus;
import com.microsoft.azure.functions.annotation.AuthorizationLevel;
import com.microsoft.azure.functions.annotation.FunctionName;
import com.microsoft.azure.functions.annotation.HttpTrigger;
import com.microsoft.azure.functions.kusto.annotation.KustoInput;
import com.microsoft.azure.kusto.common.Product;


import java.util.Optional;

public class GetProducts {
    @FunctionName("GetProducts")
    public HttpResponseMessage run(
        @HttpTrigger(name = "req", methods = {
            HttpMethod.GET}, authLevel = AuthorizationLevel.ANONYMOUS, route = "getproducts/{productId}") HttpRequestMessage<Optional<String>> request,
            @KustoInput(name = "getjproducts", kqlCommand = "declare query_parameters (productId:long);Products | where ProductID == productId",
                    kqlParameters = "@productId={productId}", database = "productsdb", connection = "KustoConnectionString") Product[] products) {
        return request.createResponseBuilder(HttpStatus.OK).header("Content-Type", "application/json").body(products)
                .build();
    }
}

HTTP tetikleyicisi, sorgu dizesinden kimliğine göre satır alma

Aşağıdaki örnekte ürünler tablosu için ürün adına göre bir sorgu gösterilmektedir. İşlev, sorgu parametresinin değerini belirtmek için sorgu dizesi kullanan bir HTTP isteği tarafından tetikleniyor. Bu parametre, belirtilen sorgudaki Product kayıtları filtrelemek için kullanılır.

package com.microsoft.azure.kusto.inputbindings;

import com.microsoft.azure.functions.HttpMethod;
import com.microsoft.azure.functions.HttpRequestMessage;
import com.microsoft.azure.functions.HttpResponseMessage;
import com.microsoft.azure.functions.HttpStatus;
import com.microsoft.azure.functions.annotation.AuthorizationLevel;
import com.microsoft.azure.functions.annotation.FunctionName;
import com.microsoft.azure.functions.annotation.HttpTrigger;
import com.microsoft.azure.functions.kusto.annotation.KustoInput;
import com.microsoft.azure.kusto.common.Product;

import java.util.Optional;

public class GetProductsQueryString {
    @FunctionName("GetProductsQueryString")
    public HttpResponseMessage run(@HttpTrigger(name = "req", methods = {
            HttpMethod.GET}, authLevel = AuthorizationLevel.ANONYMOUS, route = "getproducts") HttpRequestMessage<Optional<String>> request,
            @KustoInput(name = "getjproductsquery", kqlCommand = "declare query_parameters (name:string);GetProductsByName(name)",
                    kqlParameters = "@name={Query.name}", database = "productsdb", connection = "KustoConnectionString") Product[] products) {
        return request.createResponseBuilder(HttpStatus.OK).header("Content-Type", "application/json").body(products)
                .build();
    }
}

GitHub deposunda Azure Veri Gezgini giriş bağlaması için daha fazla örnek mevcuttur.

Bu bölüm aşağıdaki örnekleri içerir:

Örnekler bir veritabanı tablosuna başvurur:

HTTP tetikleyicisi, birden çok satır alma

Aşağıdaki örnekte, bir function.json dosyasındaki Azure Veri Gezgini giriş bağlaması ve sorgudan okuyan ve SONUÇLARı HTTP yanıtında döndüren bir JavaScript işlevi gösterilmektedir.

Aşağıdaki bağlama verileri function.json dosyasındadır:

{
  "bindings": [
    {
      "authLevel": "function",
      "name": "req",
      "direction": "in",
      "type": "httpTrigger",
      "methods": [
        "get"
      ],
      "route": "getproducts/{productId}"
    },
    {
      "name": "$return",
      "type": "http",
      "direction": "out"
    },
    {
      "name": "productget",
      "type": "kusto",
      "database": "productsdb",
      "direction": "in",
      "kqlCommand": "declare query_parameters (productId:long);Products | where ProductID == productId",
      "kqlParameters": "@productId={productId}",
      "connection": "KustoConnectionString"
    }
  ],
  "disabled": false
}

Yapılandırma bölümünde bu özellikler açıklanır.

Aşağıdaki kod parçacığı örnek JavaScript kodudur:

module.exports = async function (context, req, productget) {
    return {
        status: 200,
        body: productget
    };
}

HTTP tetikleyicisi, sorgu dizesinden ada göre satır alma

Aşağıdaki örnekte ürünler tablosu için ürün adına göre bir sorgu gösterilmektedir. İşlev, sorgu parametresinin değerini belirtmek için sorgu dizesi kullanan bir HTTP isteği tarafından tetikleniyor. Bu parametre, belirtilen sorgudaki Product kayıtları filtrelemek için kullanılır.

Aşağıdaki bağlama verileri function.json dosyasındadır:

{
  "bindings": [
    {
      "authLevel": "function",
      "name": "req",
      "direction": "in",
      "type": "httpTrigger",
      "methods": [
        "get"
      ],
      "route": "getproductsfn"
    },
    {
      "name": "$return",
      "type": "http",
      "direction": "out"
    },
    {
      "name": "productfnget",
      "type": "kusto",
      "database": "productsdb",
      "direction": "in",
      "kqlCommand": "declare query_parameters (name:string);GetProductsByName(name)",
      "kqlParameters": "@name={Query.name}",
      "connection": "KustoConnectionString"
    }
  ],
  "disabled": false
}

Yapılandırma bölümünde bu özellikler açıklanır.

Aşağıdaki kod parçacığı örnek JavaScript kodudur:

module.exports = async function (context, req, producproductfngettget) {
    return {
        status: 200,
        body: productfnget
    };
}

GitHub deposunda Azure Veri Gezgini giriş bağlaması için daha fazla örnek mevcuttur.

Bu bölüm aşağıdaki örnekleri içerir:

HTTP tetikleyicisi, birden çok satır alma

Aşağıdaki örnekte, bir function.json dosyasındaki Azure Veri Gezgini giriş bağlaması ve sorgudan okuyan ve SONUÇLARı HTTP yanıtında döndüren bir Python işlevi gösterilmektedir.

Aşağıdaki bağlama verileri function.json dosyasındadır:

{
  "scriptFile": "__init__.py",
  "bindings": [
    {
      "authLevel": "Anonymous",
      "type": "httpTrigger",
      "direction": "in",
      "name": "req",
      "methods": [
        "get"
      ],
      "route": "getproducts/{productId}"
    },
    {
      "type": "http",
      "direction": "out",
      "name": "$return"
    },
    {
      "name": "productsdb",
      "type": "kusto",
      "database": "sdktestsdb",
      "direction": "in",
      "kqlCommand": "declare query_parameters (productId:long);Products | where ProductID == productId",
      "kqlParameters": "@productId={Query.productId}",
      "connection": "KustoConnectionString"
    }
  ]
}

Yapılandırma bölümünde bu özellikler açıklanır.

Aşağıdaki kod parçacığı örnek Python kodudur:

import azure.functions as func
from Common.product import Product


def main(req: func.HttpRequest, products: str) -> func.HttpResponse:
    return func.HttpResponse(
        products,
        status_code=200,
        mimetype="application/json"
    )

HTTP tetikleyicisi, sorgu dizesinden kimliğine göre satır alma

Aşağıdaki örnekte ürünler tablosu için ürün adına göre bir sorgu gösterilmektedir. İşlev, sorgu parametresinin değerini belirtmek için sorgu dizesi kullanan bir HTTP isteği tarafından tetikleniyor. Bu parametre, belirtilen sorgudaki Product kayıtları filtrelemek için kullanılır.

Aşağıdaki bağlama verileri function.json dosyasındadır:

{
  "bindings": [
    {
      "authLevel": "function",
      "name": "req",
      "direction": "in",
      "type": "httpTrigger",
      "methods": [
        "get"
      ],
      "route": "getproductsfn"
    },
    {
      "name": "$return",
      "type": "http",
      "direction": "out"
    },
    {
      "name": "productfnget",
      "type": "kusto",
      "database": "productsdb",
      "direction": "in",
      "kqlCommand": "declare query_parameters (name:string);GetProductsByName(name)",
      "kqlParameters": "@name={Query.name}",
      "connection": "KustoConnectionString"
    }
  ],
  "disabled": false
}

Yapılandırma bölümünde bu özellikler açıklanır.

Aşağıdaki kod parçacığı örnek Python kodudur:

import azure.functions as func

def main(req: func.HttpRequest, products: str) -> func.HttpResponse:
    return func.HttpResponse(
        products,
        status_code=200,
        mimetype="application/json"
    )

Özellikler

C# kitaplığı, aşağıdaki özelliklere sahip olan işlevde Azure Veri Gezgini bağlamalarını bildirmek için KustoAttribute özniteliğini kullanır.

Öznitelik özelliği Açıklama
Veritabanı Gerekli. Sorgunun yürütülmesi gereken veritabanı.
Connection Gerekli. ortam değişkenleri veya işlev uygulaması ayarları aracılığıyla çözümlenen bağlantı dizesi tutan değişkenin adı. değişkenini KustoConnectionStringaramak için varsayılan değerdir. Çalışma zamanında, bu değişken ortama göre aranılır. bağlantı dizesi belgeleri Kusto bağlantı dizesi s adresindedir. Örneğin:"KustoConnectionString": "Data Source=https://your_cluster.kusto.windows.net;Database=your_Database;Fed=True;AppClientId=your_AppId;AppKey=your_AppKey;Authority Id=your_TenantId
KqlCommand Gerekli. KqlQuery Yürütülmesi gereken parametre. KQL sorgusu veya KQL işlev çağrısı olabilir.
KqlParameters isteğe bağlı. için KqlCommandkoşul değişkenleri olarak davranan parametreler. Örneğin, "@name={name},@Id={id}", burada {name} ve {id} çalışma zamanında koşul olarak davranan gerçek değerlerle değiştirilir. Parametre adı ve parametre değeri virgül (,) veya eşittir işareti (=) içeremez.
ManagedServiceIdentity isteğe bağlı. Azure Veri Gezgini bağlanmak için yönetilen kimlik kullanabilirsiniz. Sistem tarafından yönetilen kimlik kullanmak için "system" kullanın. Diğer kimlik adları, kullanıcı tarafından yönetilen kimlik olarak yorumlanır.

Ek Açıklamalar

Java işlevleri çalışma zamanı kitaplığında @KustoInput ek açıklama ()com.microsoft.azure.functions.kusto.annotation.KustoInput kullanılır.

Öğe Açıklama
Adı Gerekli. Sorguyu temsil eden değişkenin adı işlev koduyla sonuç alır.
database Gerekli. Sorgunun yürütülmesi gereken veritabanı.
bağlantı Gerekli. ortam değişkenleri veya işlev uygulaması ayarları aracılığıyla çözümlenen bağlantı dizesi tutan değişkenin adı. değişkenini KustoConnectionStringaramak için varsayılan değerdir. Çalışma zamanında, bu değişken ortama göre aranılır. bağlantı dizesi belgeleri Kusto bağlantı dizesi s adresindedir. Örneğin:"KustoConnectionString": "Data Source=https://your_cluster.kusto.windows.net;Database=your_Database;Fed=True;AppClientId=your_AppId;AppKey=your_AppKey;Authority Id=your_TenantId
kqlCommand Gerekli. KqlQuery Yürütülmesi gereken parametre. KQL sorgusu veya KQL işlev çağrısı olabilir.
kqlParameters isteğe bağlı. için KqlCommandkoşul değişkenleri olarak davranan parametreler. Örneğin, "@name={name},@Id={id}", burada {name} ve {id} çalışma zamanında koşul olarak davranan gerçek değerlerle değiştirilir. Parametre adı ve parametre değeri virgül (,) veya eşittir işareti (=) içeremez.
managedServiceIdentity Yönetilen kimlik, Azure Veri Gezgini bağlanmak için kullanılabilir. Sistem tarafından yönetilen kimlik kullanmak için "system" kullanın. Diğer kimlik adları, kullanıcı tarafından yönetilen kimlik olarak yorumlanır.

Yapılandırma

Aşağıdaki tabloda, function.json dosyasında ayarladığınız bağlama yapılandırma özellikleri açıklanmaktadır.

function.json özelliği Açıklama
Tür Gerekli. olarak ayarlanmalıdır kusto.
yön Gerekli. olarak ayarlanmalıdır in.
Adı Gerekli. Sorguyu temsil eden değişkenin adı işlev koduyla sonuç alır.
database Gerekli. Sorgunun yürütülmesi gereken veritabanı.
bağlantı Gerekli. ortam değişkenleri veya işlev uygulaması ayarları aracılığıyla çözümlenen bağlantı dizesi tutan değişkenin adı. değişkenini KustoConnectionStringaramak için varsayılan değerdir. Çalışma zamanında, bu değişken ortama göre aranılır. bağlantı dizesi belgeleri Kusto bağlantı dizesi s adresindedir. Örneğin:"KustoConnectionString": "Data Source=https://your_cluster.kusto.windows.net;Database=your_Database;Fed=True;AppClientId=your_AppId;AppKey=your_AppKey;Authority Id=your_TenantId
kqlCommand Gerekli. KqlQuery Yürütülmesi gereken parametre. KQL sorgusu veya KQL işlev çağrısı olabilir.
kqlParameters isteğe bağlı. için KqlCommandkoşul değişkenleri olarak davranan parametreler. Örneğin, "@name={name},@Id={id}", burada {name} ve {id} çalışma zamanında koşul olarak davranan gerçek değerlerle değiştirilir. Parametre adı ve parametre değeri virgül (,) veya eşittir işareti (=) içeremez.
managedServiceIdentity Yönetilen kimlik, Azure Veri Gezgini bağlanmak için kullanılabilir. Sistem tarafından yönetilen kimlik kullanmak için "system" kullanın. Diğer kimlik adları, kullanıcı tarafından yönetilen kimlik olarak yorumlanır.

Yerel olarak geliştirme yaparken uygulama ayarlarınızı koleksiyondaki local.settings.json dosyasına Values ekleyin.

Kullanım

Özniteliğin oluşturucusunun veritabanı, öznitelikler KQLCommand ve KQLParameters bağlantı ayarı adı alır. KQL komutu bir KQL deyimi veya KQL işlevi olabilir. bağlantı dizesi ayarı adı Kusto bağlantı dizesi içeren uygulama ayarına (local.settings.jsonyerel geliştirme için) karşılık gelir. Örneğin: "KustoConnectionString": "Data Source=https://your_cluster.kusto.windows.net;Database=your_Database;Fed=True;AppClientId=your_AppId;AppKey=your_AppKey;Authority Id=your_TenantId. Giriş bağlaması tarafından yürütülen sorgular parametreleştirilir. KQL parametrelerinde sağlanan değerler çalışma zamanında kullanılır.

Sonraki adımlar

Verileri tabloya kaydetme (çıkış bağlaması)