Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ha a Fabric User adatfüggvény elemeit egy pythonos konzolalkalmazásból szeretné meghívni, http-kéréseket küldhet a végrehajtandó függvényvégpontnak. Ebben a rövid útmutatóban megtudhatja, hogyan állíthat be Python-alkalmazást a Visual Studio Code használatával.
Előfeltételek
- A Visual Studio Code telepítése.
- Töltse le Python 3.1 a helyi gépére.
- Hozzon létre egy Microsoft Fabric-fiókot ingyen, ha nem rendelkezik ilyennel.
- Munkaterület létrehozása.
- Hozzon létre egy felhasználói adatfüggvény-elemet, és tegye közzé. Az alábbi cikkekből megtudhatja , hogyan hozhat létre egyet a Visual Studio Code-ban , vagy hogyan hozhat létre egyet a portálon. Tegye közzé a módosításokat, hogy a felhasználói adatfunkció elem készen álljon a meghívásra.
Microsoft Entra alkalmazás létrehozása
Az alábbi lépések bemutatják, hogyan konfigurálható a ReactJS-alkalmazások támogatása a Microsoft Entra-ban.
Alkalmazás regisztrálása az rövid útmutatóban leírt lépések használatával: Alkalmazás regisztrálása a Microsoft identitásplatformon.
A Microsoft Entra alkalmazás (ügyfél) azonosítója és címtár (bérlő) azonosítója az Összegzés dobozban jelenik meg. Jegyezze fel ezeket az értékeket, mert később szükség van rájuk.
A Kezelés listában válassza a API-engedélyeket, majd kattintson a Engedély hozzáadásagombra.
Adja hozzá a PowerBI szolgáltatást, válassza a Delegált engedélyek lehetőséget, majd a UserDataFunction.Execute.All vagy elem lehetőséget. Execute.All engedélyek. Győződjön meg arról, hogy nincs szükség rendszergazdai hozzájárulásra.
Lépjen vissza a Kezelés beállításhoz, és válassza a Hitelesítés>egyoldalas> hozzáadása lehetőséget.
Helyi fejlesztési célokból adja hozzá
http://localhost:3000az Átirányítási URI-k alatt, és győződjön meg arról, hogy az alkalmazás engedélyezve van az engedélyezési kódfolyamathoz a Code Exchange-hez (PKCE) készült Proof Key billentyűvel. A módosítások mentéséhez válassza a Konfigurálás gombot. Ha az alkalmazás a forrásközi kérelmekkel kapcsolatos hibát tapasztal, adja hozzá a Mobil és asztali alkalmazásplatformot az előző lépésben ugyanazzal az átirányítási URI-val.Lépjen vissza a Hitelesítésszakaszhoz, görgessen le a Speciális beállítások részhez, majd a Nyilvános ügyfélfolyamatok engedélyezésealatt válassza az Igen lehetőséget a Az alábbi mobil- és asztali folyamatok engedélyezéseesetén.
Konzolalkalmazás létrehozása
A függvénynek nyilvánosan hozzáférhetőnek kell lennie. A Függvénykezelőben mutasson a függvény nevére, és válassza a megjelenő három pont ikont (...), majd válassza a Tulajdonságoklehetőséget. A Tulajdonságok panelen, amely megnyílik, engedélyezze a nyilvános hozzáférést. Jegyezze fel a Python-alkalmazásban használandó nyilvános URL-címet is.
Hozzon létre egy új mappát a Python-alkalmazáshoz, például my-data-app. Nyissa meg a mappát a Visual Studio Code-ban.
A Python virtuális környezet beállítása a Visual Studio Code-ban. Ha helyi környezeteket szeretne létrehozni a Visual Studio Code-ban, nyissa meg a Parancspalettát a Ctrl+Shift+P billentyűkombinációval, majd keresse meg és válassza ki a Python: Környezet létrehozása parancsot.
- A parancs megjeleníti a környezettípusok listáját, és kiválasztja a venv-t.
- Válassza ki a Python-értelmező verzióját Python 3.11.
Futtassa a következő parancsot a virtuális környezet aktiválásához a Visual Studio Code terminálban.
venv\Scripts\activate.batEzután futtassa a parancsot a példához szükséges Python-kódtárak telepítéséhez.
pip install azure-identity, requestsHozzon létre egy
app.pyfájlt, és használja a kódot a felhasználói adatfüggvényelem meghívásához.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)Megjegyzés
A példa csak fejlesztési célokra szolgál. Frissítse az alkalmazást a Microsoft Entra ID-hitelesítés használatára, mielőtt éles használati esethez használja az alkalmazást.
Függvény meghívása külső alkalmazásból
A függvények a végpont URL-címére irányuló REST-hívás kiadásával hívhatók meg. Jelölje ki a meghívni kívánt függvényt a Functions explorer, majd válassza a Függvény URL-címének másolásalehetőséget. A külső használat lehetőségét is be- vagy kikapcsolhatja az URL-címhez a Tulajdonságok menüben.
Ezután használja ezt az URL-címet az alkalmazásban a függvény meghívásához. Lásd: Felhasználói adatfüggvények meghívása alkalmazásból
Kimeneti séma
Ha felhasználói adatfüggvényt kér le egy külső alkalmazásból, a kimeneti séma formátuma a következő lesz:
{
"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*/
}
},
]
}
A rendszer a következő tulajdonságokat adja vissza:
- functionName: A végrehajtott függvény neve.
- invocationId: Egy függvény végrehajtásának meghívási azonosítója.
-
állapot: A függvény végrehajtásának eredménye és a támogatott értékek a következők
Succeeded: ,BadRequestFailedésTimeoutResponseTooLarge. - kimeneti: A függvény által visszaadott kimeneti érték.
- hibák: Ha bármilyen hibát rögzítettek, a rendszer az egyes hibák listáját adja vissza a nevükkel, hibaüzenetükkel és hibatulajdonságukkal.
Válaszkódok
A függvény a végrehajtás eredményeként a következő HTTP-kódokat adja vissza.
| válaszkód | Message | Leírás |
|---|---|---|
| 200 | Success | A kérés sikeres volt. |
| 400 | Hibás kérés | A kérés érvénytelen volt. A válasz oka lehet a hiányzó vagy helytelen bemeneti paraméterértékek, adattípusok vagy nevek. Ezt a választ az is okozhatja, hogy egy függvény nyilvános hozzáférése ki van kapcsolva. |
| 403 hibakód | Tiltott | A válasz túl nagy volt, és a meghívás sikertelen volt. |
| 408 | Kérelem időtúllépése | A kérés meghiúsult, mert a végrehajtás több mint 200 másodpercet vett igénybe. |
| 409 | Ütközés | A kérés nem hajtható végre ütköző állapot miatt. Ezt okozhatja egy nem kezelt kivétel vagy a felhasználói hitelesítő adatokkal kapcsolatos hiba. |
| 422 | Hibás kérés | A kérés meghiúsult a függvényben létrehozott UserThrownError miatt. |
| ötszáz | Belső kiszolgálóhiba | A kérés a szolgáltatás belső hibája miatt meghiúsult. |
Hibakeresés és tesztelés
Az alkalmazás hibakeresése a Visual Studio Code-ban Python-hibakereső használatával. Szükség esetén töréspontokat adhat hozzá a hibakereséshez, ha bármilyen probléma merül fel. További információ