.create function コマンド

ストアド関数を作成し、これは、所定の名前を有する再利用可能な KQL クエリです。 関数*定義は、データベース* メタデータ*とともに永続化されます。

関数は他の関数を呼び出すことができます (再帰性はサポートされていません)。 さらに、let ステートメントは "関数本体" のパーツとして許可されます。 letステートメントをご覧ください。

パラメーターの型およびCSLステートメントのルールは、letステートメントの場合と同じです。

アクセス許可

このコマンドを実行するには、少なくとも データベース ユーザー のアクセス許可が必要です。

構文

.createfunction [ ifnotexists ] [ with(propertyName=propertyValue [, ...]) ] ] functionName(パラメーター){}

構文規則について詳しく知る。

パラメーター

名前 必須 説明
ifnotexists string 指定した場合、関数は関数がまだ存在しない場合にのみ作成されます。
functionName string ✔️ 作成または変更する関数の名前。
propertyNamepropertyValue string キーと値のプロパティペアのコンマ区切りのリスト。 「サポートされているプロパティ」を参照してください。
parameters string 関数に必要なパラメーターのコンマ区切りのリスト。 各パラメーターの形式は ParameterName:ParameterDataType である必要があります。
body string ✔️ ユーザー定義の関数式。

サポートされているプロパティ

名前 説明
docstring string UI 用の関数の説明。
folder string UI 関数の分類に使用されるフォルダーの名前。
view bool 保存されるビューとしてこの関数を指定します。 保存されたビューは、 検索共用体 * のシナリオに参加できます。 詳細については、「 ビュー」を参照してください。
skipvalidation bool 関数に対して検証ロジックを実行し、関数が有効でない場合にプロセスを失敗させるかどうかを判断します。 既定値は、false です。

ヒント

関数にクラスター間クエリが含まれており、Kusto 照会言語 スクリプトを使用して関数を再作成する予定の場合は、 を に設定skipvalidationしますtrue

戻り値

出力パラメーター 説明
名前 string 関数の名前。
パラメーター string 関数に必要なパラメーター。
本文 string (0 個以上) 関数の呼び出し時に評価される有効な CSL 式が後に続く let ステートメント。
Folder string フォルダーはUI関数*の分類に使用されます。 このパラメーターは、関数*の呼び出し*方法を変更しません。
DocString string UI 用の関数の説明。

Note

  • 関数が既に存在する場合:
    • ifnotexistsフラグ*を指定した場合、コマンドを無視します (変更は適用されない)。
    • ifnotexistsフラグ*を指定していない場合、エラー*を返します。
    • 既存の関数*の変更については、.alter function を参照してください。
  • すべてのデータ型*がletステートメント*にサポート*されているわけではありません。 サポーされる型*は、boolean、string、long、datetime*、timespan、double、およびdynamicです。
  • skipvalidation を使用すると、関数のセマンティック評価がスキップされます。 これは、関数が正しくない順序で作成され、F2 を使用する F1 が先に作成された場合に役立ちます。

単純なデモ関数*

.create function 
with (docstring = 'Simple demo function', folder='Demo')
MyFunction1()  {StormEvents | take 100}
名前 パラメーター 本文 フォルダー DocString
MyFunction1 () {StormEvents | take 100} デモ 単純なデモ関数*

パラメーター*を使用したデモ関数*

.create function
with (docstring = 'Demo function with parameter', folder='Demo')
 MyFunction2(myLimit: long)  {StormEvents | take myLimit}
名前 パラメーター 本文 フォルダー DocString
MyFunction2 (myLimit:long) {StormEvents | take myLimit} デモ パラメーター*を使用したデモ関数*