Udostępnij przez


Używanie potoku do uzyskiwania dostępu do usługi Lakehouse w obszarze roboczym z ograniczeniami dla ruchu przychodzącego z otwartego obszaru roboczego

Za pomocą potoku można ustanowić komunikację między obszarami roboczymi pomiędzy otwartym obszarem roboczym a obszarem roboczym, który ogranicza przychodzący dostęp publiczny. Na przykład możesz utworzyć potok w otwartym obszarze roboczym, aby uzyskać dostęp do usługi Lakehouse w obszarze roboczym z ograniczeniami dla ruchu przychodzącego. Ta konfiguracja umożliwia notesowi w obszarze roboczym 1 bezpieczny dostęp do usługi Lakehouse i odczytywanie tabel usługi Delta Lake w obszarze roboczym 2 bez uwidaczniania ich do publicznego dostępu.

Krok 1. Tworzenie obszarów roboczych

Potrzebujesz zarówno otwartego obszaru roboczego, jak i ograniczonego obszaru roboczego. W tym artykule opisano obszary robocze w następujący sposób:

  • Źródłowy obszar roboczy to otwarty obszar roboczy bez ograniczeń dostępu publicznego. Jest to miejsce, w którym tworzysz ciąg.
  • Docelowy obszar roboczy to ograniczony obszar roboczy z ograniczeniem dostępu publicznego dla ruchu przychodzącego. Jest to miejsce, w którym tworzysz lakehouse.

Aby utworzyć obszary robocze, wykonaj następujące kroki:

  1. Utwórz dwa obszary robocze w usłudze Microsoft Fabric. Aby uzyskać szczegółowe informacje, zobacz Tworzenie obszaru roboczego.

  2. W ustawieniach dzierżawy włącz ochronę dostępu przychodzącego na poziomie obszaru roboczego.

  3. W przypadku docelowego obszaru roboczego skonfiguruj łącza prywatne na poziomie obszaru roboczego.

Krok 2. Tworzenie magazynu lakehouse w ograniczonym obszarze roboczym

Utwórz magazyn lakehouse w docelowym (ograniczonym) obszarze roboczym przy użyciu następującego interfejsu API tworzenia usługi Lakehouse:

POST https://{workspaceid}.z{xy}.w.api.fabric.microsoft.com/workspaces/{workspaceID}/lakehouses

Zrzut ekranu przedstawiający tworzenie jeziora.

Krok 3. Tworzenie zarządzanego prywatnego punktu końcowego

Utwórz zarządzany prywatny punkt końcowy w obszarze roboczym źródłowym (otwartym). Użyj ustawienia Obszar roboczy w portalu lub następującego interfejsu API:

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

W tym kodzie {workspaceFQDN} jest {workspaceID}.z{xy}.w.api.fabric.microsoft.com.

Na przykład: POST https://aaaaaaaa000011112222bbbbbbbbbbbb.zaa.w.api.fabric.microsoft.com/v1/workspaces/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb/managedPrivateEndpoints.

Parametr targetPrivateLinkResourceId jest identyfikatorem zasobu usługi Azure Private Link w ograniczonym obszarze roboczym. Aby utworzyć zarządzany prywatny punkt końcowy w docelowym obszarze roboczym, potrzebny jest ten identyfikator zasobu.

Zrzut ekranu przedstawiający interfejs API do tworzenia zarządzanego prywatnego punktu końcowego.

Ten identyfikator zasobu można znaleźć na platformie Azure, wyświetlając kod JSON zasobu dla obszaru roboczego. Upewnij się, że identyfikator obszaru roboczego w formacie JSON jest zgodny z zamierzonym docelowym obszarem roboczym.

Zrzut ekranu przedstawiający sposób pobierania identyfikatora zasobu usługi Private Link w pliku JSON zasobu.

Właściciel usługi Private Link dla obszaru roboczego 2 musi zatwierdzić żądanie zarządzanego prywatnego punktu końcowego w centrum Azure Private Link>Oczekujące połączenia.

Krok 4. Przekazywanie tabeli Delta Lake do struktury lakehouse.

Użyj Eksploratora Azure Storage, aby przesłać folder dla tabeli Delta Lake do zarządzanego magazynu w lakehouse z ograniczeniami.

  1. Przejdź do Eksploratora usługi Storage, wybierz ikonę połączenia w menu po lewej stronie, a następnie wybierz kontener lub katalog usługi ADLS Gen2.

  2. Zaloguj się przy użyciu protokołu OAuth.

  3. Wprowadź nazwę wyświetlaną magazynu i wprowadź adres URL kontenera danych blob w następującym formacie:

    https://{workspaceID}.z{xy}.onelake.fabric.microsoft.com/{workspaceID}/{lakehouseID}

    W tym kodzie workspaceID jest identyfikatorem obszaru roboczego bez myślników, a {xy} to pierwsze dwa znaki identyfikatora obszaru roboczego.

    Zrzut ekranu przedstawiający wprowadzanie informacji o połączeniu.

  4. Wybierz pozycję Połącz. Magazyn powinien być teraz wyświetlany w widoku eksploratora.

  5. W folderze Tables załaduj tabelę Delta Lake, której chcesz użyć. W tym przykładzie użyto tabeli customers .

    Zrzut ekranu przedstawiający opcję przekazania folderu.

Krok 5. Tworzenie notesu w ograniczonym obszarze roboczym

Utwórz notes odczytany z tabeli i zapis do nowej tabeli. W tym celu utwórz notes w otwartym obszarze roboczym przy użyciu interfejsu użytkownika:

  1. W otwartym obszarze roboczym utwórz usługę Lakehouse z tą samą tabelą i podobnym notesem przy użyciu interfejsu użytkownika.

    Zrzut ekranu przedstawiający stronę ładowania pliku do nowej tabeli.

  2. Połącz lakehouse w notatniku i uruchom skrypt do utworzenia nowej tabeli.

    df = spark("SELECT * FROM Lakehouse_Open.customers")
    display(df)
    df.write.mode("overwrite").saveAsTable("Lakehouse_Open.customersnew")
    

    Zrzut ekranu przedstawiający uruchamianie skryptu do tworzenia nowej tabeli.

  3. Zapisz notatnik.

  4. Pobierz definicję notatnika za pośrednictwem interfejsu API i uzyskaj wynik dotyczący lokalizacji.

    Get Notebook Definition API: GET https://{WorkspaceID w/o (-)}.zxy.w.api.fabric.microsoft.com/{WorkspaceID}/notebooks/getDefinition
    
    Get location API: GET {location}/result
    
  5. Przekonwertuj notebook-content.py z base64 na JSON, skopiuj przekonwertowaną zawartość, a następnie przekonwertuj zawartość z powrotem z formatu JSON na base64 po zaktualizowaniu następujących wartości przy użyciu wartości z ograniczonego magazynu lakehouse.

  6. Utwórz notes z definicją przy użyciu zaktualizowanej treści żądania:

    Create Notebook API: GET https://{WorkspaceID w/o (-)}.zxy.w.api.fabric.microsoft.com/{WorkspaceID}/notebooks
    
    Get location API: GET {location}/result
    

Krok 6. Tworzenie potoku w otwartej przestrzeni roboczej

  1. W otwartym obszarze roboczym utwórz potok przy użyciu portalu Fabric lub interfejsu API.

  2. Dodaj działanie notesu.

  3. W obszarze Ustawienia utwórz połączenie.

    Zrzut ekranu przedstawiający okienko służące do łączenia źródła danych.

  4. Wybierz ograniczony obszar roboczy.

    Zrzut ekranu przedstawiający wybieranie obszaru roboczego z ograniczeniami.

  5. Dodaj identyfikator notesu jako parametr:

    @pipeline().parameters.notebookId

  6. W parametrach potoku przetwarzania wprowadź rzeczywisty identyfikator notesu z ograniczonego obszaru roboczego.

    Zrzut ekranu przedstawiający miejsce dodawania identyfikatora notesu.

  7. Zapisz potok i skopiuj identyfikator potoku.

Krok 7. Uruchamianie potoku za pośrednictwem interfejsu API

  1. Wyzwól potok za pomocą API. Na przykład użyj Bruno.

    Oto format punktu końcowego interfejsu API dla przebiegu potoku:

    https://{openWsIdWithoutDashes}.zxy.w.api.fabric.microsoft.com/v1/workspaces/{openWsId}/items/{pipelineId}/jobs/instances?jobType=Pipeline`
    
    Get location API: GET {location}
    
  2. Poczekaj na zakończenie statusu przebiegu. Stan można sprawdzić na stronie Monitor w portalu Fabric.

    Zrzut ekranu przedstawiający stronę Monitora.

Krok 8. Weryfikowanie tworzenia tabeli

  1. Otwórz Eksplorator magazynu w obszarze roboczym lakehouse z ograniczeniami.

  2. Upewnij się, że nowa tabela została utworzona.

  3. Użyj interfejsu API tabel list, aby pobrać tabele lakehouse:

    List Tables API: GET https://{openWsIdWithoutDashes}.zxy.w.api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}/tables