Del via


Bruk Livy-API-en til å sende inn og kjøre Spark-øktjobber med brukerlegitimasjon

Gjelder for:✅ Dataingeniør ing og datavitenskap i Microsoft Fabric

Kom i gang med Livy API for Fabric Data Engineering ved å opprette et Lakehouse; godkjenne med et Microsoft Entra-token; oppdag Livy API-endepunktet. send inn enten satsvise jobber eller øktjobber fra en ekstern klient til Fabric Spark-databehandling. og overvåk resultatene.

Forutsetning

Velge en REST-API-klient

Du kan bruke ulike programmeringsspråk eller GUI-klienter til å samhandle med REST API-endepunkter. I denne artikkelen bruker vi Visual Studio Code. Visual Studio Code må konfigureres med Jupyter-notatblokker, PySpark og Microsoft Authentication Library (MSAL) for Python

Slik godkjenner du Livy API-forespørsler med et Entra SPN-token

Hvis du vil arbeide med Stoff-API-er, inkludert Livy API, må du først opprette et Microsoft Entra-program og opprette en hemmelighet og bruke denne hemmeligheten i koden din. Programmet må være registrert og konfigurert tilstrekkelig til å utføre API-anrop mot Fabric. Hvis du vil ha mer informasjon, kan du se Legge til og behandle programlegitimasjon i Microsoft Entra ID

Når du har opprettet appregistreringen, oppretter du en klienthemmelighet.

Skjermbilde som viser Entra-appregistrering og legger til en klienthemmelighet.

  1. Når du oppretter klienthemmeligheten, må du passe på å kopiere verdien. Du trenger dette senere i koden, og hemmeligheten kan ikke ses på nytt. Du trenger også program-ID-en (klient) og katalogen (leier-ID) i tillegg til hemmeligheten i koden.

  2. Deretter må vi legge til klienthemmeligheten i arbeidsområdet vårt.

    Skjermbilde som viser innstillinger for Administrer tilgangsalternativer i Lakehouse.

  3. Søk etter Entra-klienthemmeligheten, og legg til den hemmeligheten i arbeidsområdet, og kontroller at den nylig tilføyde hemmeligheten har administratortillatelser.

    Skjermbilde som viser hvordan du legger til den nye SPN-tjenestekontohaveren i arbeidsområdet.

Slik godkjenner du Livy API-forespørsler med et Entra-apptoken

Hvis du vil arbeide med Stoff-API-er, inkludert Livy API, må du først opprette et Microsoft Entra-program og skaffe et token. Programmet må være registrert og konfigurert tilstrekkelig til å utføre API-anrop mot Fabric. Hvis du vil ha mer informasjon, kan du se Registrere et program med Microsofts identitetsplattform.

Det er mange tillatelser for Microsoft Entra-omfang som kreves for å utføre Livy-jobber. Dette eksemplet bruker enkel Spark-kode + lagringstilgang + SQL:

  • Code.AccessAzureDataExplorer.All

  • Code.AccessAzureDataLake.All

  • Code.AccessAzureKeyvault.All

  • Code.AccessFabric.All

  • Code.AccessStorage.All

  • Item.ReadWrite.All

  • Lakehouse.Execute.All

  • Workspace.ReadWrite.All

    Skjermbilde som viser Livy API-tillatelser i administrasjonssenteret for Microsoft Entra.

Merk

Under offentlig forhåndsvisning kan disse omfangene endres etter hvert som vi legger til noen flere detaljerte omfang. Når disse omfangsendringene skjer, kan Livy-appen brytes. Kontroller listen slik den vil bli oppdatert med tilleggsomfangene.

Noen kunder ønsker mer detaljerte tillatelser enn den forrige listen. Du kan fjerne Item.ReadWrite.All og erstatte med disse mer detaljerte omfangstillatelsene:

  • Code.AccessAzureDataExplorer.All
  • Code.AccessAzureDataLake.All
  • Code.AccessAzureKeyvault.All
  • Code.AccessFabric.All
  • Code.AccessStorage.All
  • Lakehouse.Execute.All
  • Lakehouse.ReadWrite.All
  • Workspace.ReadWrite.All
  • Notebook.ReadWrite.All
  • SparkJobDefinition.ReadWrite.All
  • MLModel.ReadWrite.All
  • MLExperiment.ReadWrite.All
  • Datasett.ReadWrite.All

Når du registrerer programmet, trenger du både program-ID-en (klient)- og katalog-ID-en (leier).

Skjermbilde som viser oversikt over Livy API-appen i administrasjonssenteret for Microsoft Entra.

Den godkjente brukeren som kaller Livy-API-en, må være et arbeidsområdemedlem der både API-en og datakildeelementene er plassert med en bidragsyterrolle. Hvis du vil ha mer informasjon, kan du se Gi brukere tilgang til arbeidsområder.

Slik oppdager du Fabric Livy API-endepunktet

En Lakehouse-artefakt er nødvendig for å få tilgang til Livy-endepunktet. Når Lakehouse er opprettet, kan Livy API-endepunktet være plassert i innstillingspanelet.

Skjermbilde som viser Livy API-endepunkter i Lakehouse-innstillinger.

Endepunktet for Livy-API-en følger dette mønsteret:

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

NETTADRESSEn legges til med økter <> eller <grupper>, avhengig av hva du velger.

Last ned Livy API Swagger-filene

De fullstendige swagger-filene for Livy-API-en er tilgjengelige her.

Sende inn en Livy API-jobb

Nå som oppsettet av Livy-API-en er fullført, kan du velge å sende inn enten satsvise jobber eller øktjobber.

Integrering med stoffmiljøer

Som standard kjører denne Livy API-økten mot standard startutvalg for arbeidsområdet. Alternativt kan du bruke Fabric Environments Create, configure, and use an environment in Microsoft Fabric to customize the Spark pool that the Livy API session uses for these Spark jobs.

Hvis du vil bruke et stoffmiljø i en Livy Spark-økt, kan du ganske enkelt oppdatere json-en for å inkludere denne nyttelasten.

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

Hvis du vil bruke et stoffmiljø i en Livy Spark-batchøkt, oppdaterer du jsonnyttelasten som vist nedenfor.

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
    }
}

Slik overvåker du forespørselsloggen

Du kan bruke overvåkingshuben til å se dine tidligere Livy API-innsendinger, og feilsøke eventuelle innsendingsfeil.

Skjermbilde som viser tidligere Livy API-innsendinger i overvåkingshuben.