Partager via


Accéder à un lakehouse dans un espace de travail restreint entrant à partir d’un bloc-notes dans un espace de travail ouvert

Vous pouvez utiliser un point de terminaison privé managé pour établir une communication inter-espaces de travail entre un espace de travail ouvert et un espace de travail qui restreint l’accès public entrant. Par exemple, si vous souhaitez accéder à un lakehouse dans un espace de travail à accès restreint entrant à partir d’un bloc-notes dans un espace de travail ouvert, vous pouvez configurer un point de terminaison privé géré pour établir une connexion sécurisée entre les deux espaces de travail.

Dans le diagramme suivant, l’espace de travail ouvert (Espace de travail 1) a un point de terminaison privé managé qui se connecte à l’espace de travail restreint (Espace de travail 2). Cette configuration permet au notebook dans Workspace 1 d’accéder en toute sécurité au lakehouse et de lire les tables Delta Lake dans Workspace 2 sans les exposer à l’accès public.

Diagramme illustrant la façon dont les points de terminaison privés managés peuvent établir une connexion à un espace de travail défini pour refuser l’accès public.

Cet article explique comment créer un point de terminaison privé managé via les paramètres de l’espace de travail dans le portail ou l’API Microsoft Fabric.

Étape 1 : Créer les espaces de travail

Créez des espaces de travail dans Fabric. Cette configuration implique à la fois un espace de travail ouvert et un espace de travail restreint. Cet article fait référence aux espaces de travail comme suit :

  • L’espace de travail source est l’espace de travail ouvert sans restriction d’accès public.
  • L’espace de travail cible est l’espace de travail qui restreint l’accès public entrant.

Cet article fait également référence au nom de domaine complet (FQDN) de l’espace de travail. Le format est le suivant :

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

Au format FQDN, {workspaceID} correspond à l’ID d’espace de travail sans tirets et {xy} correspond aux deux premières lettres de l’ID d’objet de l’espace de travail. Pour plus d’informations, consultez Connexion aux espaces de travail.

Vous trouverez un ID d’espace de travail en ouvrant la page de l’espace de travail dans le portail Fabric et en notant l’ID après groups/ l’URL. Vous pouvez également trouver un FQDN de l'espace de travail à l'aide de l'API List Workspace ou de l'API Get Workspace.

Étape 2 : Créer un point de terminaison privé managé

Créez un point de terminaison privé managé dans l’espace de travail source (open). Utilisez le paramètre Espace de travail dans le portail ou l’API suivante :

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

Dans ce code, {workspaceFQDN} c’est {workspaceID}.z{xy}.w.api.fabric.microsoft.com.

Par exemple : POST https://aaaaaaaa000011112222bbbbbbbbbbbb.zaa.w.api.fabric.microsoft.com/v1/workspaces/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb/managedPrivateEndpoints.

Le targetPrivateLinkResourceId paramètre est l’ID de ressource du service Azure Private Link dans l’espace de travail restreint. Pour créer un point de terminaison privé managé dans l’espace de travail cible, vous avez besoin de cet ID de ressource.

Capture d’écran montrant l’API pour la création d’un point de terminaison privé managé.

Vous trouverez cet ID de ressource dans Azure en affichant le JSON de ressource de l’espace de travail. Vérifiez que l’ID d’espace de travail dans le JSON correspond à l’espace de travail cible prévu.

Capture d’écran montrant comment obtenir l’ID de ressource Private Link dans un fichier JSON de ressource.

Le propriétaire du service Private Link pour Workspace 2 doit approuver la demande d'un point de terminaison privé managé dans le centre de liaison privée Azure>En attente de connexions.

Étape 3 : Créer un lakehouse dans l’espace de travail restreint

Créez un lakehouse dans l’espace de travail cible (restreint) à l’aide de l’API Create Lakehouse suivante :

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

Dans ce code, {workspaceFQDN} c’est {workspaceID}.z{xy}.w.api.fabric.microsoft.com.

Par exemple : POST https://aaaaaaaa000011112222bbbbbbbbbbbb.zaa.w.api.fabric.microsoft.com/v1/workspaces/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb/lakehouses.

Capture d’écran montrant la création d’un lakehouse dans un espace de travail cible.

Étape 4 : Charger une table Delta Lake dans la lakehouse

Utilisez l’Explorateur de Stockage Azure pour charger le dossier associé à votre table Delta Lake dans le stockage géré du lakehouse restreint :

  1. Accédez à l’Explorateur Stockage, sélectionnez l’icône de connexion dans le menu de gauche, puis sélectionnez conteneur ou répertoire ADLS Gen2.

  2. Connectez-vous à l’aide d’OAuth.

  3. Entrez un nom d'affichage pour le stockage, puis entrez l'URL du conteneur blob au format suivant :

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

    Dans ce code, {workspaceFQDN} c’est {workspaceID}.z{xy}.onelake.fabric.microsoft.com.

    Par exemple : POST https://aaaaaaaa000011112222bbbbbbbbbbbb.zaa.w.api.fabric.microsoft.com/v1/workspaces/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb/bbbbbbbb-1111-2222-3333-cccccccccccc.

    Capture d’écran montrant l’entrée des informations de connexion.

  4. Sélectionnez Connecter. Le stockage doit maintenant apparaître dans l’affichage Explorateur.

  5. Sous le dossier Tables , chargez la table Delta Lake que vous souhaitez utiliser. Cet exemple utilise la table customers .

    Capture d’écran montrant l’option de chargement d’un dossier.

Étape 5 : Créer un bloc-notes dans l’espace de travail source

Créez un bloc-notes et connectez-le au lakehouse restreint comme suit :

  1. Dans l’espace de travail source, accédez aux blocs-notes.

  2. Sélectionnez + Nouveau bloc-notes. 

  3. Sélectionnez runtime Spark. 

  4. Connectez-vous à l’espace de travail cible dans le volet Explorateur .

  5. Collez le code suivant :

    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"
    )
    

    Assurez-vous que :

    • Le chemin du pilote Azure Blob File System (ABFSS) est compatible avec le DNS et l'emplacement de la table de votre lakehouse.
    • L’accès réseau entre les espaces de travail ouverts et restreints est correctement établi via le point de terminaison privé.
  6. Exécutez le notebook. Si vous configurez correctement le point de terminaison privé et les autorisations, le notebook se connecte et affiche le contenu de la table Delta Lake à partir du lakehouse restreint.