Azure Data Explorer bemeneti kötések az Azure Functionshez (előzetes verzió)
Az Azure Data Explorer bemeneti kötése adatokat kér le egy adatbázisból.
Példák
A C#-függvények a következő C#-módok egyikével hozhatók létre:
- Izolált feldolgozómodell: Lefordított C# függvény, amely a futtatókörnyezettől elkülönített feldolgozói folyamatban fut. Izolált feldolgozói folyamat szükséges az LTS- és nem LTS-verziókon futó C#-függvények támogatásához .NET és .NET-keretrendszer.
- Folyamaton belüli modell: Lefordított C# függvény, amely ugyanabban a folyamatban fut, mint a Functions-futtatókörnyezet.
- C#-szkript: Elsősorban C#-függvények Azure Portalon való létrehozásakor használatos.
Fontos
A folyamaton belüli modell támogatása 2026. november 10-én megszűnik. Erősen javasoljuk, hogy az alkalmazásokat az elkülönített feldolgozói modellbe migrálja a teljes támogatás érdekében.
Az Azure Data Explorer bemeneti kötéséhez (a folyamaton kívül) további minták érhetők el a GitHub-adattárban.
Ez a szakasz a következő példákat tartalmazza:
- HTTP-eseményindító, sor lekérése azonosító alapján a lekérdezési sztringből
- HTTP-eseményindító, több sor lekérése az útvonaladatokból
A példák egy Product
osztályra és a Termékek táblára vonatkoznak, amelyek mindegyike az előző szakaszokban van definiálva.
HTTP-eseményindító, sor lekérése azonosító alapján a lekérdezési sztringből
Az alábbi példa egy C# függvényt mutat be, amely egyetlen rekordot kér le. A függvényt egy HTTP-kérés aktiválja, amely egy lekérdezési sztringet használ az azonosító megadásához. Ez az azonosító egy rekord lekérésére Product
szolgál a megadott lekérdezéssel.
Feljegyzés
A HTTP-lekérdezési sztring paraméter megkülönbözteti a kis- és nagybetűk értékét.
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-eseményindító, több sor lekérése az útvonalparaméterből
Az alábbi példa egy C# függvényt mutat be, amely lekéri a lekérdezés által visszaadott rekordokat (ebben az esetben a termék neve alapján). A függvényt egy HTTP-kérés aktiválja, amely útvonaladatokat használ egy lekérdezési paraméter értékének megadásához. Ez a paraméter a megadott lekérdezés rekordjainak szűrésére Product
szolgál.
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;
}
}
}
A GitHub-adattárban további minták érhetők el a Java Azure Data Explorer bemeneti kötéséhez.
Ez a szakasz a következő példákat tartalmazza:
- HTTP-eseményindító, több sor lekérése
- HTTP-eseményindító, sor lekérése azonosító alapján a lekérdezési sztringből
A példák egy Product
osztályra (egy külön fájlban Product.java
) és egy megfelelő adatbázistáblára vonatkoznak.
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-eseményindító, több sor lekérése
A példa egy útvonalparamétert használ a termékek azonosítójának nevének megadásához. A rendszer az összes egyező terméket lekéri a termékek táblából.
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-eseményindító, sor lekérése azonosító alapján a lekérdezési sztringből
Az alábbi példa a termékek táblájának terméknév szerinti lekérdezését mutatja be. A függvényt egy OLYAN HTTP-kérés aktiválja, amely egy lekérdezési sztringet használ a lekérdezési paraméter értékének megadásához. Ez a paraméter a megadott lekérdezés rekordjainak szűrésére Product
szolgál.
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();
}
}
Az Azure Data Explorer bemeneti kötéséhez további minták érhetők el a GitHub-adattárban.
Ez a szakasz a következő példákat tartalmazza:
- HTTP-eseményindító, több sor lekérése
- HTTP-eseményindító, sor lekérése azonosító alapján a lekérdezési sztringből
A példák egy adatbázistáblára vonatkoznak:
HTTP-eseményindító, több sor lekérése
Az alábbi példa egy Azure Data Explorer bemeneti kötést mutat be egy function.json fájlban, valamint egy JavaScript-függvényt, amely egy lekérdezésből olvas, és az eredményeket a HTTP-válaszban adja vissza.
A következő kötési adatok a function.json fájlban találhatóak:
{
"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
}
A konfigurációs szakasz ezeket a tulajdonságokat ismerteti.
A következő kódrészlet javaScript-mintakód:
module.exports = async function (context, req, productget) {
return {
status: 200,
body: productget
};
}
HTTP-eseményindító, sor lekérése név szerint a lekérdezési sztringből
Az alábbi példa a termékek táblájának terméknév szerinti lekérdezését mutatja be. A függvényt egy OLYAN HTTP-kérés aktiválja, amely egy lekérdezési sztringet használ a lekérdezési paraméter értékének megadásához. Ez a paraméter a megadott lekérdezés rekordjainak szűrésére Product
szolgál.
A következő kötési adatok a function.json fájlban találhatóak:
{
"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
}
A konfigurációs szakasz ezeket a tulajdonságokat ismerteti.
A következő kódrészlet javaScript-mintakód:
module.exports = async function (context, req, producproductfngettget) {
return {
status: 200,
body: productfnget
};
}
Az Azure Data Explorer bemeneti kötéséhez további minták érhetők el a GitHub-adattárban.
Ez a szakasz a következő példákat tartalmazza:
- HTTP-eseményindító, több sor lekérése
- HTTP-eseményindító, rekordok lekérése KQL-függvény használatával
HTTP-eseményindító, több sor lekérése
Az alábbi példa egy Azure Data Explorer bemeneti kötést mutat be egy function.json fájlban, valamint egy Python-függvényt, amely egy lekérdezésből olvas, és az eredményeket a HTTP-válaszban adja vissza.
A következő kötési adatok a function.json fájlban találhatóak:
{
"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"
}
]
}
A konfigurációs szakasz ezeket a tulajdonságokat ismerteti.
A következő kódrészlet a Python-mintakód:
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-eseményindító, sor lekérése azonosító alapján a lekérdezési sztringből
Az alábbi példa a termékek táblájának terméknév szerinti lekérdezését mutatja be. A függvényt egy OLYAN HTTP-kérés aktiválja, amely egy lekérdezési sztringet használ a lekérdezési paraméter értékének megadásához. Ez a paraméter a megadott lekérdezés rekordjainak szűrésére Product
szolgál.
A következő kötési adatok a function.json fájlban találhatóak:
{
"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
}
A konfigurációs szakasz ezeket a tulajdonságokat ismerteti.
A következő kódrészlet a Python-mintakód:
import azure.functions as func
def main(req: func.HttpRequest, products: str) -> func.HttpResponse:
return func.HttpResponse(
products,
status_code=200,
mimetype="application/json"
)
Attribútumok
A C#-kódtár a KustoAttribute attribútummal deklarálja az Azure Data Explorer-kötéseket a függvényen, amely a következő tulajdonságokkal rendelkezik.
Attribútumtulajdonság | Leírás |
---|---|
Adatbázis | Szükséges. Az adatbázis, amelyen a lekérdezést végre kell hajtani. |
Connection | Szükséges. A kapcsolati sztring tartalmazó változó neve környezeti változókkal vagy függvényalkalmazás-beállításokkal oldható fel. Alapértelmezés szerint a változót KustoConnectionString kell megkeresni. Futásidőben a rendszer megkeresi ezt a változót a környezettel szemben. A kapcsolati sztring dokumentációja a Kusto kapcsolati sztring található. Például:"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 | Szükséges. A KqlQuery végrehajtandó paraméter. Lehet KQL-lekérdezés vagy KQL-függvényhívás. |
KqlParameters | Opcionális. A predikátum változójaként működő paraméterek a következőhöz KqlCommand : . Például a "@name={name}@Id={id}", ahol a (z) {name} és a {id} futásidőben a tényleges értékek predikátumként működnek. A paraméter neve és a paraméter értéke nem tartalmazhat vesszőt (, ) vagy egyenlőségjelet (= ). |
ManagedServiceIdentity | Opcionális. Felügyelt identitással csatlakozhat az Azure Data Explorerhez. A rendszer által felügyelt identitás használatához használja a "system" kifejezést. A rendszer minden más identitásnevet felhasználó által felügyelt identitásként értelmez. |
Jegyzetek
A Java-függvények futtatókörnyezeti kódtára a @KustoInput
széljegyzetet (com.microsoft.azure.functions.kusto.annotation.KustoInput
) használja.
Elem | Leírás |
---|---|
név | Szükséges. A lekérdezést jelképező változó neve függvénykódot eredményez. |
adatbázis | Szükséges. Az adatbázis, amelyen a lekérdezést végre kell hajtani. |
kapcsolat | Szükséges. A kapcsolati sztring tartalmazó változó neve környezeti változókkal vagy függvényalkalmazás-beállításokkal oldható fel. Alapértelmezés szerint a változót KustoConnectionString kell megkeresni. Futásidőben a rendszer megkeresi ezt a változót a környezettel szemben. A kapcsolati sztring dokumentációja a Kusto kapcsolati sztring található. Például:"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 | Szükséges. A KqlQuery végrehajtandó paraméter. Lehet KQL-lekérdezés vagy KQL-függvényhívás. |
kqlParameters | Opcionális. A predikátum változójaként működő paraméterek a következőhöz KqlCommand : . Például a "@name={name}@Id={id}", ahol a (z) {name} és a {id} futásidőben a tényleges értékek predikátumként működnek. A paraméter neve és a paraméter értéke nem tartalmazhat vesszőt (, ) vagy egyenlőségjelet (= ). |
managedServiceIdentity | Felügyelt identitással csatlakozhat az Azure Data Explorerhez. A rendszer által felügyelt identitás használatához használja a "system" kifejezést. A rendszer minden más identitásnevet felhasználó által felügyelt identitásként értelmez. |
Konfiguráció
Az alábbi táblázat a function.json fájlban beállított kötéskonfigurációs tulajdonságokat ismerteti.
function.json tulajdonság | Leírás |
---|---|
típus | Szükséges. A beállításnak a kusto következőnek kell lennie: . |
irány | Szükséges. A beállításnak a in következőnek kell lennie: . |
név | Szükséges. A lekérdezést jelképező változó neve függvénykódot eredményez. |
adatbázis | Szükséges. Az adatbázis, amelyen a lekérdezést végre kell hajtani. |
kapcsolat | Szükséges. A kapcsolati sztring tartalmazó változó neve környezeti változókkal vagy függvényalkalmazás-beállításokkal oldható fel. Alapértelmezés szerint a változót KustoConnectionString kell megkeresni. Futásidőben a rendszer megkeresi ezt a változót a környezettel szemben. A kapcsolati sztring dokumentációja a Kusto kapcsolati sztring található. Például:"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 | Szükséges. A KqlQuery végrehajtandó paraméter. Lehet KQL-lekérdezés vagy KQL-függvényhívás. |
kqlParameters | Opcionális. A predikátum változójaként működő paraméterek a következőhöz KqlCommand : . Például a "@name={name}@Id={id}", ahol a (z) {name} és a {id} futásidőben a tényleges értékek predikátumként működnek. A paraméter neve és a paraméter értéke nem tartalmazhat vesszőt (, ) vagy egyenlőségjelet (= ). |
managedServiceIdentity | Felügyelt identitással csatlakozhat az Azure Data Explorerhez. A rendszer által felügyelt identitás használatához használja a "system" kifejezést. A rendszer minden más identitásnevet felhasználó által felügyelt identitásként értelmez. |
Helyi fejlesztéskor adja hozzá az alkalmazásbeállításokat a gyűjtemény local.settings.json fájljáhozValues
.
Használat
Az attribútum konstruktora az adatbázist, az attribútumokat KQLCommand
és KQLParameters
a kapcsolatbeállítás nevét veszi át. A KQL-parancs lehet KQL-utasítás vagy KQL-függvény. A kapcsolati sztring beállítás neve megfelel a Kusto kapcsolati sztring tartalmazó alkalmazásbeállításnak (local.settings.json
helyi fejlesztés esetén). Például: "KustoConnectionString": "Data Source=https://your_cluster.kusto.windows.net;Database=your_Database;Fed=True;AppClientId=your_AppId;AppKey=your_AppKey;Authority Id=your_TenantId
A bemeneti kötés által végrehajtott lekérdezések paraméterezve vannak. A KQL-paraméterekben megadott értékek futásidőben lesznek használva.