注
Fabric Connection とノートブックの統合は現在プレビュー段階です。
Fabric Connection との統合により、ノートブックから直接外部データ ソースを使用できます。 既存の接続と資格情報を再利用できるため、さまざまなデータ ソースを簡単に操作でき、ノートブック内でのスムーズなコーディングエクスペリエンスを実現できます。
ノートブックでファブリック接続を使用するには、Fabric データ ソース管理ページからノートブックで使用する接続を明示的に有効にする必要があります。 ノートブックなどのコードファーストアーティファクトがこの接続を使用できるようにする(プレビュー)という特定のチェックボックスがあります。 このチェック ボックスは作成時にのみ設定でき、後で変更することはできません。
ノートブックの Fabric Connection でサポートされている認証方法を次に示します。
- Basic Authentication: 基本認証をサポートするAzure SQL Databaseおよびその他のデータベースでサポートされます。
- アカウント キー認証: アカウント キー認証を必要とする REST API データ ソースでサポートされます。
- トークン認証: トークンベースの認証を必要とするデータ ソースでサポートされます。
- ワークスペース ID 認証: Fabric ワークスペース ID 認証でサポートされます。
- サービス プリンシパル認証 (SPN):SPN ベースの認証を必要とするデータ ソースでサポートされます。
Important
ノートブックのファブリック接続では、OAuth2.0 はサポートされていません。 ワークスペース ID 認証または SPN を選択した場合は、データ ソースをaccessするために必要なアクセス許可を Fabric ワークスペース ID に付与してください。 各コネクタの詳細なセットアップ情報については、「 データ ソース管理」を参照してください。
テナント レベルの設定があり、テナント管理者は、テナント全体でこの機能が有効になっているかどうかを制御できます。 この設定が無効になっている場合、ユーザーはノートブックでファブリック接続を使用できません。 この機能は、既定で有効になっています。
ノートブックのファブリック接続を作成する方法
ノートブック用のファブリック接続を作成するには、2 つの方法があります。
ノートブック内にファブリック接続を作成する
ノートブック内では、[接続] ウィンドウで [ 接続の追加 ] を選択してファブリック 接続 を作成できます。
[接続の 追加] ウィンドウが開き、データ ソースの種類を選択できます。 接続の詳細を指定し、認証方法を選択します。
ノートブック内で作成された接続に対して、この接続をノートブックなどのコードファーストアーティファクトが利用できるようにする(プレビュー) チェックボックスは、既定で選択されています。 接続が作成されると、接続は現在のノートブックに自動的にバインドされ、[接続] ウィンドウの [現在のノートブック] ノードに表示されます。
[データ ソース管理] ページからファブリック接続を作成する
ファブリック接続は、既存のデータ ソース管理ページから作成できます。 これを行うには、データソース管理 ページに移動し、新規作成 を選択します。 ファブリック接続を作成する方法の詳細については、データ ソース管理の [データ ソース管理] ページを参照してください。
接続を作成するときは、ノートブックなどのコードファーストアーティファクトがこの接続にアクセスできるように、Allow Code-First Artifacts like Notebooks to access this connection (Preview) チェックボックスを選択してください。 この設定は作成時にのみ構成でき、後で変更することはできません。
接続が作成されると、ノートブック内の [接続] ウィンドウの [グローバルアクセス許可] ノードに表示されます。
[グローバルアクセス許可] ノードの下の接続では、接続コンテキスト メニューで [接続] を選択して、接続を現在のノートブックに明示的にバインドする必要があります。
接続を現在のノートブックにバインドすると、[接続] ウィンドウの [現在のノートブック ] ノードに 接続 が表示されます。
[接続状態]
時間の経過と同時に、資格情報の有効期限やアクセス許可の変更など、さまざまな理由により、ファブリック接続の状態が変わる可能性があります。 コンテキスト メニューから [状態の確認] ボタンを選択すると、接続 の状態を確認 できます。
接続に問題がある場合は、接続名の横にオフライン アイコンが表示されます。 接続がオフラインになる可能性がある一般的なシナリオを次に示します。
- 資格情報の有効期限: 接続に使用される資格情報の有効期限が切れている場合、接続はオフラインになります。 接続をオンラインに戻すには、資格情報を更新する必要があります。
- Permission Changes: データ ソースのアクセス許可が変更され、接続にaccessがなくなった場合、接続はオフラインになります。 接続をオンラインに戻すには、必要なアクセス許可を復元する必要があります。 たとえば、ワークスペース ID 認証または SPN を使用している場合は、Fabric ワークスペース ID または SPN に、データ ソースをaccessするために必要なアクセス許可があることを確認します。
- ネットワークの問題: データ ソースへのaccessを妨げるネットワークの問題がある場合、接続はオフラインになります。 接続をオンラインに戻すには、ネットワークの問題を解決する必要があります。
- 接続が削除されました: ノートブックにバインドされた後に接続が削除された場合、 接続はオフライン になり、使用不可エラーが発生します。 オフライン接続からコード スニペットを生成することはできません。
[現在のノートブック] ノードのオフライン接続では、コンテキスト メニューで [状態の確認] オプションと [切断] オプションを使用できます。 オフライン接続からコード スニペットを生成することはできません。 チェックの 状態 も無効になっている場合は、接続が削除されたことを示します。 接続を再作成してノートブックに再度バインドするか、コード スニペットを更新して、使用可能な別の接続を使用することができます。
[グローバル アクセス許可] ノードのオフライン接続では、コンテキスト メニューで [状態の確認] オプションを使用できます。 オフライン接続を現在のノートブックに接続することはできません。 "削除" オプションは、現在のユーザーが接続の所有者アクセス許可を持っている場合にのみ使用できます。
Important
ワークスペース ID 認証を使用して接続を作成する場合、テスト接続ではワークスペース ID 認証がサポートされていないため、[ 状態の確認] オプションでは接続がオンラインかオフラインかを検証できません。
ノートブック コードでファブリック接続を使用する方法
ファブリック接続が作成され、現在のノートブックにバインドされたら、ノートブックから直接データ ソースをaccessするコード スニペットを生成できます。
このコードでは、接続の資格情報の詳細を取得し、それらの資格情報を使用してデータ ソースのクライアントを設定した後、データを取得するためのクエリを実行します。 生成されたスニペットをクエリのニーズに合わせて調整できます。 必要なパッケージがランタイムに存在しない場合は、pip インストール コマンドを含む前のコード セルが表示され、クエリを実行する前にそのセルを実行します。
Azure Cosmos DB 接続用に生成されたコード スニペットの例を次に示します。
from azure.cosmos import CosmosClient
import json
import pandas as pd
connection_id = '9d405da3-3d11-481a-9022-xxxxxxxxxxx' # connection name: "neweventdb qixwang"
connection_credential = notebookutils.connections.getCredential(connection_id)
credential_dict = json.loads(connection_credential['credential'])
key = next(item['value'] for item in credential_dict['credentialData'] if item['name'] == 'key')
endpoint = 'https://userevent.documents.azure.com:443/'
client = CosmosClient(endpoint, credential=key)
databases = list(client.list_databases())
database = databases[0]
database_client = client.get_database_client(database['id'])
containers = list(database_client.list_containers())
container = containers[0]
container_name = container['id']
container_client = database_client.get_container_client(container_name)
query = f"SELECT * FROM {container_name} p"
items = list(container_client.query_items(query=query, enable_cross_partition_query=True))
df = pd.DataFrame(items)
display(df)
最初に pip install コマンドを使用してコード セルを実行して必要なパッケージをインストールし、次にコード セルを実行してデータ ソースからデータを取得します。
接続権限の要件
ノートブックを実行すると、アクセス許可チェックによって、接続を使用するために必要なアクセス許可があることを確認できます。 アクセス許可がない場合、ノートブックにエラー メッセージが表示されます。
ノートブックを他のユーザーと共有する場合は、接続を使用してコード セルを実行するための適切なアクセス許可も必要です。 データ ソース管理での接続アクセス許可の管理の詳細について説明します。
接続にワークスペース ID 認証または SPN が使用されている場合は、ファブリック ワークスペース ID または SPN に、データ ソースをaccessするために必要なアクセス許可があることを確認します。
Azure Key Vault接続の場合、SPN またはワークスペース ID 認証を使用する場合は、次のアクセス許可要件が適用されます。
- シークレットをaccessするには、SPN または Fabric ワークスペース ID にKey Vaultに対する管理者/共同作成者ロールが必要です。
- SPN または Fabric ワークスペース アイデンティティには、Key Vault に対する Azure の所有者または共同作成者のロールが必要です。
- SPN または Fabric ワークスペース ID にシークレット accessを付与するには、Key Vaultのaccess ポリシーを更新します。
- Key Vaultのaccess ポリシーで "Vault access ポリシー" を有効にし、SPN またはファブリック ワークスペース ID に対するシークレットに対する"Get" および "List" アクセス許可を付与します。
ノートブックからファブリック接続を接続または切断する
現在のノートブックからファブリック接続を接続または切断するには:
- [現在のノートブック] ノードで接続を選択します。
- 省略記号 (...) を選択し、コンテキスト メニューから [切断] または [接続] を選択します。
同じ接続が切断され、再接続されると、接続 ID が変更されます。 接続を参照する既存のコード セルの場合は、コード セルの接続 ID を新しい接続 ID に更新する必要があります。 接続 ID は、接続のコンテキスト メニューで [ コピー ID] を選択することで確認できます。
既知の問題と制限事項
- ノートブックのファブリック接続では、OAuth2.0 認証はサポートされていません。