Python のコンソール アプリケーションから Fabric ユーザー データ関数項目 (プレビュー) を呼び出すには、実行する必要がある関数エンドポイントに HTTP 要求を送信します。 このクイック スタートでは、Visual Studio Code を使用して Python アプリを設定する方法について説明します。
前提条件
- Visual Studio Code をインストールします。
- Python 3.1 をローカル コンピューターにダウンロードします。
- Microsoft Fabric アカウントがない場合は、無料アカウントを作成します。
- ワークスペースを作成します。
- ユーザー データ関数項目を作成して発行します。 VS Code で作成する方法またはポータルで作成する方法に関する記事を確認してください。 変更内容を発行して、ユーザー データ関数項目を呼び出す準備を整えます。
関数を呼び出すコンソール アプリケーションを作成する
この関数はパブリックにアクセスできる必要があります。 関数エクスプローラーで、関数の名前をポイントし、表示される省略記号アイコン (...) を選択して [プロパティ] を選択します。 開いた [プロパティ] ウィンドウで、[パブリック アクセス] を有効にします。 また、Python アプリケーションで使用するパブリック URL も書き留める必要があります。
たとえば、my-data-app など、Python アプリ用の新しいフォルダーを作成します。 VS Code で フォルダーを開きます。
VS Code 内に Python 仮想環境を設定します。 VS Code でローカル環境を作成するには、Ctrl + Shift + P でコマンド パレットを開き、[Python: Create Environment] コマンドを検索して選択します。
- コマンドにより、環境の種類の一覧が表示され、Venv が選択されます。
- Python インタープリター バージョン Python 3.11 を選択します。
次のコマンドを実行して VS Code ターミナルで仮想環境をアクティブにします。
venv\Scripts\activate.bat
次に、コマンドを実行して、この例に必要な Python ライブラリをインストールします。
pip install azure-identity, requests
app.py
ファイルを作成し、コードを使用してユーザー データ関数項目を呼び出します。from azure.identity import InteractiveBrowserCredential import requests import json # Acquire a token # DO NOT USE IN PRODUCTION. # Below code to acquire token is to test the GraphQL endpoint and is for the purpose of development only. # For production, always register an application in a Microsoft Entra ID tenant and use the appropriate client_id and scopes. # https://learn.microsoft.com/fabric/data-engineering/connect-apps-api-graphql#create-a-microsoft-entra-app app = InteractiveBrowserCredential() scp = 'https://analysis.windows.net/powerbi/api/user_impersonation' result = app.get_token(scp) if not result.token: print('Error:', "Could not get access token") # Prepare headers headers = { 'Authorization': f'Bearer {result.token}', 'Content-Type': 'application/json' } FUNCTION_URL = '<REPLACE WITH USER DATA FUNCTION URL>' # Prepare the request data data = '{"name": "John"}' # JSON payload to send to the Azure Function headers = { # "Authorization": f"Bearer {access_token}", "Content-Type": "application/json" } try: # Call the user data function public URL response = requests.post(FUNCTION_URL, json=data, headers=headers) response.raise_for_status() print(json.dumps(response.json())) except Exception as e: print({"error": str(e)}, 500) if __name__ == "__main__": app.run(debug=True)
注
この例は、開発用途のみが想定されています。 運用環境のユース ケースでこのアプリケーションを使用する前に、Microsoft Entra ID 認証を使用するようにアプリケーションを更新してください。
外部アプリケーションからの関数の呼び出し
関数は、エンドポイント URL への REST 呼び出しを発行することによって呼び出すことができます。 関数エクスプローラーで呼び出す関数を選択し、[Copy Function URL] (関数 URL のコピー) を選択します。 [プロパティ] メニューから、外部でこの URL を使用する機能をオンまたはオフにすることもできます。
次に、アプリケーションでこの URL を使用して関数を呼び出します。 「アプリケーションからユーザー データ関数を呼び出す」を参照してください。
出力スキーマ
外部アプリケーションからユーザー データ関数を呼び出すと、出力スキーマの形式は次のようになります。
{
"functionName": "hello_fabric",
"invocationId": "1234567890",
"status": "Succeeded | BadRequest | Failed | Timeout | ResponseTooLarge",
"output": /*shows the result of the function dependeing on the output type*/,
"errors": [
{
"name": "Error name",
"message": "Error message",
"properties": {
/*Key value pairs custom to error*/
}
},
]
}
次のプロパティが返されます。
- functionName: 実行された関数の名前。
- invocationId: 関数を実行するための呼び出し ID。
-
status: 関数の実行結果。 これは、
Succeeded
、BadRequest
、Failed
、Timeout
、ResponseTooLarge
のいずれかの値になります。 - output: 関数によって返される出力値。
- errors: エラーがキャプチャされた場合、ここに、各エラーの名前、エラー メッセージ、エラー プロパティのリストが返されます。
応答コード
この関数は、実行の結果として次の HTTP コードを返します。
応答コード | 説明 |
---|---|
200 OK (成功) | 要求は成功しました |
403 (許可されていません) | 応答は大きすぎ、実行は失敗しました。 |
408 (要求タイムアウト) | 実行が 200 秒を超えたため、要求は失敗しました。 |
409 (競合) | 要求が実行中に例外をスローしました。 |
400 (無効な要求) | 入力パラメーターが無効であるか不足しているため、要求は失敗しました。 |
500 (内部サーバー エラー) | 内部エラーのため要求は失敗しました。 |
デバッグおよびテスト
Python デバッガーを使用して VS Code でアプリケーションをデバッグします。 問題が発生した場合にデバッグで必要な場合は、ブレークポイントを追加します。 詳細情報