Eingehende Azure Data Explorer-Bindungen für Azure Functions (Vorschau) (2023)

  • Artikel

Die Azure Data Explorer-Eingabebindung ruft Daten aus einer Datenbank ab.

Beispiele

Eine C#-Funktion kann mit einer der folgenden C#-Funktionen erstellt werden:

  • In-Process-Klassenbibliothek: Kompilierte C#-Funktion, die im selben Prozess wie die Functions-Laufzeit ausgeführt wird.
  • Klassenbibliothek in einem isolierten Arbeitsprozess:kompilierte C#-Funktion, die in einem von der Laufzeit isolierten Arbeitsprozess ausgeführt wird. Zur Unterstützung von C#-Funktionen, die auf Nicht-LTS-Versionen von .NET und .NET Framework ausgeführt werden, ist ein isolierter Arbeitsprozess erforderlich.
  • C#-Skript: Wird hauptsächlich beim Erstellen von C#-Funktionen im Azure-Portal verwendet.
  • Im Gange
  • isolierter Prozess

Weitere Beispiele für die eingehende Azure Data Explorer-Verbindung finden Sie unterGitHub-RepositoryNamezugänglich.

Dieser Abschnitt enthält die folgenden Beispiele:

  • HTTP-Trigger, Zeile nach Abfragezeichenfolgen-ID abrufen
  • Aktivieren Sie HTTP, um mehrere Routendatenzeilen abzurufen

Die Beispiele beziehen sich auf aProdukteKlasse und eine entsprechende Datenbanktabelle:

öffentliche Klasse Product{ [JsonProperty(nameof(ProductID))] public long ProductID { get; Serie; } [JsonProperty(nameof(Name))] öffentliche Zeichenfolge Name { get; Serie; } [JsonProperty(nameof(Cost))] public double Cost { get; Serie; }}
.create-merge table Products (ProductID:long, Name:string, Cost:double)

HTTP-Trigger, Zeile nach Abfragezeichenfolgen-ID abrufen

Das folgende Beispiel zeigt aC#-Funktion, wodurch eine Liste von Produkten abgerufen wird, denen eine Produkt-ID zugewiesen wurde. Die Funktion wird durch eine HTTP-Anfrage aufgerufen, die einen Parameter für den Bezeichner annimmt. Dieser Identifikator wird zur Identifizierung eines verwendetProdukte- Rufen Sie die Liste ab, die der Abfrage entspricht.

Wahrnehmen

Beim Wert des HTTP-Abfragezeichenfolgenparameters wird die Groß-/Kleinschreibung beachtet.

Verwenden Sie System.Collections.Generic; verwendet System.Threading.Tasks; verwendet Microsoft.AspNetCore.Http; verwendet Microsoft.AspNetCore.Mvc; verwendet Microsoft.Azure.WebJobs.Extensions.Http; Verwenden Sie Beispiele von Microsoft.Azure.WebJobs.Ktotension.s .Common; verwendet Microsoft.Azure.WebJobs.Kusto; Namespace Microsoft.Azure.WebJobs.Extensions.Kusto.Samples.InputBindingSamples{ öffentliche statische Klasse GetProducts { [FunctionName("GetProductsList")] öffentliches statisches ZeichenProdukte) { IAsyncEnumeratorenumerator = products.EnumeratorAsy ; var productList = neue Liste(); while (espera enumerator.MoveNextAsync()) { productList.Add(enumerator.Current); } wait enumerator.DisposeAsync(); Zurück zum Anfang OkObjectResult(productList); } }}

HTTP-Trigger, mehrere Pfadparameterzeichenfolgen abrufen

Das folgende Beispiel zeigt ac#-Funktion,Dadurch werden die von der Abfrage zurückgegebenen Dokumente abgerufen. Die Funktion wird durch eine HTTP-Anfrage aufgerufen, die Pfaddaten verwendet, um den Wert eines KQL-Funktionsparameters anzugeben. GetProductsByName ist eine einfache Funktion, die eine Reihe von Produkten abruft, die einem Produktnamen entsprechen.

.create-Funktion ifnotexists GetProductsByName(name:string){ Produkte | onde Nome == nome}
Verwenden Sie System.Collections.Generic, verwenden Sie Microsoft.AspNetCore.Http, verwenden Sie Microsoft.AspNetCore.Mvc, verwenden Sie Microsoft.Azure.WebJobs, verwenden Sie Microsoft.Azure.WebJobs.Extensions.Http, verwenden Sie den Namespace Microsoft.Azure.WebJobs.Kustoten. Samples.InputBindingSamples{ öffentliche statische Klasse GetProductsFunction { [FunctionName("GetProductsFunction")] öffentliches statisches IActionResult Run( [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "getproductsfn/{name}Result")] HttpDatabase:" productsdb" , KqlCommand = "declare query_parameters (name:string);GetProductsByName(name)" , KqlParameters = "@name={name}", Connection = "KustoConnectionString")] IEnumerableProdukte) { return OkObjectResult(products); } }}

Weitere Beispiele für den Java Azure Data Explorer Input Connector finden Sie unterGitHub-RepositoryNamezugänglich.

Dieser Abschnitt enthält die folgenden Beispiele:

  • HTTP-Trigger, mehrzeiliger Abruf
  • HTTP-Trigger, Zeile nach Abfragezeichenfolgen-ID abrufen

Die Beispiele beziehen sich auf aProdukteKlasse (in einer separaten DateiProdukt.java) und eine entsprechende Datenbanktabelle:

package com.microsoft.azure.kusto.common;import com.fasterxml.jackson.annotation.JsonProperty;public class Product { @JsonProperty("ProductID") public long ProductID; @JsonProperty("Nome") öffentlicher String-Name; @JsonProperty("Benutzer") wird doppelt öffentlich angezeigt. public Product() { } public Product(long ProductID, String name, double Cost) { this.ProductID = ProductID; this.Name = nome; this.Cost = Custo; }}

HTTP-Trigger, mehrzeiliger Abruf

Im Beispiel wird ein Pfadparameter verwendet, um den Produkt-ID-Namen anzugeben. Alle passenden Produkte werden aus der Produkttabelle abgerufen.

com.microsoft.azure.kusto.inputbindings;import com.microsoft.azure.functions.HttpMethod; com.microsoft.azure.functions.HttpRequestMessage; com.microsoft.azure.functions.HttpResponse . .functions.HttpStatus;import com.microsoft.azure.functions.annotation.AuthorizationLevel;nicht com.microsoft.azure.functions.annotation.FunctionName;nicht com.microsoft.azure.functions.annotation.Httpim .functions.kusto.annotation. KustoInput;import com.microsoft.azure.kusto.common.Product;import java.util.Optional;Funktion GetProducts { @FunctionName("GetProducts") für HttpResponseMessage "rugger( @Http απ (productId:long);Products | where ProductID == productId", kqlParameters = "@productId={productId}", Database = "productsdb", Connection = "KustoConnectionString") Type", "aplicativo/json").body(produtos) .build(); }}

HTTP-Trigger, Zeile nach Abfragezeichenfolgen-ID abrufen

Das folgende Beispiel zeigt eine Abfrage aus der Tabelle „Products“ nach dem Produktnamen. Die Funktion wird durch eine HTTP-Anfrage aufgerufen, die eine Abfragezeichenfolge verwendet, um den Wert eines Abfrageparameters anzugeben. Dieser Parameter wird zum Definieren von Datensätzen verwendetProdukteum die angegebene Abfrage zu filtern.

com.microsoft.azure.kusto.inputbindings;import com.microsoft.azure.functions.HttpMethod; com.microsoft.azure.functions.HttpRequestMessage; com.microsoft.azure.functions.HttpResponse . .functions.HttpStatus;import com.microsoft.azure.functions.annotation.AuthorizationLevel;nicht com.microsoft.azure.functions.annotation.FunctionName;nicht com.microsoft.azure.functions.annotation.Httpim .functions.kusto.annotation. KustoInput;import com.microsoft.azure.kusto.common.Product;import java.util.Optional;GetProductsQueryString { @FunctionName("GetProductsQueryString") für Htttpname "Run@gger" und );GetProductsByName(name)", kqlP ara metros = "@name={Query.name}", Datenbank = "productsdb", Verbindung = "KustoConnectionString") Προϊόν[] προϊόντα) { return request.createResponseBuilder(HttpStatus.OK).header ("Content-Type", " application /json").body(produtos) .build(); }}

Weitere Beispiele für die eingehende Azure Data Explorer-Verbindung finden Sie unterGitHub-RepositoryNamezugänglich.

Dieser Abschnitt enthält die folgenden Beispiele:

  • HTTP-Trigger, mehrzeiliger Abruf
  • HTTP-Trigger, Zeile nach Abfragezeichenfolgen-ID abrufen

Die Beispiele beziehen sich auf eine Datenbanktabelle:

HTTP-Trigger, mehrzeiliger Abruf

Das folgende Beispiel zeigt eine eingehende Azure Data Explorer-Verbindung in einer function.json-Datei und eine JavaScript-Funktion, die eine Abfrage liest und die Ergebnisse in der HTTP-Antwort zurückgibt.

Das folgende Beispiel bindet Daten an die Datei 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", "βάση δεδομένων": "productsdb", "direction": "in", "kqlCommand": "declare query_parameters (productId:long);Products | where ProductID == productId", "kqlParameters": " @ productId={productId}", "connection": "KustoConnectionString" } ], "disabled": false}

Weitere Informationen zu diesen Eigenschaften finden Sie im AbschnittEinstellungen.

Hier ist ein JavaScript-Codebeispiel:

module.exports = asynchrone Funktion (Kontext, Anforderung, Produktget) { return { Status: 200, Körper: Produktget };}

HTTP-Trigger, benannte Zeile aus der Abfragezeichenfolge abrufen

Das folgende Beispiel zeigt eine Abfrage aus der Tabelle „Products“ nach dem Produktnamen. Die Funktion wird durch eine HTTP-Anfrage aufgerufen, die eine Abfragezeichenfolge verwendet, um den Wert eines Abfrageparameters anzugeben. Dieser Parameter wird zum Definieren von Datensätzen verwendetProdukteum die angegebene Abfrage zu filtern.

Das folgende Beispiel bindet Daten an die Datei 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 ", "Produktdatenbank": "productsdb", "direction": "in", "kqlCommand": "declare query_parameters (name:string);GetProductsByName(name)", "kqlParameters": "@name={Query.name } ", "connection": "KustoConnectionString" } ], "disabled": false}

Weitere Informationen zu diesen Eigenschaften finden Sie im AbschnittEinstellungen.

Hier ist ein JavaScript-Codebeispiel:

module.exports = asynchrone Funktion (Kontext, Anforderung, Produktfngetget) { return { Status: 200, Körper: Produktfnget };}

Weitere Beispiele für die eingehende Azure Data Explorer-Verbindung finden Sie unterGitHub-RepositoryNamezugänglich.

Dieser Abschnitt enthält die folgenden Beispiele:

  • HTTP-Trigger, mehrzeiliger Abruf
  • Starten Sie HTTP und rufen Sie Datensätze mithilfe einer KQL-Funktion ab

HTTP-Trigger, mehrzeiliger Abruf

Das folgende Beispiel zeigt eine eingehende Verbindung von Azure Data Explorer in einer function.json-Datei und einer Python-Funktion, die eine Abfrage liest und die Ergebnisse in der HTTP-Antwort zurückgibt.

Das folgende Beispiel bindet Daten an die Datei function.json:

{ "scriptFile": "__init__.py", "bindings": [ { "authLevel": "Anonymous", "type": "httpTrigger", "direction": "in", "name": "req", " μέθοδοι": [ "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" } ]}

Weitere Informationen zu diesen Eigenschaften finden Sie im AbschnittEinstellungen.

Hier ist ein Python-Codebeispiel:

import azure.functions as funcfrom Common.product import Productdef main(req: func.HttpRequest, products: str) -> func.HttpResponse: return func.HttpResponse(products, status_code=200, mimetype="application/json" )

HTTP-Trigger, Zeile nach Abfragezeichenfolgen-ID abrufen

Das folgende Beispiel zeigt eine Abfrage aus der Tabelle „Products“ nach dem Produktnamen. Die Funktion wird durch eine HTTP-Anfrage aufgerufen, die eine Abfragezeichenfolge verwendet, um den Wert eines Abfrageparameters anzugeben. Dieser Parameter wird zum Definieren von Datensätzen verwendetProdukteum die angegebene Abfrage zu filtern.

Das folgende Beispiel bindet Daten an die Datei 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 ", "Produktdatenbank": "productsdb", "direction": "in", "kqlCommand": "declare query_parameters (name:string);GetProductsByName(name)", "kqlParameters": "@name={Query.name } ", "connection": "KustoConnectionString" } ], "disabled": false}

Weitere Informationen zu diesen Eigenschaften finden Sie im AbschnittEinstellungen.

Hier ist ein Python-Codebeispiel:

Importieren Sie azure.functions als funcdef main(req: func.HttpRequest, products: str) -> func.HttpResponse: return func.HttpResponse( products, status_code=200, mimetype="application/json" )

Ressource

Mofoc#-BibliothekNutzen Sie die FunktionKustoAttributeNameum die Azure Data Explorer-Bindungen für die Rolle zu deklarieren, die über die folgenden Eigenschaften verfügt:

Attribut-EigenschaftBESCHREIBUNG
DatenbankNotwendig. Die Datenbank, für die die Abfrage ausgeführt werden soll.
VerbindungNotwendig. ÖNameaus der Variablen, die die Verbindungszeichenfolge enthält, die durch Umgebungsvariablen oder durch Funktionsimplementierungseinstellungen aufgelöst wird. Standardmäßig nach der VariableKustoConnectionStringgesucht für. Zur Laufzeit wird diese Variable nach der Umgebung abgefragt. Eine Dokumentation zur Verbindungszeichenfolge finden Sie unterKusto-Verbindungszeichenfolgen, Zum Beispiel.:„KustoConnectionString“: „DataSource=https://_**cluster**_.kusto.windows.net;Database=_**Database**_;Fed=True;AppClientId=_**AppId** _; AppKey =_**AppKey**_;Autorisierungs-ID=_**TenantId**_.
KqlCommandNotwendig. Die auszuführende KqlQuery. Dies kann eine KQL-Abfrage oder ein KQL-Funktionsaufruf sein.
Kql-ParameterOptional. Parameter, die als Prädikatvariablen für den Kql-Befehl fungieren. Beispiel: „@name={name},@Id={id}“, wobei die Parameter {name} und {id} zur Laufzeit durch reale Werte ersetzt werden, die als Prädikate dienen. Weder der Parametername noch der Parameterwert dürfen ein Komma enthalten (,) oder Gleichheitszeichen (=) enthält.
ManagedServiceIdentityOptional. Eine verwaltete Identität kann zum Herstellen einer Verbindung mit Azure Data Explorer verwendet werden. Wenn Sie eine vom System verwaltete Identität verwenden möchten, verwenden Sie „system“. Alle anderen Identitätsnamen werden als benutzerverwaltete Identität interpretiert.

Kommentare

Es wird verwendet inLaufzeitbibliothek für Java-Funktionenmofo@KustoInput-Kommentar (com.microsoft.azure.functions.kusto.annotation.KustoInput):

ElementBESCHREIBUNG
NameNotwendig. Der Name der Variablen, die die Abfrage darstellt, endet im Funktionscode.
DatenbankNotwendig. Die Datenbank, für die die Abfrage ausgeführt werden soll.
VerbindungNotwendig. ÖNameaus der Variablen, die die Verbindungszeichenfolge enthält, die durch Umgebungsvariablen oder durch Funktionsimplementierungseinstellungen aufgelöst wird. Standardmäßig nach der VariableKustoConnectionStringgesucht für. Zur Laufzeit wird diese Variable nach der Umgebung abgefragt. Eine Dokumentation zur Verbindungszeichenfolge finden Sie unterKusto-Verbindungszeichenfolgen, Zum Beispiel.:„KustoConnectionString“: „DataSource=https://_**cluster**_.kusto.windows.net;Database=_**Database**_;Fed=True;AppClientId=_**AppId** _; AppKey =_**AppKey**_;Autorisierungs-ID=_**TenantId**_.
kqlBefehlNotwendig. Die auszuführende KqlQuery. Dies kann eine KQL-Abfrage oder ein KQL-Funktionsaufruf sein.
kqlParametersOptional. Parameter, die als Prädikatvariablen für den Kql-Befehl fungieren. Beispiel: „@name={name},@Id={id}“, wobei die Parameter {name} und {id} zur Laufzeit durch reale Werte ersetzt werden, die als Prädikate dienen. Weder der Parametername noch der Parameterwert dürfen ein Komma enthalten (,) oder Gleichheitszeichen (=) enthält.
manageServiceIdentityEine verwaltete Identität kann zum Herstellen einer Verbindung mit Azure Data Explorer verwendet werden. Wenn Sie eine vom System verwaltete Identität verwenden möchten, verwenden Sie „system“. Alle anderen Identitätsnamen werden als benutzerverwaltete Identität interpretiert.

Einstellungen

In der folgenden Tabelle werden die Verbindungskonfigurationseigenschaften beschrieben, die Sie in der Datei function.json festlegen.

Funktion property.jsonBESCHREIBUNG
TypNotwendig. muss geöffnet werdenkostenbehoben werden.
RichtungNotwendig. muss geöffnet werdenembehoben werden.
NameNotwendig. Der Name der Variablen, die die Abfrage darstellt, endet im Funktionscode.
DatenbankNotwendig. Die Datenbank, für die die Abfrage ausgeführt werden soll.
VerbindungNotwendig. ÖNameaus der Variablen, die die Verbindungszeichenfolge enthält, die durch Umgebungsvariablen oder durch Funktionsimplementierungseinstellungen aufgelöst wird. Standardmäßig nach der VariableKustoConnectionStringgesucht für. Zur Laufzeit wird diese Variable nach der Umgebung abgefragt. Eine Dokumentation zur Verbindungszeichenfolge finden Sie unterKusto-Verbindungszeichenfolgen, Zum Beispiel.:„KustoConnectionString“: „DataSource=https://_**cluster**_.kusto.windows.net;Database=_**Database**_;Fed=True;AppClientId=_**AppId** _; AppKey =_**AppKey**_;Autorisierungs-ID=_**TenantId**_.
kqlBefehlNotwendig. Die auszuführende KqlQuery. Dies kann eine KQL-Abfrage oder ein KQL-Funktionsaufruf sein.
kqlParametersOptional. Parameter, die als Prädikatvariablen für den Kql-Befehl fungieren. Beispiel: „@name={name},@Id={id}“, wobei die Parameter {name} und {id} zur Laufzeit durch reale Werte ersetzt werden, die als Prädikate dienen. Weder der Parametername noch der Parameterwert dürfen ein Komma enthalten (,) oder Gleichheitszeichen (=) enthält.
manageServiceIdentityEine verwaltete Identität kann zum Herstellen einer Verbindung mit Azure Data Explorer verwendet werden. Wenn Sie eine vom System verwaltete Identität verwenden möchten, verwenden Sie „system“. Alle anderen Identitätsnamen werden als benutzerverwaltete Identität interpretiert.

Wenn Sie lokal entwickeln, fügen Sie der Datei Anwendungseinstellungen hinzulocal.settings.jsonNEIN-Sammlung hinzugefügt.

benutzen

Vom Ersteller der Ressource, demDatenbankund EigenschaftenKQLBefehl, KQLTarometer und Verbindungskonfigurationsname werden akzeptiert. ÖKQLBefehlEs kann eine KQL-Anweisung oder eine KQL-Funktion sein. Der Name der Verbindungszeichenfolgenkonfiguration entspricht der Anwendungskonfiguration (inlocal.settings.jsonfür die lokale Entwicklung), dass dieKusto-Verbindungszeichenfolgenenthält. Beispiel:„KustoConnectionString“: „DataSource=https://_**cluster**_.kusto.windows.net;Database=_**Database**_;Fed=True;AppClientId=_**AppId** _; AppKey =_**AppKey**_;Autorisierungs-ID=_**TenantId**_. Von der eingehenden Verbindung ausgeführte Abfragen werden parametrisiert und die in den KQL-Parametern angegebenen Werte werden zur Laufzeit verwendet.

Nächste Schritte

  • Daten in einer Tabelle speichern (Ausgabe verbinden)

Top Articles
Latest Posts
Article information

Author: Prof. Nancy Dach

Last Updated: 18/06/2023

Views: 6250

Rating: 4.7 / 5 (77 voted)

Reviews: 84% of readers found this page helpful

Author information

Name: Prof. Nancy Dach

Birthday: 1993-08-23

Address: 569 Waelchi Ports, South Blainebury, LA 11589

Phone: +9958996486049

Job: Sales Manager

Hobby: Web surfing, Scuba diving, Mountaineering, Writing, Sailing, Dance, Blacksmithing

Introduction: My name is Prof. Nancy Dach, I am a lively, joyous, courageous, lovely, tender, charming, open person who loves writing and wants to share my knowledge and understanding with you.