Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Veri Gezgini giriş bağlaması veritabanından veri alır.
Örnekler
Aşağıdaki C# modlarından birini kullanarak bir C# işlevi oluşturabilirsiniz:
- Yalıtılmış çalışan modeli: Çalışma zamanından yalıtılmış bir çalışan işleminde çalışan derlenmiş C# işlevi. .NET ve .NET Framework için uzun vadeli destek (LTS) ve LTS olmayan sürümlerde çalışan C# işlevlerini desteklemek için yalıtılmış bir çalışan işlemi gereklidir.
- İşlem içi model: Azure İşlevleri ç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ınaValues 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çerenlocal.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.
Önemli
En iyi güvenlik için işlev uygulamanızın anahtarları içeren bir bağlantı dizesi kullanmak yerine Azure Veri Gezgini'ne bağlanırken yönetilen kimlikleri kullanması gerekir. Daha fazla bilgi için bkz. Kusto bağlantı dizesi s. Kimlik tabanlı mananaged bağlantıları için bağlama tanımında özelliğini ayarlamanız managedServiceIdentity gerekir.