Poznámka
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete sa skúsiť prihlásiť alebo zmeniť adresáre.
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete skúsiť zmeniť adresáre.
Funkcie používateľských dát Fabric môžete volať z externých aplikácií odoslaním HTTP požiadaviek na verejný koncový bod funkcie. To vám umožní integrovať vašu obchodnú logiku Fabric do webových aplikácií, automatizačných skriptov, mikroslužieb alebo akéhokoľvek systému mimo prostredia Fabric.
V tomto kurze:
- Zaregistrujte Microsoft Entra aplikáciu na autentifikáciu
- Získajte verejnú URL adresu funkcie a povolte verejný prístup
- Vytvorte Python konzolovú aplikáciu, ktorá volá túto funkciu
- Pochopte schému odpovedí a HTTP stavové kódy
Požiadavky
- Visual Studio Code nainštalovaný na vašom lokálnom počítači.
- Python 3.11 nainštalovaný na vašom lokálnom počítači.
- Microsoft Fabric účet. Môžete sa prihlásiť na bezplatnú skúšobnú verziu.
- Pracovný priestor služby Fabric.
- Publikovaná položka funkcií používateľských údajov. Pre inštrukcie pozri Vytvoriť používateľské dátové funkcie vo Visual Studio Code alebo Vytvoriť používateľské dátové funkcie v portáli.
Vytvorenie aplikácie Microsoft Entra
Na volanie používateľských dátových funkcií z externej aplikácie je potrebné zaregistrovať aplikáciu v Microsoft Entra ID. Táto registrácia aplikácie poskytuje prihlasovacie údaje, ktoré vaša Python aplikácia používa na autentifikáciu.
Choďte do administrátorského centra Microsoft Entra a zaregistrujte aplikáciu podľa krokov popísaných v Rýchloštarte: Zaregistrujte aplikáciu na Microsoft Identity Platform.
Hodnoty ID aplikácie (klienta) aplikácie Microsoft Entra a ID adresára (nájomníka) sa zobrazia v poli Súhrn. Tieto hodnoty si zaznamenajte, pretože sú potrebné neskôr.
V zozname Spravovať vyberte povolenia rozhrania APIa potom Pridať povolenie.
Pridajte službu PowerBI, vyberte položku Delegované povolenia a vyberte položku UserDataFunction.Execute.All alebo položku. Execute.All povolenia. Skontrolujte, či sa nevyžaduje súhlas správcu.
Vráťte sa do nastavenia Spravovať a vyberte Overenie>Pridať platformu>Jednostránková aplikácia.
Na lokálne účely vývoja pridajte do
http://localhost:3000časti Identifikátory URI presmerovania a potvrďte, že je aplikácia povolená pre postup kódu oprávnenia s overeným kľúčom pre Exchange kódov (PKCE). Ak chcete zmeny uložiť, vyberte tlačidlo Konfigurovať. Ak aplikácia narazí na chybu súvisiacu s požiadavkami medzi zdrojmi, pridajte platformu mobilných a desktopových aplikácií v predchádzajúcom kroku s rovnakým identifikátorom URI presmerovania.Späť na overovania , prejdite nadol na rozšírené nastavenia a v časti Povoliťverejné klientske postupy vyberte položku Áno pre Povoliť nasledujúce mobilné postupy a postupy pracovnej plochy.
Vytvorenie konzolovej aplikácie
Teraz, keď máte registráciu aplikácie, vytvorte Python konzolovú aplikáciu, ktorá autentifikuje a volá vašu funkciu používateľských dát.
Získajte URL funkcie na vyvolanie
Každá používateľská dátová funkcia má jedinečnú verejnú URL, ktorá slúži ako jej koncový bod REST API. Predtým, než môžete zavolať funkciu z externej aplikácie, musíte povoliť verejný prístup a získať URL.
Na získanie URL funkcie:
V portáli Fabric otvorte položku funkcie používateľských dát.
Uistite sa, že ste v režime len spustiť , nie rozvíjať .
V prieskumníku Funkcie prejdite myšou na názov funkcie a vyberte elipsu (...).
Vyberte Vlastnosti.
V paneli Vlastnosti sa uistite, že je povolený verejný prístup . Ak nie, vyberte prepínač na jeho povolenie.
Skopírujte verejnú URL pre použitie vo vašej Python aplikácii.
Prepitné
Ak je verejný prístup už povolený, môžete panel Vlastnosti preskočiť. V prieskumníku Funkcie vyberte trojku (...) vedľa názvu funkcie a vyberte Kopírovať URL funkcie. Toto skopíruje rovnakú URL ako verejná URL v paneli Vlastnosti.
Vo vašom aplikačnom kóde nahraďte
FUNCTION_URLzástupcu URL adresou, ktorú ste skopírovali.
Nastavte si svoj Python projekt
Vytvorte Python projekt vo virtuálnom prostredí a nainštalujte potrebné závislosti.
Vytvorte nový priečinok pre svoju Python aplikáciu, napríklad
my-data-app.Otvorte priečinok v editore Visual Studio Code.
Otvorte paletu príkazov (Ctrl+Shift+P) a vyhľadajte Python: Create Environment.
Vyberte venv ako typ prostredia.
Vyberte Python 3.11 ako interpreterovú verziu.
Otvorte nový terminál vo Visual Studio Code (Ctrl+').
Aktivujte virtuálne prostredie Pythonu:
Windows:
.venv\Scripts\activatemacOS/Linux:
source .venv/bin/activateNainštalujte potrebné Python knižnice:
pip install azure-identity requests
Pridajte aplikačný kód
Pridajte Python kód, ktorý sa autentifikuje pomocou Microsoft Entra ID a volá vašu funkciu používateľských dát.
Vytvor súbor s názvom
app.pyvo svojom projektovom priečinku.Pridajte nasledujúci kód. Nahraďte
<REPLACE WITH USER DATA FUNCTION URL>ju verejnou URL, ktorú ste skopírovali skôr.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}")Nota
Tento príklad používa
InteractiveBrowserCredentialpre jednoduchosť, ktorý otvára prehliadač pre interaktívne prihlásenie. Pre produkčné aplikácie odovzdajte aclient_idtenant_idz vašej registrovanej Microsoft Entra aplikácie doInteractiveBrowserCredential, alebo použite iný typ prihlasovacích údajov,ClientSecretCredentialnapríklad na autentifikáciu medzi službami. Pre viac informácií pozri Azure Identity client library pre Python.
Spustiť aplikáciu
Na spustenie aplikácie použite nasledujúci príkaz v termináli:
python app.py
Otvorí sa okno prehliadača, kde sa môžete prihlásiť so svojím Microsoft účtom. Po autentifikácii aplikácia zavolá vašu funkciu používateľských dát a vytlačí odpoveď.
Na ladenie aplikácie vo Visual Studio Code nastavte breakpointy kliknutím do žľabu vedľa čísel riadkov a potom stlačte F5 na začatie ladenia. Pre viac informácií pozri Python ladenie vo Visual Studio Code.
Výstupná schéma
Keď vyvoláte používateľskú dátovú funkciu z externej aplikácie, telo odpovede nasleduje túto JSON schému:
{
"functionName": "hello_fabric",
"invocationId": "1234567890",
"status": "Succeeded",
"output": "Hello, John!",
"errors": []
}
Odpoveď zahŕňa tieto vlastnosti:
- functionName: Názov spustenej funkcie.
- invocationId: Jedinečný identifikátor pre vykonanie tejto konkrétnej funkcie. Užitočné na riešenie problémov a koreláciu logov.
-
stav: Výsledok vykonania funkcie. Možné hodnoty sú
Succeeded,BadRequest,Failed,Timeout, a .ResponseTooLarge -
výstup: Návratová hodnota vašej funkcie. Typ a štruktúra dát závisia od toho, čo vaša funkcia vracia. Napríklad, ak vaša funkcia vráti reťazec,
outputje to reťazec. Ak vaša funkcia vráti slovník,outputje to JSON objekt. -
chyby: Zoznam chýb zachytených počas vykonávania. Každá chyba
nameobsahuje ,message, a voliteľnýpropertiesobjekt obsahujúci páry kľúč-hodnota s podrobnejšími detailmi. Vyprázdniť, keď funkcia uspeje.
Kódy odpovede
Funkcia vracia nasledujúce HTTP kódy ako výsledok vykonania.
| kód odpovede | Správa | Opis |
|---|---|---|
| 200 | Úspech | Požiadavka bola úspešná. |
| 400 | Zlá požiadavka | Žiadosť nebola platná. Táto odpoveď môže byť spôsobená chýbajúcimi alebo nesprávnymi hodnotami vstupných parametrov, typmi údajov alebo názvami. Táto reakcia môže byť spôsobená aj vypnutím verejného prístupu pre funkciu. |
| 403 | Zakázané | Odpoveď bola príliš veľká a vyvolanie zlyhalo. |
| 408 | Časový limit žiadosti | Požiadavka zlyhala, pretože vykonanie trvalo dlhšie, než bol povolený maximálny čas. |
| 409 | Konflikt | Žiadosť nemohla byť dokončená kvôli konfliktnému stavu. Táto chyba môže byť spôsobená nespracovanou výnimkou alebo chybou používateľských prihlasovacích údajov. |
| 422 | Zlá požiadavka | Požiadavka zlyhala z dôvodu UserThrownError vyvolanej vo funkcii. |
| 500 | Interná chyba servera | Žiadosť zlyhala z dôvodu internej chyby v službe. |