Vstupní vazby Azure Data Exploreru pro Azure Functions (Preview)
Vstupní vazba Azure Data Exploreru načte data z databáze.
Příklady
Funkci jazyka C# je možné vytvořit pomocí jednoho z následujících režimů jazyka C#:
- Izolovaný model pracovního procesu: Kompilovaná funkce jazyka C#, která běží v pracovním procesu, který je izolovaný od modulu runtime. Izolovaný pracovní proces je nutný pro podporu funkcí C# spuštěných na LTS a jiných verzích než LTS .NET a rozhraní .NET Framework.
- Model v procesu: Zkompilovaná funkce jazyka C#, která běží ve stejném procesu jako modul runtime služby Functions.
- Skript jazyka C#: Používá se především při vytváření funkcí jazyka C# na webu Azure Portal.
Důležité
Podpora modelu v procesu skončí 10. listopadu 2026. Důrazně doporučujeme migrovat aplikace do izolovaného modelu pracovního procesu pro plnou podporu.
Další ukázky vstupní vazby Azure Data Exploreru (mimo proces) jsou k dispozici v úložišti GitHub.
Tato část obsahuje následující příklady:
- Trigger HTTP, získání řádku podle ID z řetězce dotazu
- Trigger HTTP, získání více řádků ze směrovacích dat
Příklady odkazují na Product
třídu a tabulku Products, z nichž obě jsou definovány v předchozích částech.
Trigger HTTP, získání řádku podle ID z řetězce dotazu
Následující příklad ukazuje funkci jazyka C#, která načte jeden záznam. Funkce se aktivuje požadavkem HTTP, který k zadání ID používá řetězec dotazu. Toto ID se používá k načtení záznamu Product
se zadaným dotazem.
Poznámka:
V parametru řetězce dotazu HTTP se rozlišují malá a velká písmena.
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;
}
}
}
Trigger HTTP, získání více řádků z parametru trasy
Následující příklad ukazuje funkci jazyka C#, která načte záznamy vrácené dotazem (v tomto případě na základě názvu produktu). Funkce se aktivuje požadavkem HTTP, který používá směrovací data k určení hodnoty parametru dotazu. Tento parametr slouží k filtrování Product
záznamů v zadaném dotazu.
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;
}
}
}
Další ukázky vstupní vazby Azure Data Exploreru v Javě jsou k dispozici v úložišti GitHub.
Tato část obsahuje následující příklady:
Příklady odkazují na Product
třídu (v samostatném souboru Product.java
) a odpovídající tabulku databáze.
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;
}
}
Trigger HTTP, získání více řádků
Příklad používá parametr trasy k určení názvu ID produktů. Všechny odpovídající produkty se načtou z tabulky produktů.
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();
}
}
Trigger HTTP, získání řádku podle ID z řetězce dotazu
Následující příklad ukazuje dotaz na tabulku produktů podle názvu produktu. Funkce se aktivuje požadavkem HTTP, který k zadání hodnoty parametru dotazu používá řetězec dotazu. Tento parametr slouží k filtrování Product
záznamů v zadaném dotazu.
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();
}
}
Další ukázky vstupní vazby Azure Data Exploreru jsou k dispozici v úložišti GitHub.
Tato část obsahuje následující příklady:
Příklady odkazují na tabulku databáze:
Trigger HTTP, získání více řádků
Následující příklad ukazuje vstupní vazbu Azure Data Exploreru v souboru function.json a funkci JavaScriptu, která čte z dotazu a vrací výsledky v odpovědi HTTP.
Následující data vazby jsou v souboru function.json :
{
"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
}
Oddíl konfigurace vysvětluje tyto vlastnosti.
Následující fragment kódu je ukázkový javascriptový kód:
module.exports = async function (context, req, productget) {
return {
status: 200,
body: productget
};
}
Trigger HTTP, získání řádku podle názvu z řetězce dotazu
Následující příklad ukazuje dotaz na tabulku produktů podle názvu produktu. Funkce se aktivuje požadavkem HTTP, který k zadání hodnoty parametru dotazu používá řetězec dotazu. Tento parametr slouží k filtrování Product
záznamů v zadaném dotazu.
Následující data vazby jsou v souboru function.json :
{
"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
}
Oddíl konfigurace vysvětluje tyto vlastnosti.
Následující fragment kódu je ukázkový javascriptový kód:
module.exports = async function (context, req, producproductfngettget) {
return {
status: 200,
body: productfnget
};
}
Další ukázky vstupní vazby Azure Data Exploreru jsou k dispozici v úložišti GitHub.
Tato část obsahuje následující příklady:
Trigger HTTP, získání více řádků
Následující příklad ukazuje vstupní vazbu Azure Data Exploreru v souboru function.json a funkci Pythonu, která čte z dotazu a vrací výsledky v odpovědi HTTP.
Následující data vazby jsou v souboru function.json :
{
"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"
}
]
}
Oddíl konfigurace vysvětluje tyto vlastnosti.
Následující fragment kódu je ukázkový kód Pythonu:
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"
)
Trigger HTTP, získání řádku podle ID z řetězce dotazu
Následující příklad ukazuje dotaz na tabulku produktů podle názvu produktu. Funkce se aktivuje požadavkem HTTP, který k zadání hodnoty parametru dotazu používá řetězec dotazu. Tento parametr slouží k filtrování Product
záznamů v zadaném dotazu.
Následující data vazby jsou v souboru function.json :
{
"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
}
Oddíl konfigurace vysvětluje tyto vlastnosti.
Následující fragment kódu je ukázkový kód Pythonu:
import azure.functions as func
def main(req: func.HttpRequest, products: str) -> func.HttpResponse:
return func.HttpResponse(
products,
status_code=200,
mimetype="application/json"
)
Atributy
Knihovna C# pomocí atributu KustoAttribute deklaruje vazby Azure Data Exploreru pro funkci, která má následující vlastnosti.
Vlastnost atributu | Popis |
---|---|
Databáze | Povinný: Databáze, ve které se má dotaz spustit. |
Connection | Povinný: Název proměnné, která obsahuje připojovací řetězec, překládá se prostřednictvím proměnných prostředí nebo prostřednictvím nastavení aplikace funkcí. Ve výchozím nastavení se vyhledá proměnná KustoConnectionString . Za běhu se tato proměnná vyhledá v prostředí. Dokumentace k připojovací řetězec je na připojovací řetězec Kusto. Příklad:"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 | Povinný: Parametr KqlQuery , který se musí spustit. Může to být dotaz KQL nebo volání funkce KQL. |
KqlParameters | Nepovinné. Parametry, které fungují jako predikátové proměnné pro KqlCommand . Například "@name={name}"@Id={id}, kde {name} a {id} se za běhu nahradí skutečnými hodnotami, které fungují jako predikáty. Název parametru a hodnota parametru nemohou obsahovat čárku (, ) ani rovnítko (= ). |
ManagedServiceIdentity | Nepovinné. Spravovanou identitu můžete použít k připojení k Azure Data Exploreru. Pokud chcete použít spravovanou identitu systému, použijte "systém". Všechny ostatní názvy identit se interpretují jako identita spravovaná uživatelem. |
Poznámky
Knihovna modulu runtime funkcí Java používá @KustoInput
anotace (com.microsoft.azure.functions.kusto.annotation.KustoInput
).
Element (Prvek) | Popis |
---|---|
name | Požadováno. Název proměnné, která představuje výsledek dotazu v kódu funkce. |
database | Povinný: Databáze, ve které se má dotaz spustit. |
připojení | Povinný: Název proměnné, která obsahuje připojovací řetězec, překládá se prostřednictvím proměnných prostředí nebo prostřednictvím nastavení aplikace funkcí. Ve výchozím nastavení se vyhledá proměnná KustoConnectionString . Za běhu se tato proměnná vyhledá v prostředí. Dokumentace k připojovací řetězec je na připojovací řetězec Kusto. Příklad:"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 | Povinný: Parametr KqlQuery , který se musí spustit. Může to být dotaz KQL nebo volání funkce KQL. |
kqlParameters | Nepovinné. Parametry, které fungují jako predikátové proměnné pro KqlCommand . Například "@name={name}"@Id={id}, kde {name} a {id} se za běhu nahradí skutečnými hodnotami, které fungují jako predikáty. Název parametru a hodnota parametru nemohou obsahovat čárku (, ) ani rovnítko (= ). |
managedServiceIdentity | Spravovanou identitu je možné použít k připojení k Azure Data Exploreru. Pokud chcete použít spravovanou identitu systému, použijte "systém". Všechny ostatní názvy identit se interpretují jako identita spravovaná uživatelem. |
Konfigurace
Následující tabulka vysvětluje vlastnosti konfigurace vazby, které jste nastavili v souboru function.json .
vlastnost function.json | Popis |
---|---|
type | Povinný: Musí být nastavena na kusto hodnotu . |
směr | Povinný: Musí být nastavena na in hodnotu . |
name | Požadováno. Název proměnné, která představuje výsledek dotazu v kódu funkce. |
database | Povinný: Databáze, ve které se má dotaz spustit. |
připojení | Povinný: Název proměnné, která obsahuje připojovací řetězec, překládá se prostřednictvím proměnných prostředí nebo prostřednictvím nastavení aplikace funkcí. Ve výchozím nastavení se vyhledá proměnná KustoConnectionString . Za běhu se tato proměnná vyhledá v prostředí. Dokumentace k připojovací řetězec je na připojovací řetězec Kusto. Příklad:"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 | Povinný: Parametr KqlQuery , který se musí spustit. Může to být dotaz KQL nebo volání funkce KQL. |
kqlParameters | Nepovinné. Parametry, které fungují jako predikátové proměnné pro KqlCommand . Například "@name={name}"@Id={id}, kde {name} a {id} se za běhu nahradí skutečnými hodnotami, které fungují jako predikáty. Název parametru a hodnota parametru nemohou obsahovat čárku (, ) ani rovnítko (= ). |
managedServiceIdentity | Spravovanou identitu je možné použít k připojení k Azure Data Exploreru. Pokud chcete použít spravovanou identitu systému, použijte "systém". Všechny ostatní názvy identit se interpretují jako identita spravovaná uživatelem. |
Při místním vývoji přidejte nastavení aplikace do souboru local.settings.json v kolekci Values
.
Využití
Konstruktor atributu přebírá databázi a atributy KQLCommand
a KQLParameters
název nastavení připojení. Příkazem KQL může být příkaz KQL nebo funkce KQL. Název nastavení připojovací řetězec odpovídá nastavení aplikace (pro local.settings.json
místní vývoj), které obsahuje připojovací řetězec Kusto. Například: "KustoConnectionString": "Data Source=https://your_cluster.kusto.windows.net;Database=your_Database;Fed=True;AppClientId=your_AppId;AppKey=your_AppKey;Authority Id=your_TenantId
. Dotazy spouštěné vstupní vazbou jsou parametrizovány. Hodnoty zadané v parametrech KQL se používají za běhu.