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:
- HTTP tetikleyicisi, sorgu dizesinden kimliğine göre satır alma
- HTTP tetikleyicisi, yol verilerinden birden çok satır alma
Ö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:
- HTTP tetikleyicisi, birden çok satır alma
- HTTP tetikleyicisi, sorgu dizesinden kimliğine göre satır alma
Ö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:
- HTTP tetikleyicisi, birden çok satır alma
- HTTP tetikleyicisi, sorgu dizesinden kimliğine göre satır alma
Ö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.
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.
Yapılandırma
Aşağıdaki tabloda, function.json dosyasında ayarladığınız bağlama yapılandırma özellikleri açıklanmaktadı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.json
yerel 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.