Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Om du vill anropa funktionsobjekt för fabric-användardata från ett konsolprogram i Python kan du skicka HTTP-begäranden till funktionsslutpunkten som måste köras. I den här snabbstarten lär du dig hur du konfigurerar en Python-app med Hjälp av Visual Studio Code.
Förutsättningar
- Installera Visual Studio Code.
- Ladda ned Python 3.1 på din lokala dator.
- Skapa ett Microsoft Fabric-konto kostnadsfritt om du inte har ett.
- Skapa en arbetsyta.
- Skapa ett användardatafunktionsobjekt och publicera det. Läs de här artiklarna om hur du skapar en i Visual Studio Code eller hur du skapar en i portalen. Publicera ändringarna så att användardatafunktionsobjektet är redo att anropas.
Skapa en Microsoft Entra-app
Följande steg förklarar hur du konfigurerar stöd för ett ReactJS-program i Microsoft Entra.
Registrera ett program med hjälp av stegen som beskrivs i snabbstarten : Registrera ett program med Microsofts identitetsplattform.
Värdena för Microsoft Entra-app Applikation-ID (klient) och Katalog-ID (klientorganisation) visas i rutan Sammanfattning. Registrera dessa värden eftersom de krävs senare.
I listan Hantera väljer du API-behörigheteroch sedan Lägg till behörighet.
Lägg till PowerBI-tjänsten, välj Delegerade behörigheter och välj UserDataFunction.Execute.All eller item. Execute.All-behörigheter . Bekräfta att administratörsmedgivande inte krävs.
Gå tillbaka till inställningen Hantera och välj Autentisering>Lägg till ett plattformsprogram>för en sida.
För lokal utveckling lägger du till
http://localhost:3000under Omdirigerings-URI:er och bekräftar att programmet är aktiverat för auktoriseringskodflödet med Proof Key for Code Exchange (PKCE). Välj knappen Konfigurera för att spara ändringarna. Om applikationen stöter på ett fel relaterat till begäranden mellan olika ursprung, lägger du till plattformen Mobil- och skrivbordsapplikationer i föregående steg med samma omdirigerings-URI.Tillbaka till Authenticationrullar du ned till Avancerade inställningar och under Tillåt offentliga klientflödenväljer du Ja för Aktivera följande mobil- och skrivbordsflöden.
Skapa ett konsolprogram
Funktionen måste vara offentligt tillgänglig. Hovra över funktionsnamnet i Function-utforskaren, välj ellipsikonen (...) som visas och välj sedan Egenskaper. I fönstret Egenskaper som öppnas aktiverar du Offentlig åtkomst. Du bör också anteckna offentliga URL för att använda i din Python-applikation.
Skapa en ny mapp för din Python-app, till exempel my-data-app. Öppna mappen i Visual Studio Code.
Konfigurera den virtuella Python-miljön i Visual Studio Code. Om du vill skapa lokala miljöer i Visual Studio Code öppnar du kommandopaletten med Ctrl+Skift+P, söker efter och väljer kommandot Python: Create Environment.
- Kommandot visar en lista över miljötyper och väljer venv.
- Välj Python-tolk Python 3.11.
Kör följande kommando för att aktivera den virtuella miljön i Visual Studio Code-terminalen.
venv\Scripts\activate.batKör sedan kommandot för att installera De Python-bibliotek som behövs för det här exemplet.
pip install azure-identity, requestsSkapa en
app.py-fil och använd koden för att anropa funktionen för användardataobjekt.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)Anmärkning
Exemplet är endast för utvecklingsändamål. Uppdatera programmet så att det använder Microsoft Entra-ID-autentisering innan du använder programmet för ett produktionsanvändningsfall.
Anropa en funktion från ett externt program
Funktioner kan anropas genom att utfärda ett REST-anrop till slutpunkts-URL:en. Välj den funktion som du vill anropa i Funktioner explorer och välj Kopiera funktions-URL. Du kan också aktivera eller inaktivera möjligheten att använda den här URL:en utanför från Egenskaper-menyn.
Använd sedan den här URL:en i ditt program för att anropa funktionen. Se Anropa användardatafunktioner från ett program
Utdataschema
När du anropar en användardatafunktion från ett externt program har utdataschemat följande 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öljande egenskaper returneras:
- functionName: Namnet på den funktion som kördes.
- invocationId: Anrops-ID för körning av en funktion.
-
status: Resultatet av funktionens körning och värden som stöds är
Succeeded,BadRequest,FailedochTimeoutResponseTooLarge. - Utdata: Värdet som returneras av funktionen.
- fel: Om några fel upptäcktes kommer detta att returnera en lista över varje fel med deras namn, felmeddelande och felingenskaper.
Svarskoder
Funktionen returnerar följande HTTP-koder som ett resultat av körningen.
| Svarskod | Message | Beskrivning |
|---|---|---|
| 200 | Success | Begäran lyckades. |
| 400 | Felaktig förfrågan | Begäran var ogiltig. Det här svaret kan bero på saknade eller felaktiga indataparametervärden, datatyper eller namn. Det här svaret kan också orsakas av att offentlig åtkomst inaktiveras för en funktion. |
| 403 | Ej tillåtet | Svaret var för stort och anropet misslyckades. |
| 408 | Tidsgräns för begäran | Begäran misslyckades eftersom exekveringen tog mer än 200 sekunder. |
| 409 | Konflikt | Det gick inte att slutföra begäran på grund av ett konflikttillstånd. Detta kan orsakas av ett ohanterat undantag eller ett fel med användarautentiseringsuppgifter. |
| 422 | Felaktig förfrågan | Begäran misslyckades på grund av en UserThrownError som uppstod i funktionen. |
| 500 | Internt serverfel | Begäran misslyckades på grund av ett internt fel i tjänsten. |
Felsökning och testning
Felsöka programmet i Visual Studio Code med python-felsökningsprogrammet. Lägg till brytpunkter om det behövs för att felsöka om det finns några problem. Läs mer
Nästa steg
- Skapa användardatafunktioner
- Exempel på användardatafunktioner