.create function-Befehl

Erstellt eine gespeicherte Funktion, bei der es sich um eine wiederverwendbare KQL-Abfrage mit dem angegebenen Namen handelt. Die Funktionsdefinition wird mit den Datenbankmetadaten beibehalten.

Funktionen können andere Funktionen aufrufen (Rekursivität wird nicht unterstützt). let Außerdem sind -Anweisungen als Teil des Funktionstexts zulässig. Weitere Informationen finden Sie unterlet -Anweisungen.

Regeln für Parametertypen und CSL-Anweisungen sind identisch mit denen für -letAnweisungen.

Berechtigungen

Sie müssen mindestens über Datenbankbenutzerberechtigungen verfügen, um diesen Befehl ausführen zu können.

Syntax

.createfunction [ ifnotexists ] [ with(propertyName=propertyValue [, ...]) ] Functionname(Parameter){Körper}

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Typ Erforderlich BESCHREIBUNG
ifnotexists string Wenn angegeben, wird die Funktion nur erstellt, wenn die Funktion noch nicht vorhanden ist.
Functionname string ✔️ Der Name der zu erstellenden oder zu ändernden Funktion.
propertyName, propertyValue string Eine durch Trennzeichen getrennte Liste von Schlüssel-Wert-Eigenschaftspaaren. Weitere Informationen finden Sie unter unterstützte Eigenschaften.
parameters string Eine durch Trennzeichen getrennte Liste von Parametern, die für die Funktion erforderlich sind. Das Format für jeden Parameter muss ParameterName:ParameterDataType sein.
body string ✔️ Ein benutzerdefinierter Funktionsausdruck.

Unterstützte Eigenschaften

Name Typ BESCHREIBUNG
docstring string Eine Beschreibung der Funktion für Benutzeroberflächenzwecke.
folder string Der Name eines Ordners, der für die Kategorisierung von UI-Funktionen verwendet wird.
view bool Legt diese Funktion als gespeicherte Ansicht fest. Gespeicherte Ansichten können an Such- und Union*- Szenarien teilnehmen. Weitere Informationen finden Sie unter Ansichten.
skipvalidation bool Bestimmt, ob validierungslogik für die Funktion ausgeführt werden soll, und der Prozess schlägt fehl, wenn die Funktion ungültig ist. Der Standardwert lautet false.

Tipp

Wenn eine Funktion clusterübergreifende Abfragen umfasst und Sie planen, die Funktion mithilfe eines Kusto-Abfragesprache-Skripts neu zu erstellen, legen Sie auf truefestskipvalidation.

Gibt zurück

Ausgabeparameter type BESCHREIBUNG
Name string Der Name der Funktion.
Parameter string Die für die Funktion erforderlichen Parameter.
Text string (Null oder mehr) let -Anweisungen gefolgt von einem gültigen CSL-Ausdruck, der beim Funktionsaufruf ausgewertet wird.
Ordner string Ein Ordner, der für die Kategorisierung von Ui-Funktionen verwendet wird. Dieser Parameter ändert nicht die Art und Weise, wie die Funktion aufgerufen wird.
DocString string Eine Beschreibung der Funktion für Benutzeroberflächenzwecke.

Hinweis

  • Wenn die Funktion bereits vorhanden ist:
    • Wenn ifnotexists flag angegeben ist, wird der Befehl ignoriert (keine Änderung angewendet).
    • Wenn ifnotexists das Flag NICHT angegeben ist, wird ein Fehler zurückgegeben.
    • Informationen zum Ändern einer vorhandenen Funktion finden Sie unter .alter function
  • Nicht alle Datentypen werden in let -Anweisungen unterstützt. Unterstützte Typen sind: boolean, string, long, datetime, timespan, double und dynamic.
  • Verwenden Sie skipvalidation , um die semantische Validierung der Funktion zu überspringen. Dies ist nützlich, wenn Funktionen in einer falschen Reihenfolge erstellt werden und F1, die F2 verwendet, früher erstellt wird.

Beispiele

Einfache Demofunktion

.create function 
with (docstring = 'Simple demo function', folder='Demo')
MyFunction1()  {StormEvents | take 100}
Name Parameter Text Ordner DocString
MyFunction1 () {StormEvents | take 100} Demo Einfache Demofunktion

Demofunktion mit Parameter

.create function
with (docstring = 'Demo function with parameter', folder='Demo')
 MyFunction2(myLimit: long)  {StormEvents | take myLimit}
Name Parameter Text Ordner DocString
MyFunction2 (myLimit:long) {StormEvents | take myLimit} Demo Demofunktion mit Parameter