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.
A Fabric felhasználói adatfüggvényeket külső alkalmazásokból is meghívhatja, ha HTTP-kéréseket küld a függvény nyilvános végpontjára. Ez lehetővé teszi a Fabric üzleti logikájának integrálását webalkalmazásokba, automatizálási szkriptekbe, mikroszolgáltatásokba vagy a Fabric-környezeten kívüli rendszerekbe.
Ebben az útmutatóban Ön:
- Microsoft Entra-alkalmazás regisztrálása hitelesítéshez
- A függvény nyilvános URL-címének lekérése és a nyilvános hozzáférés engedélyezése
- Python-konzolalkalmazás létrehozása, amely meghívja a függvényt
- A válaszséma és a HTTP-állapotkódok ismertetése
Előfeltételek
- A Visual Studio Code telepítve van a helyi gépen.
- A helyi gépen telepített Python 3.11 .
- Egy Microsoft Fabric-fiók. Regisztrálhat egy ingyenes próbaverzióra.
- Háló munkaterület.
- Közzétett felhasználóiadat-függvényelem. Útmutatásért lásd: Felhasználói adatfüggvények létrehozása a Visual Studio Code-ban vagy felhasználói adatfüggvények létrehozása a portálon.
Microsoft Entra alkalmazás létrehozása
Ha külső alkalmazásból szeretné meghívni a felhasználói adatfüggvényeket, regisztrálnia kell egy alkalmazást a Microsoft Entra-azonosítóban. Ez az alkalmazásregisztráció biztosítja a Python-alkalmazás által a hitelesítéshez használt hitelesítő adatokat.
Lépjen a Microsoft Entra felügyeleti központjába , és regisztráljon egy alkalmazást a rövid útmutatóban ismertetett lépések végrehajtásá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
Most, hogy már rendelkezik alkalmazásregisztrációval, hozzon létre egy Python-konzolalkalmazást, amely hitelesíti és meghívja a felhasználói adatfüggvényt.
A meghívandó függvény URL-címének lekérése
Minden felhasználói adatfüggvény rendelkezik egy egyedi nyilvános URL-címvel, amely a REST API-végpontjaként szolgál. Mielőtt meghívhatja a függvényt egy külső alkalmazásból, engedélyeznie kell a nyilvános hozzáférést, és le kell kérnie az URL-címet.
A függvény URL-címének lekérése:
A Fabric portálon nyissa meg a felhasználói adatfüggvény-elemet.
Győződjön meg arról, hogy csak Futtatás módban van, nem pedig Fejlesztés módban.
A Függvénykezelőben mutasson a függvény nevére, és válassza ki a három pontot (...).
Válassza a Tulajdonságokelemet.
A Tulajdonságok panelen győződjön meg arról, hogy a nyilvános hozzáférés engedélyezve van. Ha nem, válassza a kapcsolót az engedélyezéshez.
Másolja ki a Nyilvános URL-címet a Python-alkalmazásban való használatra.
Jótanács
Ha a nyilvános hozzáférés már engedélyezve van, kihagyhatja a Tulajdonságok panelt. A Függvénykezelőben válassza a függvény neve melletti három pontot (...), majd a Függvény URL-címének másolása lehetőséget. Ez ugyanazt az URL-címet másolja, mint a Nyilvános URL-címet a Tulajdonságok panelen.
Az alkalmazáskódban cserélje le a
FUNCTION_URLhelyőrzőt a másolt URL-címre.
A Python-projekt beállítása
Hozzon létre egy Python-projektet egy virtuális környezettel, és telepítse a szükséges függőségeket.
Hozzon létre például egy új mappát a Python-alkalmazáshoz
my-data-app.Nyissa meg a mappát a Visual Studio Code-ban.
Nyissa meg a parancskatalógust (Ctrl+Shift+P), és keresse meg a Python: Környezet létrehozása parancsot.
Válassza ki a venv elemet a környezet típusaként.
Válassza a Python 3.11-et értelmező verzióként.
Nyisson meg egy új terminált a Visual Studio Code-ban (Ctrl+).
A Python virtuális környezet aktiválása:
Windows:
.venv\Scripts\activatemacOS/Linux:
source .venv/bin/activateTelepítse a szükséges Python-kódtárakat:
pip install azure-identity requests
Az alkalmazáskód hozzáadása
Adja hozzá a Python-kódot, amely a Microsoft Entra ID segítségével hitelesít, és meghívja a felhasználói adatfüggvényt.
Hozzon létre egy fájlt
app.pya projektmappában.Adja hozzá a következő kódot. Cserélje le
<REPLACE WITH USER DATA FUNCTION URL>a korábban másolt nyilvános URL-címre.from azure.identity import InteractiveBrowserCredential import requests import json # Acquire a token using interactive browser authentication # This opens a browser window for the user to sign in with their Microsoft account credential = InteractiveBrowserCredential() scope = "https://analysis.windows.net/powerbi/api/user_impersonation" token = credential.get_token(scope) if not token.token: print("Error: Could not get access token") exit(1) # Prepare headers with the access token headers = { "Authorization": f"Bearer {token.token}", "Content-Type": "application/json" } FUNCTION_URL = "<REPLACE WITH USER DATA FUNCTION URL>" # Prepare the request data (modify to match your function's expected input) data = {"name": "John"} 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(), indent=2)) except Exception as e: print(f"Error: {e}")Megjegyzés
Az egyszerűség kedvéért ez a példa a
InteractiveBrowserCredentialelemet használja, amely megnyitja a böngészőt az interaktív bejelentkezéshez. Éles alkalmazások esetén adja át aclient_idéstenant_ida regisztrált Microsoft Entra-alkalmazásbólInteractiveBrowserCredential-hoz/hez, vagy használjon másik hitelesítő típust, példáulClientSecretCredential-at/et szolgáltatásközi hitelesítéshez. További információt a Pythonhoz készült Azure Identity ügyfélkódtárában talál.
Az alkalmazás futtatása
Az alkalmazás futtatásához használja a következő parancsot a terminálban:
python app.py
Megnyílik egy böngészőablak, amellyel bejelentkezhet a Microsoft-fiókjával. A hitelesítés után az alkalmazás meghívja a felhasználói adatkezelő függvényt, és megjeleníti a választ.
Az alkalmazás Visual Studio Code-ban való hibakereséséhez állítsa be a töréspontokat a sorszámok melletti ereszcsatornára kattintva, majd nyomja le az F5 billentyűt a hibakeresés megkezdéséhez. További információ: Python-hibakeresés a Visual Studio Code-ban.
Kimeneti séma
Amikor külső alkalmazásból hív meg egy felhasználói adatfüggvényt, a válasz törzse a következő JSON-sémát követi:
{
"functionName": "hello_fabric",
"invocationId": "1234567890",
"status": "Succeeded",
"output": "Hello, John!",
"errors": []
}
A válasz a következő tulajdonságokat tartalmazza:
- functionName: A végrehajtott függvény neve.
- invocationId: Az adott függvény végrehajtásának egyedi azonosítója. A naplók hibaelhárításához és korrelálásához hasznos.
-
állapot: A függvény végrehajtásának eredménye. A lehetséges értékek a következők:
Succeeded,BadRequestFailed,TimeoutésResponseTooLarge. -
kimenet: A függvény visszatérési értéke. Az adattípus és a struktúra attól függ, hogy a függvény mit ad vissza. Ha például a függvény egy sztringet ad vissza,
outputaz egy sztring. Ha a függvény egy szótárt ad vissza,outputaz egy JSON-objektum. -
hibák: A végrehajtás során rögzített hibák listája. Minden hiba tartalmaz egy
name,message, és opcionálispropertiesobjektumot, amely kulcs-érték párokat tartalmaz további részletekkel. Üres, ha a függvény sikeres.
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 hiányzó vagy helytelen bemeneti paraméterek értékei, 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 a megengedettnél hosszabb időt vett igénybe. |
| 409 | Ütközés | A kérés nem hajtható végre ütköző állapot miatt. Ezt a hibát nem kezelt kivétel vagy a felhasználói hitelesítő adatokkal kapcsolatos hiba okozhatja. |
| 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. |