パイプラインを使用して、開いている ワークスペース と 、受信パブリック アクセスを制限するワークスペースの間のクロスワークスペース通信を確立できます。 たとえば、開いているワークスペースにパイプラインを作成して、受信制限付きワークスペース内のレイクハウスにアクセスできます。 このセットアップにより、ワークスペース 1 のノートブックは、パブリック アクセスに公開することなく、Lakehouse に安全にアクセスし、ワークスペース 2 の Delta Lake テーブルを読み取ることができます。
手順 1: ワークスペースを作成する
開いているワークスペースと制限されたワークスペースの両方が必要です。 この記事では、ワークスペースを次のように参照します。
- ソース ワークスペースは、パブリック アクセス制限のない 開いている ワークスペースです。 ここでパイプラインを作成します。
- ターゲットワークスペースは、外部からのパブリックアクセスが制限されている制限付ワークスペースです。 ここでレイクハウスを作成します。
ワークスペースを作成するには、次の手順に従います。
Microsoft Fabric で 2 つのワークスペースを作成します。 詳細については、「 ワークスペースの作成」を参照してください。
テナント設定で、 ワークスペース レベルの受信アクセス保護を有効にします。
ターゲット ワークスペースの場合は、 ワークスペース レベルのプライベート リンクを設定します。
手順 2: 制限されたワークスペースにレイクハウスを作成する
次の Create Lakehouse API を使用して、ターゲット (制限付き) ワークスペースに Lakehouse を作成します。
POST https://{workspaceid}.z{xy}.w.api.fabric.microsoft.com/workspaces/{workspaceID}/lakehouses
手順 3: マネージド プライベート エンドポイントを作成する
ソース (オープン) ワークスペースにマネージド プライベート エンドポイントを作成します。 ポータルまたは次の 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 が必要です。
このリソース ID は、ワークスペースのリソース JSON を表示することで Azure で確認できます。 JSON 内のワークスペース ID が目的のターゲット ワークスペースと一致していることを確認します。
ワークスペース 2 の Private Link サービス所有者は、Azure プライベート リンク センターのマネージド プライベート エンドポイントの要求を承認する必要があります>接続待ち。
手順 4: Delta Lake テーブルをレイクハウスにアップロードする
Azure Storage Explorer を使用して、Delta Lake テーブルのフォルダーを制限付き Lakehouse のマネージド ストレージにアップロードします。
Storage Explorer に移動し、左側のメニューで接続アイコンを選択し、 ADLS Gen2 コンテナーまたはディレクトリを選択します。
OAuth を使用してサインインします。
ストレージの表示名を入力し、BLOB コンテナーの URL を次の形式で入力します。
https://{workspaceID}.z{xy}.onelake.fabric.microsoft.com/{workspaceID}/{lakehouseID}このコードでは、
workspaceIDはダッシュのないワークスペース ID で、{xy}はワークスペース ID の最初の 2 文字です。[接続] を選択します。 これで、ストレージがエクスプローラー ビューに表示されます。
[ テーブル ] フォルダーで、使用する Delta Lake テーブルをアップロードします。 この例では、 customers テーブルを使用します。
手順 5: 制限付きワークスペースにノートブックを作成する
テーブルから読み取り、新しいテーブルに書き込むノートブックを作成します。 これを行うには、UI を使用して開いているワークスペースにノートブックを作成します。
開いているワークスペースで、UI を使用して、同じテーブルと同様のノートブックを含むレイクハウスを作成します。
ノートブックで lakehouse を接続し、新しいテーブルを作成するためのスクリプトを実行します。
df = spark("SELECT * FROM Lakehouse_Open.customers") display(df) df.write.mode("overwrite").saveAsTable("Lakehouse_Open.customersnew")ノートブックを保存します。
API を使用してノートブック定義を取得し、場所の結果を取得します。
Get Notebook Definition API: GET https://{WorkspaceID w/o (-)}.zxy.w.api.fabric.microsoft.com/{WorkspaceID}/notebooks/getDefinition Get location API: GET {location}/resultnotebook-content.pyBase64 から JSON に変換し、変換されたコンテンツをコピーしてから、制限付き lakehouse の値で次の値を更新した後、JSON から Base64 にコンテンツを変換し直します。更新された要求本文を使用して、定義を含むノートブックを作成します。
Create Notebook API: GET https://{WorkspaceID w/o (-)}.zxy.w.api.fabric.microsoft.com/{WorkspaceID}/notebooks Get location API: GET {location}/result
手順 6: 開いているワークスペースにパイプラインを作成する
開いているワークスペースで、Fabric ポータルまたは API を使用してパイプラインを作成します。
ノートブック アクティビティを追加します。
[設定] で、接続を作成します。
制限付きワークスペースを選択します。
ノートブック ID をパラメーターとして追加します。
@pipeline().parameters.notebookIdパイプライン パラメーターに、制限されたワークスペースの実際のノートブック ID を入力します。
パイプラインを保存し、パイプライン ID をコピーします。
手順 7: API を使用してパイプラインを実行する
API を使用してパイプラインをトリガーします。 たとえば、ブルーノを使用します。
パイプライン実行の API エンドポイントの形式を次に示します。
https://{openWsIdWithoutDashes}.zxy.w.api.fabric.microsoft.com/v1/workspaces/{openWsId}/items/{pipelineId}/jobs/instances?jobType=Pipeline` Get location API: GET {location}実行状態が完了するまで待ちます。 ファブリック ポータルの [モニター ] ページで状態を確認できます。
手順 8: テーブルの作成を確認する
制限付きワークスペースのレイクハウスで Storage Explorer を開きます。
新しいテーブルが作成されたことを確認します。
List Tables API を使用して、lakehouse テーブルを取得します。
List Tables API: GET https://{openWsIdWithoutDashes}.zxy.w.api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}/tables