Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Hvis du vil aktivere funktionselementer for stofbrugerdata fra et konsolprogram i Python, kan du sende HTTP-anmodninger til det funktionsslutpunkt, der skal udføres. I denne vejledning lærer du, hvordan du konfigurerer en Python-app ved hjælp af Visual Studio Code.
Forudsætninger
- Installér Visual Studio Code.
- Download Python 3.1- på din lokale computer.
- Opret en Microsoft Fabric-konto gratis, hvis du ikke har en.
- Opret et arbejdsområde.
- Opret et element med brugerdatafunktioner, og publicer det. Se disse artikler om , hvordan du opretter en i Visual Studio Code , eller hvordan du opretter en på portalen. Publicer ændringerne, så elementet brugerdatafunktioner er klar til at blive aktiveret.
Opret en Microsoft Entra-app
Følgende trin forklarer, hvordan du konfigurerer understøttelse af en ReactJS-applikation i Microsoft Entra.
Registrer et program ved hjælp af de trin, der er beskrevet i Hurtig start: Registrer et program med Microsoft-identitetsplatformen.
Værdierne for Microsoft Entra-appprogram-id (klient) og katalog-id (lejer) vises i feltet Oversigt. Registrer disse værdier, fordi de er påkrævet senere.
På listen Administrer skal du vælge API-tilladelserog derefter Tilføj tilladelse.
Tilføj PowerBI-tjeneste, vælg Delegerede tilladelser, og vælg UserDataFunction.Execute.All eller item. Udfør.Alle tilladelser. Bekræft, at administratorsamtykke ikke er påkrævet.
Gå tilbage til indstillingen Administrer, og vælg Godkendelse>Tilføj en platform>Enkeltsidet program.
I forbindelse med lokal udvikling skal du tilføje
http://localhost:3000under Omdirigerings-URI'er og bekræfte, at programmet er aktiveret for godkendelseskodeflowet med proof key for Code Exchange (PKCE). Vælg knappen Konfigurer for at gemme dine ændringer. Hvis programmet støder på en fejl, der er relateret til anmodninger på tværs af oprindelse, skal du tilføje platformen Mobil- og skrivebordsprogrammer i det forrige trin med den samme omdirigerings-URI.Gå tilbage til Godkendelse, rul ned til avancerede indstillinger, og under Tillad offentlige klientflowskal du vælge Ja for at Aktivér følgendepå mobilenheder og stationære computere .
Opret et konsolprogram
Funktionen skal være offentligt tilgængelig. I Funktionsoversigt skal du holde markøren over navnet på funktionen og vælge ellipseikonet (...) , der vises, og derefter vælge Egenskaber. I ruden Egenskaber, der åbnes, skal du aktivere Offentlig adgang. Du bør også notere dig den offentlige URL-adresse, der skal bruges i dit Python-program.
Opret en ny mappe til din Python-app, f.eks. my-data-app. Åbn mappen i Visual Studio Code.
Konfigurer det virtuelle Python-miljø i Visual Studio Code. Hvis du vil oprette lokale miljøer i Visual Studio Code, skal du åbne kommandopaletten med Ctrl+Skift+P og derefter søge efter og vælge kommandoen Python: Opret miljø.
- Kommandoen præsenterer en liste over miljøtyper og vælger venv.
- Vælg Python-fortolkerversionen Python 3.11.
Kør følgende kommando for at aktivere det virtuelle miljø i Visual Studio Code-terminalen.
venv\Scripts\activate.batKør derefter kommandoen for at installere de Python-biblioteker, der skal bruges til dette eksempel.
pip install azure-identity, requestsOpret en
app.pyfil, og brug koden til at aktivere elementet brugerdatafunktioner.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)Seddel
Eksemplet er kun til udviklingsformål. Opdater programmet til at bruge Microsoft Entra ID-godkendelse, før du bruger programmet til en produktionsbrugssag.
Aktivering af en funktion fra et eksternt program
Funktioner kan aktiveres ved at udstede et REST-kald til URL-adressen for slutpunktet. Vælg den funktion, du vil aktivere i Functions Explorer, og vælg Kopiér FUNKTIONs-URL-adresse. Du kan også slå muligheden for at bruge denne URL-adresse eksternt fra menuen Egenskaber.
Brug derefter denne URL-adresse i dit program til at aktivere funktionen. Se Aktivér brugerdatafunktioner fra et program
Outputskema
Når du aktiverer en brugerdatafunktion fra et eksternt program, har outputskemaet 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 egenskaber returneres:
- functionName: Navnet på den funktion, der blev udført.
- invocationId: Aktiverings-id'et for udførelse af en funktion.
-
status: Resultatet af funktionens udførelse og understøttede værdier er
Succeeded,BadRequest,FailedTimeout, ogResponseTooLarge. - output: Den outputværdi, der returneres af funktionen.
- fejl: Hvis der blev registreret fejl, returneres der en liste over hver fejl med deres navn, fejlmeddelelse og fejlegenskaber.
Svarkoder
Funktionen returnerer følgende HTTP-koder som et resultat af udførelsen.
| svarkode | Budskab | Beskrivelse |
|---|---|---|
| 200 | Vellykket | Anmodningen blev fuldført. |
| 400 | Ugyldig anmodning | Anmodningen var ikke gyldig. Dette svar kan skyldes manglende eller forkerte inputparameterværdier, datatyper eller navne. Denne reaktion kan også skyldes, at offentlig adgang er slået fra for en funktion. |
| 403 | Ikke tilladt | Svaret var for stort, og aktiveringen mislykkedes. |
| 408 | Anmod om timeout | Anmodningen mislykkedes, fordi udførelsen tager mere end 200 sekunder. |
| 409 | Conflict | Anmodningen kunne ikke fuldføres på grund af en modstridende tilstand. Dette kan skyldes en ubehandlet undtagelse eller en fejl med brugerlegitimationsoplysninger. |
| 422 | Ugyldig anmodning | Anmodningen mislykkedes på grund af en UserThrownError, der blev udløst i funktionen. |
| 500 | Intern serverfejl | Anmodningen mislykkedes på grund af en intern fejl i tjenesten. |
Fejlfinding og test
Foretag fejlfinding af programmet i Visual Studio Code ved hjælp af python-fejlfinding. Tilføj pausepunkter, hvis det er nødvendigt for at foretage fejlfinding, hvis der er problemer. Få mere at vide