Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
For å påkalle Fabric User-datafunksjonselementer fra et konsollprogram i Python, kan du sende HTTP-forespørsler til funksjonsendepunktet som må utføres. I denne hurtigstarten lærer du hvordan du konfigurerer en Python-app ved hjelp av Visual Studio Code.
Forutsetninger
- Installer Visual Studio Code.
- Last ned Python 3.1 på den lokale maskinen.
- Opprett en Microsoft Fabric-konto gratis hvis du ikke har en.
- Opprett et arbeidsområde.
- Opprett et element for brukerdatafunksjoner, og publiser det. Se disse artiklene om hvordan du oppretter en i Visual Studio Code , eller hvordan du oppretter en i portalen. Publiser endringene slik at elementet for brukerdatafunksjoner er klart til å aktiveres.
Opprette en Microsoft Entra-app
Følgende trinn forklarer hvordan du konfigurerer støtte for en ReactJS-applikasjon i Microsoft Entra.
Registrer et program ved hjelp av trinnene som er beskrevet på Hurtigstart: Registrer et program med Microsoft-identitetsplattformen.
Verdiene for Microsoft Entra-appens program-ID (klient) og katalog-ID (leier) vises i Sammendrag-boksen. Registrer disse verdiene fordi de er nødvendige senere.
Under listen Behandle velger du API-tillatelser, og deretter Legg til tillatelse.
Legg til PowerBI-tjenesten, velg Delegerte tillatelser, og velg UserDataFunction.Execute.All eller element. Utfør.Alle tillatelser. Bekreft at administratorsamtykke ikke er nødvendig.
Gå tilbake til Behandle-innstillingen , og velg Godkjenning>Legg til en plattform>Enkeltsideprogram.
For lokale utviklingsformål legger du til
http://localhost:3000under Omadresser URIer og bekrefter at programmet er aktivert for autorisasjonskodeflyten med Proof Key for Code Exchange (PKCE). Velg Konfigurer-knappen for å lagre endringene. Hvis programmet støter på en feil relatert til forespørsler om kryssopprinnelse, legger du til plattformen for mobil- og skrivebordsprogrammer i forrige trinn med samme omdirigerings-URI.Rull ned til
, og velgAvanserte innstillinger Ja forAktiver følgende underTillat offentlige klientflyter .
Opprett et konsollprogram
Funksjonen må være offentlig tilgjengelig. Hold pekeren over navnet på funksjonen i funksjonsutforskeren, og velg ellipseikonet (...) som vises, og velg deretter Egenskaper. Aktiver offentlig tilgangi Egenskaper-ruten som åpnes. Du bør også notere deg offentlige URL-adressen du kan bruke i Python-programmet.
Opprett en ny mappe for Python-appen, for eksempel min-data-app-. Åpne mappen i Visual Studio Code.
Konfigurer det virtuelle Python-miljøet i Visual Studio Code. Hvis du vil opprette lokale miljøer i Visual Studio Code, åpner du kommandopaletten med Ctrl+Shift+P, og deretter søker du etter og velger kommandoen Python: Opprett miljø.
- Kommandoen presenterer en liste over miljøtyper og velger venv.
- Velg Python-tolkeversjonen Python 3.11.
Kjør følgende kommando for å aktivere det virtuelle miljøet i Visual Studio Code-terminalen.
venv\Scripts\activate.batDeretter kjører du kommandoen for å installere Python-bibliotekene som kreves for dette eksemplet.
pip install azure-identity, requestsOpprett en
app.pyfil, og bruk koden til å aktivere elementet for brukerdatafunksjoner.from azure.identity import InteractiveBrowserCredential import requests import json # Acquire a token # DO NOT USE IN PRODUCTION. # Below code to acquire token is to test the User data function endpoint and is for the purpose of development only. # For production, always register an application in a Microsoft Entra ID tenant and use the appropriate client_id and scopes. app = InteractiveBrowserCredential() scp = 'https://analysis.windows.net/powerbi/api/user_impersonation' result = app.get_token(scp) if not result.token: print('Error:', "Could not get access token") # Prepare headers headers = { 'Authorization': f'Bearer {result.token}', 'Content-Type': 'application/json' } FUNCTION_URL = '<REPLACE WITH USER DATA FUNCTION URL>' # Prepare the request data data = '{"name": "John"}' # JSON payload to send to the Azure Function headers = { # "Authorization": f"Bearer {access_token}", "Content-Type": "application/json" } try: # Call the user data function public URL response = requests.post(FUNCTION_URL, json=data, headers=headers) response.raise_for_status() print(json.dumps(response.json())) except Exception as e: print({"error": str(e)}, 500) if __name__ == "__main__": app.run(debug=True)Notat
Eksemplet er for utviklingsformål bare. Oppdater programmet til å bruke Microsoft Entra ID-godkjenning før du bruker programmet for et produksjonsbrukstilfelle.
Aktivere en funksjon fra et eksternt program
Funksjoner kan aktiveres ved å utstede et REST-kall til URL-adressen for endepunktet. Velg funksjonen du vil aktivere i Funksjonsutforsker, og velg URL-adresse for kopieringsfunksjon. Du kan også aktivere eller deaktivere muligheten til å bruke denne URL-adressen eksternt fra Egenskaper-menyen.
Bruk deretter denne URL-adressen i programmet til å aktivere funksjonen. Se Aktivere brukerdatafunksjoner fra et program
Utdataskjema
Når du aktiverer en brukerdatafunksjon fra et eksternt program, har utdataskjemaet følgende format:
{
"functionName": "hello_fabric",
"invocationId": "1234567890",
"status": "Succeeded | BadRequest | Failed | Timeout | ResponseTooLarge",
"output": /*shows the result of the function dependeing on the output type*/,
"errors": [
{
"name": "Error name",
"message": "Error message",
"properties": {
/*Key value pairs custom to error*/
}
},
]
}
Følgende egenskaper returneres:
- functionName: Navnet på funksjonen som ble utført.
- invocationId: Aktiverings-ID-en for kjøring av en funksjon.
-
status: Resultatet av funksjonens utførelse og støttede verdier er
Succeeded,BadRequest,FailedTimeout, ogResponseTooLarge. - utdata: Utdataverdien som returneres av funksjonen.
- feil: Hvis det ble registrert feil, returnerer dette en liste over hver feil med navn, feilmelding og feilegenskaper.
Svarkoder
Funksjonen returnerer følgende HTTP-koder som følge av kjøringen.
| svarkode | Budskap | Beskrivelse |
|---|---|---|
| 200 | Suksess | Forespørselen var vellykket. |
| 400 | Ugyldig forespørsel | Forespørselen var ikke gyldig. Dette svaret kan skyldes manglende eller feil inndataparameterverdier, datatyper eller navn. Denne responsen kan også skyldes at offentlig tilgang er slått av for en funksjon. |
| 403 | Forbudt | Svaret var for stort og aktiveringen mislyktes. |
| 408 | Be om tidsavbrudd | Forespørselen mislyktes på grunn av at kjøringen tok mer enn 200 sekunder. |
| 409 | Konflikt | Forespørselen kunne ikke fullføres på grunn av en motstridende tilstand. Dette kan være forårsaket av et ubehandlet unntak eller en feil med brukerlegitimasjon. |
| 422 | Ugyldig forespørsel | Forespørselen mislyktes på grunn av en UserThrownError som ble utløst i funksjonen. |
| 500 | Intern serverfeil | Forespørselen mislyktes på grunn av en intern feil i tjenesten. |
Feilsøking og testing
Feilsøk programmet i Visual Studio Code ved hjelp av python-feilsøkingsprogrammet. Legg til breakpoints om nødvendig for å feilsøke hvis det oppstår problemer. Finn ut mer