Udostępnij przez


Zastosuj interfejs API Livy do przesyłania i wykonywania zadań sesji platformy Spark z poświadczeniami użytkownika.

Dotyczy:✅ Inżynieria Danych i Nauka o Danych w usłudze Microsoft Fabric

Rozpocznij pracę z interfejsem Livy API dla Fabric Data Engineering, tworząc Lakehouse; uwierzytelnij się przy użyciu tokenu Microsoft Entra; odkryj punkt końcowy Livy API; przesyłaj zadania wsadowe lub sesyjne z zdalnego klienta do zasobów obliczeniowych systemu Fabric Spark; i monitoruj wyniki.

Wymagania wstępne

Wybieranie klienta interfejsu API REST

Do interakcji z punktami końcowymi interfejsu API REST można używać różnych języków programowania lub klientów graficznego interfejsu UŻYTKOWNIKA. W tym artykule użyjemy programu Visual Studio Code. Program Visual Studio Code musi być skonfigurowany z użyciem Jupyter Notebooks, PySpark oraz Microsoft Authentication Library (MSAL) dla Python

Jak autoryzować żądania interfejsu API usługi Livy przy użyciu tokenu entra SPN

Aby pracować z interfejsami API Fabric, w tym API Livy, musisz najpierw utworzyć aplikację Microsoft Entra i utworzyć tajny klucz, a następnie użyć tego klucza w swoim kodzie. Aplikacja musi być zarejestrowana i skonfigurowana odpowiednio do wykonywania wywołań interfejsu API w usłudze Fabric. Aby uzyskać więcej informacji, zobacz Dodawanie poświadczeń aplikacji i zarządzanie nimi w identyfikatorze Entra firmy Microsoft

Po utworzeniu rejestracji aplikacji utwórz klucz tajny klienta.

Zrzut ekranu przedstawiający rejestrację aplikacji Entra i dodawanie tajnego klucza klienta.

  1. Podczas tworzenia tajnego klucza klienta pamiętaj, aby skopiować wartość. Będzie to potrzebne później w kodzie i nie będzie można ponownie zobaczyć sekretu. Będziesz również potrzebować identyfikatora aplikacji (klienta) i identyfikatora katalogu (dzierżawcy) oprócz tajnego wpisu w kodzie.

  2. Następnie musimy dodać klucz tajny klienta do naszego obszaru roboczego.

    Zrzut ekranu przedstawiający opcje zarządzania dostępem w ustawieniach usługi Lakehouse.

  3. Wyszukaj wpis tajny klienta Entra i dodaj ten wpis tajny do obszaru roboczego i upewnij się, że nowo dodany wpis tajny ma uprawnienia administratora.

    Zrzut ekranu przedstawiający dodawanie nowej głównej jednostki usługi SPN do obszaru roboczego.

Jak autoryzować żądania interfejsu API usługi Livy przy użyciu tokenu aplikacji Entra

Aby pracować z interfejsami API Fabric, w tym API Livy, najpierw musisz utworzyć aplikację Microsoft Entra i uzyskać token. Aplikacja musi być zarejestrowana i skonfigurowana odpowiednio do wykonywania wywołań interfejsu API w usłudze Fabric. Aby uzyskać więcej informacji, zobacz Rejestrowanie aplikacji przy użyciu Platforma tożsamości Microsoft.

Istnieje wiele uprawnień zakresu Microsoft Entra wymaganych do wykonywania zadań Livy. W tym przykładzie użyto prostego kodu Spark oraz dostępu do magazynu oraz SQL.

  • Code.AccessAzureDataExplorer.All

  • Code.AccessAzureDataLake.All

  • Code.AccessAzureKeyvault.All

  • Code.AccessFabric.All

  • Code.AccessStorage.All (dostęp do przechowywania kodu)

  • Element.Odczyt.Zapis.Wszystko

  • Lakehouse.Wykonaj.Wszystko

  • Przestrzeń robocza.OdczytZapis.Wszystko

    Zrzut ekranu przedstawiający uprawnienia interfejsu API usługi Livy w centrum administracyjnym firmy Microsoft Entra.

Uwaga

W publicznej wersji zapoznawczej te zakresy mogą ulec zmianie w miarę dodawania kilku bardziej szczegółowych zakresów. Gdy pojawią się te zmiany zakresu, twoja aplikacja Livy może nie działać poprawnie. Sprawdź tę listę, ponieważ zostanie ona zaktualizowana o dodatkowe zakresy.

Niektórzy klienci chcą mieć bardziej szczegółowe uprawnienia niż poprzednia lista. Możesz usunąć element Item.ReadWrite.All i zastąpić tymi bardziej szczegółowymi uprawnieniami zakresu:

  • Code.AccessAzureDataExplorer.All
  • Code.AccessAzureDataLake.All
  • Code.AccessAzureKeyvault.All
  • Code.AccessFabric.All
  • Code.AccessStorage.All (dostęp do przechowywania kodu)
  • Lakehouse.Wykonaj.Wszystko
  • Lakehouse.ReadWrite.All
  • Przestrzeń robocza.OdczytZapis.Wszystko
  • Notebook.ReadWrite.All
  • SparkJobDefinition.ReadWrite.All
  • MLModel.ReadWrite.All
  • MLExperiment.ReadWrite.All
  • Dataset.ReadWrite.All

Podczas rejestrowania aplikacji będzie potrzebny zarówno identyfikator aplikacji (klienta), jak i identyfikator katalogu (najemcy).

Zrzut ekranu przedstawiający przegląd aplikacji interfejsu API Livy w centrum administracyjnym Microsoft Entra.

Uwierzytelniony użytkownik wywołujący interfejs API usługi Livy musi być członkiem obszaru roboczego, w którym znajdują się zarówno elementy interfejsu API, jak i źródła danych, z roli współtwórcy. Aby uzyskać więcej informacji, zobacz Przyznawanie użytkownikom dostępu do obszarów roboczych.

Jak odnaleźć punkt końcowy interfejsu API Livy w usłudze Fabric

Artefakt Lakehouse jest wymagany do uzyskania dostępu do punktu końcowego Livy. Po utworzeniu usługi Lakehouse punkt końcowy interfejsu API usługi Livy może znajdować się w panelu ustawień.

Zrzut ekranu przedstawiający punkty końcowe interfejsu API usługi Livy w ustawieniach usługi Lakehouse.

Punkt końcowy interfejsu API usługi Livy będzie postępować zgodnie z tym wzorcem:

https://api.fabric.microsoft.com/v1/workspaces/><ws_id>/lakehouses/<lakehouse_id>/livyapi/versions/2023-12-01/

Adres URL jest dołączany z <sesjami> lub <partiami> w zależności od tego, co wybierzesz.

Pobierz pliki Swagger interfejsu API Livy

Pełne pliki programu Swagger dla interfejsu API usługi Livy są dostępne tutaj.

Prześlij zadania interfejsu API Livy

Po zakończeniu konfiguracji API Livy możesz przesyłać zadania jako wsadowe lub sesyjne.

Integracja ze środowiskami sieci szkieletowej

Domyślnie ta sesja interfejsu API usługi Livy działa na domyślnej puli początkowej dla obszaru roboczego. Alternatywnie możesz użyć środowisk Fabric Tworzenie, konfigurowanie i używanie środowiska w usłudze Microsoft Fabric, aby dostosować pulę Spark, z której sesja interfejsu API Livy korzysta do tych zadań Spark.

Aby użyć środowiska Fabric w sesji Livy Spark, zaktualizuj kod JSON, aby uwzględnić tę zawartość.

create_livy_session = requests.post(livy_base_url, headers = headers, json={
    "conf" : {
        "spark.fabric.environmentDetails" : "{\"id\" : \""EnvironmentID""}"}
    }
)

Aby użyć Fabric Environment w sesji wsadowej Livy Spark, wystarczy zaktualizować dane JSON, jak pokazano poniżej.

payload_data = {
"name":"livybatchdemo_with"+ newlakehouseName,
"file":"abfss://YourABFSPathToYourPayload.py", 
"conf": {
    "spark.targetLakehouse": "Fabric_LakehouseID",
    "spark.fabric.environmentDetails" : "{\"id\" : \""EnvironmentID"\"}"  # remove this line to use starter pools instead of an environment, replace "EnvironmentID" with your environment ID
    }
}

Jak monitorować historię żądań

Możesz użyć centrum monitoringu, aby wyświetlić wcześniejsze zgłoszenia do interfejsu API Livy i rozwiązywać wszelkie błędy zgłoszenia.

Zrzut ekranu przedstawiający poprzednie zgłoszenia interfejsu API usługi Livy w centrum monitoringu.