次の方法で共有


開いているワークスペース内のノートブックから受信制限付きワークスペース内のレイクハウスにアクセスする

マネージド プライベート エンドポイントを使用して、開いている ワークスペース、受信パブリック アクセスを制限するワークスペースとの間にクロスワークスペース通信を確立できます。 たとえば、開いているワークスペース内のノートブックから受信制限付きワークスペース内のレイクハウスにアクセスする場合は、マネージド プライベート エンドポイントを設定して、2 つのワークスペース間のセキュリティで保護された接続を確立できます。

次の図では、開いているワークスペース (ワークスペース 1) に、制限されたワークスペース (ワークスペース 2) に接続するマネージド プライベート エンドポイントがあります。 このセットアップにより、ワークスペース 1 のノートブックは、パブリック アクセスに公開することなく、Lakehouse に安全にアクセスし、ワークスペース 2 の Delta Lake テーブルを読み取ることができます。

マネージド プライベート エンドポイントが、パブリック アクセスを拒否するように設定されているワークスペースへの接続を確立する方法を示す図。

この記事では、Microsoft Fabric ポータルまたは API のワークスペース設定を使用して、マネージド プライベート エンドポイントを作成する方法について説明します。

手順 1: ワークスペースを作成する

Fabric でワークスペースを作成します。 このセットアップには、開いているワークスペースと制限されたワークスペースの両方が含まれます。 この記事では、ワークスペースを次のように参照します。

  • ソース ワークスペースは、パブリック アクセス制限のない開いているワークスペースです。
  • ターゲット ワークスペースは、受信パブリック アクセスを制限するワークスペースです。

この記事では、ワークスペースの完全修飾ドメイン名 (FQDN) についても説明します。 形式は次のとおりです。

https://{workspaceID}.z{xy}.w.api.fabric.microsoft.com

FQDN 形式では、 {workspaceID} はダッシュのないワークスペース ID で、 {xy} はワークスペース オブジェクト ID の最初の 2 文字です。 詳細については、「 ワークスペースへの接続」を参照してください。

ワークスペース ID を見つけるには、Fabric ポータルでワークスペース ページを開き、URL に groups/ した後に ID を確認します。 ワークスペースの FQDN は、ワークスペースの一覧表示またはワークスペースの取得 API を使用して見つけることもできます。

手順 2: マネージド プライベート エンドポイントを作成する

ソース (オープン) ワークスペースにマネージド プライベート エンドポイントを作成します。 ポータルまたは次の API で ワークスペース 設定を使用します。

POST https://{workspaceFQDN}/v1/workspaces/{workspaceID}/managedPrivateEndpoints

そのコードでは、 {workspaceFQDN}{workspaceID}.z{xy}.w.api.fabric.microsoft.com

たとえば、 POST https://aaaaaaaa000011112222bbbbbbbbbbbb.zaa.w.api.fabric.microsoft.com/v1/workspaces/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb/managedPrivateEndpointsと指定します。

targetPrivateLinkResourceId パラメーターは、制限付きワークスペース内の Azure Private Link サービスのリソース ID です。 ターゲット ワークスペースへのマネージド プライベート エンドポイントを作成するには、このリソース ID が必要です。

マネージド プライベート エンドポイントを作成するための API を示すスクリーンショット。

このリソース ID は、ワークスペースのリソース JSON を表示することで Azure で確認できます。 JSON 内のワークスペース ID が目的のターゲット ワークスペースと一致していることを確認します。

リソース JSON ファイルで Private Link リソース ID を取得する方法を示すスクリーンショット。

ワークスペース 2 の Private Link サービス所有者は、Azure プライベート リンク センターのマネージド プライベート エンドポイントの要求を承認する必要があります>接続待ち

手順 3: 制限されたワークスペースにレイクハウスを作成する

次の Create Lakehouse API を使用して、ターゲット (制限付き) ワークスペースに Lakehouse を作成します。

POST https://{workspaceFQDN}/v1/workspaces/{workspaceID}/lakehouses

そのコードでは、 {workspaceFQDN}{workspaceID}.z{xy}.w.api.fabric.microsoft.com

たとえば、 POST https://aaaaaaaa000011112222bbbbbbbbbbbb.zaa.w.api.fabric.microsoft.com/v1/workspaces/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb/lakehousesと指定します。

ターゲット ワークスペースでのレイクハウスの作成を示すスクリーンショット。

手順 4: Delta Lake テーブルをレイクハウスにアップロードする

Azure Storage Explorer を使用して、Delta Lake テーブルのフォルダーを制限付き Lakehouse のマネージド ストレージにアップロードします。

  1. Storage Explorer に移動し、左側のメニューで接続アイコンを選択し、 ADLS Gen2 コンテナーまたはディレクトリを選択します。

  2. OAuth を使用してサインインします。

  3. ストレージの表示名を入力し、BLOB コンテナーの URL を次の形式で入力します。

    https://{workspaceFQDN}/{workspaceID}/{lakehouseID}

    そのコードでは、 {workspaceFQDN}{workspaceID}.z{xy}.onelake.fabric.microsoft.com

    たとえば、 POST https://aaaaaaaa000011112222bbbbbbbbbbbb.zaa.w.api.fabric.microsoft.com/v1/workspaces/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb/bbbbbbbb-1111-2222-3333-ccccccccccccと指定します。

    接続情報の入力を示すスクリーンショット。

  4. [接続] を選択します。 これで、ストレージがエクスプローラー ビューに表示されます。

  5. [ テーブル ] フォルダーで、使用する Delta Lake テーブルをアップロードします。 この例では、 customers テーブルを使用します。

    フォルダーをアップロードするオプションを示すスクリーンショット。

手順 5: ソース ワークスペースにノートブックを作成する

ノートブックを作成し、次のように制限付きレイクハウスに接続します。

  1. ソース ワークスペースで、[ ノートブック] に移動します。

  2. [ + 新しいノートブック] を選択します。 

  3. Spark ランタイムを選択します。 

  4. [エクスプローラー] ウィンドウでターゲット ワークスペースに接続します。

  5. 次のコードを貼り付けます。

    from pyspark.sql import SparkSession
    # Read Delta Lake table from the restricted lakehouse by using the workspace DNS-based ABFSS URI
    df = spark.read.format("delta").load(
       "abfss://{WorkspaceID}@{WorkspaceFQDN}/{LakehouseID}/Tables/customers"
    )
    

    次の点を確認します。

    • Azure Blob File System (ABFSS) ドライバーのパスは、Lakehouse の DNS とテーブルの場所と一致します。
    • 開いているワークスペースと制限されたワークスペースの間のネットワーク アクセスは、プライベート エンドポイントを介して正しく確立されます。
  6. ノートブックを実行します。 プライベート エンドポイントとアクセス許可を正しく設定すると、ノートブックが接続され、制限付き Lakehouse の Delta Lake テーブルの内容が表示されます。