このガイドでは、新しいユーザー データ関数項目を作成し、その中に新しい関数を記述します。 各ユーザー データ関数項目には、個別に実行できる 1 つまたは複数の関数を定義するコードが含まれています。
具体的には、次の方法を学習します。
- ユーザー データ関数項目を作成します。
- 新しい関数を記述します。
- 関数を管理します。
- 関数を実行します。
前提条件
- いずれかのサポートされているリージョンの Microsoft Fabric 容量。 Fabric 容量がない場合は、無料の試用版容量を作成できます。
- その容量にリンクされている Fabric ワークスペース
新しい Fabric ユーザー データ関数項目を作成する
- ワークスペースを選択し、[+ 新しい項目] を選択します。
- 項目の種類として [すべての項目] を選択します。 [ユーザー データ関数] を検索して選択します。
新しいユーザー データ関数項目を作成する
ワークスペースで、[+ 新しい項目] を選択します。
開いたペインで、
user data functions
を検索し、タイルを選択します。ユーザー データ関数項目の [名前] を指定します。
[新しい関数] を選択して、
hello_fabric
Python 関数テンプレートを作成します。 Functions エクスプローラーには、発行されて、呼び出される準備ができているすべての関数が表示されます。hello_fabric
関数が発行されたら、それを Functions エクスプローラーの関数の一覧から実行できます。
サンプルから新しい関数を追加する
これは、Insert sample
メニューから新しい関数を追加する方法の例です。 ここでは、 ライブラリを要件として使用する pandas
という関数を追加します。 次の手順に従って、このサンプル関数を追加します。
[ライブラリ管理] を選択して、関数に必要なライブラリを追加します。
注
fabric_user_data_functions
ライブラリは既定で追加され、削除することはできません。 このライブラリは、ユーザー データ関数の機能に必要です。 この SDK の今後のリリースに対しては、このライブラリのバージョンを更新する必要があります。pandas ライブラリを選択し、バージョンを選択します。 ライブラリが追加されると、それがユーザー データ関数項目に自動的に保存されます。
[サンプルの挿入] を選択し、[Manipulate data with pandas library] を選択します。 このアクションにより、コードの下部の他の関数の後にサンプル コードが挿入されます。
サンプルをエディターに挿入したら、[発行] を選択して変更を保存できます。 変更の発行には数分かかる場合があります。
発行が完了すると、Functions エクスプローラーの一覧に新しい関数が表示されます。 この関数をポータルから実行するか、別のアプリケーションまたは Fabric 項目 (データ パイプラインなど) から呼び出す準備ができました。
関数を実行する
Functions エクスプローラーの一覧にある関数の上にマウス ポインターを合わせると表示される [実行] アイコンを選択します。
Functions エクスプローラーでフォームとして表示される必須パラメーターを渡します。 ここでは、JSON 文字列をパラメーターとして必要とする
manipulate_data
関数を実行します。[ { "Name": "John", "Age": 22, "Gender": "male" } ]
[実行] を選択して、関数を実行します。
ライブ ログと関数の出力が表示されるので、正常に実行されたかどうかを検証できます。 または、関数呼び出しからのエラー メッセージとログが表示されます。
新しい関数を記述する
すべての実行可能関数は、関数定義の前の @udf.function()
デコレーターで始まります。
Python プログラミング モデルの詳細を参照してください。 新しい関数を記述するには、最初にデコレーター @udf.function()
を使用して、実行可能な関数として宣言します。 関数の例を次に示します。
# This sample allows you to pass a credit card number as an integer and mask it, leaving the last 4 digits.
@udf.function()
def maskCreditCard(cardNumber: int)-> str:
# Convert the card number to a string
cardNumberStr = str(cardNumber)
# Check if the card number is valid
if not cardNumberStr.isdigit() or not (13 <= len(cardNumberStr) <= 19):
raise ValueError("Invalid credit card number")
# Mask all but the last four digits
maskedNumber = '*' * (len(cardNumberStr) - 4) + cardNumberStr[-4:]
return str(maskedNumber)
関数の準備ができたら、関数を発行して実行します。
プログラミング モデルの主要概念
ユーザー データ関数では、ユーザー データ関数 Python プログラミング モデルを使用して、個々の関数を作成、実行、デバッグ、変更します。 これは、Fabric で関数を呼び出し、すべての統合を活用するために必要な機能を提供するファーストパーティ製ライブラリです。
最初の関数を作成した後、コードの最初の行には、テンプレートを実行するために必要なライブラリを記述した import ステートメントが含まれます。
import datetime
import fabric.functions as fn
import logging
udf = fn.UserDataFunctions()
注
関数を正しく実行するには、fabric.functions
ライブラリを含む import ステートメントと、このステートメント udf = fn.UserDataFunctions()
を含む行が必要です。 これらの行が見つからない場合、関数は正しく機能しません。
- 関数を作成、実行、管理するには、
fabric.functions
SDK と他のいくつかの重要なライブラリ (カスタム ログを記述できるlogging
など) が必要です。 -
udf=fn.UserDataFunctions()
は、ユーザー データ関数項目内で関数を定義するためのコンストラクトです。
データ関数を管理する
関数の名前を変更する
コード エディターを選択し、関数の名前を更新します。 たとえば、
hello_fabric
の名前をhello_fabric1
に変更します。 次に例を示します。@udf.function() def hello_fabric1(name: str) -> str: logging.info('Python UDF trigger function processed a request.') return f"Welcome to Fabric Functions, {name}, at {datetime.datetime.now()}!"
名前を変更した後、[発行] を選択して、これらの変更を保存します。
変更が発行されると、Functions エクスプローラーで関数の新しい名前を確認できます。
関数を削除する
関数を削除するには、コード エディターで関数コードを選択し、コード セクション全体を削除します。 変更を発行して、ユーザー データ関数項目から完全に削除します。
たとえば、hello_fabric
関数を削除するには、次のコード ブロックを削除します。
@udf.function()
def hello_fabric(name: str) -> str:
logging.info('Python UDF trigger function processed a request.')
return f"Welcome to Fabric Functions, {name}, at {datetime.datetime.now()}!"
コードが削除されたら、[発行] を選択して変更を保存できます。 発行が完了すると、使用可能な関数の更新された一覧が Functions エクスプローラーに表示されます。