.create function コマンド
ストアド関数を作成し、これは、所定の名前を有する再利用可能な KQL クエリです。 関数*定義は、データベース* メタデータ*とともに永続化されます。
関数は他の関数を呼び出すことができます (再帰性はサポートされていません)。 さらに、let
ステートメントは "関数本体" のパーツとして許可されます。 let
ステートメントをご覧ください。
パラメーターの型およびCSLステートメントのルールは、let
ステートメントの場合と同じです。
アクセス許可
このコマンドを実行するには、少なくとも Database User アクセス許可が必要です。
構文
.create
function
[ ifnotexists
] [ with
(
propertyName =
propertyValue [,
...])
] ] functionName (
parameters)
{
body }
構文規則について詳しく知る。
パラメーター
件名 | タイプ | Required | 説明 |
---|---|---|---|
ifnotexists |
string |
指定した場合、関数は、関数がまだ存在しない場合にのみ作成されます。 | |
functionName | string |
✔️ | 作成または変更する関数の名前。 |
propertyName, propertyValue | string |
キーと値のプロパティのペアのコンマ区切りのリスト。 サポートされるプロパティを参照してください。 | |
parameters | string |
関数で必要なパラメーターのコンマ区切りのリスト。 各パラメーターの形式は、 ParameterName: ParameterDataType にする必要があります。 |
|
body | string |
✔️ | ユーザー定義の関数式。 |
サポートされるプロパティ
名前 | 種類 | 説明 |
---|---|---|
docstring |
string |
UI 用の関数の説明。 |
folder |
string |
UI 関数の分類に使用されるフォルダーの名前。 |
view |
bool |
保存されるビューとしてこの関数を指定します。 保存されたビューは、 search および union * シナリオに参加できます。 詳細については、「 Views」を参照してください。 |
skipvalidation |
bool |
関数に対して検証ロジックを実行するかどうかを決定し、関数が有効でない場合はプロセスを失敗します。 既定値は、false です。 |
ヒント
関数にクロス クラスター クエリが含まれる場合Kusto 照会言語 スクリプトを使用して関数を再作成する予定がある場合skipvalidation
を true
に設定します。
返品
出力パラメーター | 型 | 説明 |
---|---|---|
Name | string |
関数の名前です。 |
パラメーター | string |
関数に必要なパラメーター。 |
本文 | string |
(0 個以上) 関数の呼び出し時に評価される有効な CSL 式が後に続く let ステートメント。 |
フォルダー | string |
UI 関数の分類に使用されるフォルダー。 このパラメーターは、関数*の呼び出し*方法を変更しません。 |
DocString | string |
UI 用の関数の説明。 |
Note
- 関数が既に存在する場合:
ifnotexists
フラグ*を指定した場合、コマンドを無視します (変更は適用されない)。ifnotexists
フラグ*を指定していない場合、エラー*を返します。- 既存の関数*の変更については、
.alter function
を参照してください。
- すべてのデータ型*が
let
ステートメント*にサポート*されているわけではありません。 サポーされる型*は、boolean、string、long、datetime*、timespan、double、およびdynamicです。 skipvalidation
を使用すると、関数のセマンティック評価がスキップされます。 これは、関数が正しくない順序で作成され、F2 を使用する F1 が先に作成された場合に役立ちます。
例
単純なデモ関数*
次の例では、説明 (docstring
)、Demo
という名前のフォルダーを含むMyFunction1
関数を作成し、関数を定義します。
.create function
with (docstring = 'Simple demo function', folder='Demo')
MyFunction1()
{StormEvents | take 100}
Name | パラメーター | 本文 | フォルダー | DocString |
---|---|---|---|---|
MyFunction1 | () | {StormEvents | take 100} | Demo | 単純なデモ関数* |
パラメーターを使用したデモ関数
次の例では、 MyFunction2 関数を記述 (docstring
)、 Demo
という名前のフォルダーで作成し、 MyLimit
パラメーターを定義します。
.create function
with (docstring = 'Demo function with parameter', folder='Demo')
MyFunction2(myLimit: long)
{StormEvents | take myLimit}
Name | パラメーター | 本文 | フォルダー | DocString |
---|---|---|---|---|
MyFunction2 | (myLimit:long) | {StormEvents | take myLimit} | Demo | パラメーターを使用したデモ関数 |