Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Funkce uživatelských dat fabric můžete vyvolat z externích aplikací odesláním požadavků HTTP do veřejného koncového bodu funkce. To vám umožní integrovat obchodní logiku Fabric do webových aplikací, automatizačních skriptů, mikroslužeb nebo jakéhokoli systému mimo prostředí Fabric.
V tomto kurzu se naučíte:
- Registrace aplikace Microsoft Entra pro ověřování
- Získání veřejné adresy URL funkce a povolení veřejného přístupu
- Vytvoření konzolové aplikace Pythonu, která volá funkci
- Vysvětlení schématu odpovědí a stavových kódů HTTP
Požadavky
- Visual Studio Code nainstalovaný na místním počítači.
- Python 3.11 nainstalovaný na místním počítači
- Účet Microsoft Fabric. Můžete si zaregistrovat bezplatnou zkušební verzi.
- Pracovní prostor Infrastruktury.
- Publikovaná položka funkcí uživatelských dat. Pokyny najdete v tématu Vytváření funkcí uživatelských dat v editoru Visual Studio Code nebo Vytváření funkcí uživatelských dat na portálu.
Vytvoření aplikace Microsoft Entra
Pokud chcete volat funkce uživatelských dat z externí aplikace, musíte aplikaci zaregistrovat v Microsoft Entra ID. Tato registrace aplikace poskytuje přihlašovací údaje, které vaše aplikace v Pythonu používá k ověření.
Přejděte do Centra pro správu Microsoft Entra a zaregistrujte aplikaci pomocí kroků popsaných v rychlém startu: Registrace aplikace na platformě Microsoft Identity Platform.
Hodnoty ID aplikace Microsoft Entra (klient) a ID adresáře (tenanta) se zobrazí v poli Souhrn. Poznamenejte si tyto hodnoty, protože je budete potřebovat později.
V seznamu Spravovat vyberte oprávnění rozhraní API, a pak Přidat oprávnění.
Přidejte službu PowerBI, vyberte Delegovaná oprávnění a vyberte UserDataFunction.Execute.All nebo položku. Oprávnění Execute.All Ověřte, že souhlas správce není povinný.
Vraťte se do nastavení Spravovat a vyberte Možnost Přidat ověřování>jednostrákovou aplikaci>.
Pro účely místního vývoje přidejte
http://localhost:3000do identifikátorů URI přesměrování a ověřte, že je aplikace povolená pro tok autorizačního kódu s ověřovacím klíčem pro exchange kódu (PKCE). Výběrem tlačítka Konfigurovat uložte provedené změny. Pokud aplikace narazí na chybu související s požadavky mezi různými zdroji, přidejte platformu mobilních a desktopových aplikací v předchozím kroku se stejnou URI adresou přesměrování.Zpět na Ověřování, sjeďte dolů na Rozšířené nastavení a v části Povolení veřejných klientských tokůzaškrtněte Ano u Povolit následující mobilní a desktopové toky.
Vytvoření konzolové aplikace
Teď, když máte registraci aplikace, vytvořte konzolovou aplikaci Pythonu, která ověřuje a volá funkci uživatelských dat.
Získat adresu URL funkce pro vyvolání
Každá funkce uživatelských dat má jedinečnou veřejnou adresu URL, která slouží jako koncový bod rozhraní REST API. Než budete moct volat funkci z externí aplikace, musíte povolit veřejný přístup a získat adresu URL.
Získání adresy URL funkce:
Na portálu Fabric otevřete položku funkcí uživatelských dat.
Ujistěte se, že jste v režimu Pouze spuštění, ne v režimu Vývoj.
V Průzkumníku funkcí najeďte myší na název funkce a vyberte symbol se třemi tečkami (...).
Vyberte Vlastnosti.
V podokně Vlastnosti se ujistěte, že je povolený veřejný přístup . Pokud ne, vyberte přepínač, který chcete povolit.
Zkopírujte veřejnou adresu URL pro použití v aplikaci v Pythonu.
Návod
Pokud je už povolený veřejný přístup, můžete podokno Vlastnosti přeskočit. V Průzkumníku funkcí vyberte tři tečky (...) vedle názvu funkce a vyberte Kopírovat adresu URL funkce. Tím se zkopíruje stejná adresa URL jako Public URL v podokně Vlastnosti.
V kódu aplikace nahraďte
FUNCTION_URLzástupný text adresou URL, kterou jste zkopírovali.
Nastavení projektu Pythonu
Vytvořte projekt Pythonu s virtuálním prostředím a nainstalujte požadované závislosti.
Vytvořte novou složku pro aplikaci v Pythonu, například
my-data-app.Otevřete složku v editoru Visual Studio Code.
Otevřete paletu příkazů (Ctrl+Shift+P) a vyhledejte Python: Vytvořit prostředí.
Jako typ prostředí vyberte venv .
Jako verzi interpretu vyberte Python 3.11 .
Otevřete nový terminál v editoru Visual Studio Code (Ctrl+').
Aktivujte virtuální prostředí Pythonu:
Windows:
.venv\Scripts\activatemacOS/Linux:
source .venv/bin/activateNainstalujte požadované knihovny Pythonu:
pip install azure-identity requests
Přidání kódu aplikace
Přidejte kód v jazyce Python, který se autentizuje prostřednictvím Microsoft Entra ID a volá vaši funkci uživatelských dat.
Vytvořte soubor s názvem
app.pyve složce projektu.Přidejte následující kód. Nahraďte
<REPLACE WITH USER DATA FUNCTION URL>veřejnou adresou URL, kterou jste zkopírovali dříve.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}")Poznámka:
Tento příklad používá
InteractiveBrowserCredentialpro zjednodušení a otevření prohlížeče pro interaktivní přihlášení. V případě produkčních aplikací předávejteclient_idatenant_idze své registrované aplikace Microsoft Entra doInteractiveBrowserCredential, nebo použijte jiný typ přihlašovacích údajů, napříkladClientSecretCredentialpro ověřování mezi službami. Další informace najdete v klientské knihovně Azure Identity pro Python.
Spuštění aplikace
Pokud chcete aplikaci spustit, použijte v terminálu následující příkaz:
python app.py
Otevře se okno prohlížeče, ve které se můžete přihlásit pomocí účtu Microsoft. Po ověření aplikace zavolá funkci dat uživatele a vytiskne odpověď.
Pokud chcete ladit aplikaci v editoru Visual Studio Code, nastavte zarážky kliknutím na okraj vedle čísel řádků a poté stiskněte klávesu F5 pro spuštění ladění. Další informace najdete v tématu Ladění Pythonu v editoru Visual Studio Code.
Výstupní schéma
Při vyvolání funkce dat uživatele z externí aplikace se text odpovědi řídí tímto schématem JSON:
{
"functionName": "hello_fabric",
"invocationId": "1234567890",
"status": "Succeeded",
"output": "Hello, John!",
"errors": []
}
Odpověď obsahuje tyto vlastnosti:
- functionName: Název funkce, která byla provedena.
- invocationId: Jedinečný identifikátor pro toto konkrétní spuštění funkce. Užitečné pro řešení potíží a korelaci protokolů.
-
status: Výsledek spuštění funkce. Možné hodnoty jsou
Succeeded, ,BadRequestFailed,TimeoutaResponseTooLarge. -
výstup: Návratová hodnota funkce. Datový typ a struktura závisí na tom, co vaše funkce vrátí. Pokud například vaše funkce vrátí řetězec,
outputje řetězec. Pokud vaše funkce vrátí slovník,outputje objekt JSON. -
chyby: Seznam chyb zachycených během provádění. Každá chyba obsahuje objekt
name,messagea volitelnýpropertiesobjekt obsahující páry klíč-hodnota s dalšími podrobnostmi. Prázdné, pokud bude funkce úspěšná.
Kódy odpovědí
Funkce vrátí následující kódy HTTP v důsledku provádění.
| Kód odpovědi | Zpráva | popis |
|---|---|---|
| 200 | Success | Požadavek byl úspěšně zpracován. |
| 400 | Nesprávná žádost | Požadavek nebyl platný. Tato odpověď může být způsobená chybějícími nebo nesprávnými vstupními hodnotami parametrů, datovými typy nebo názvy. Tato odpověď může být také způsobena vypnutím veřejného přístupu pro funkci. |
| 403 | Zakázáno | Odezva byla příliš velká a vyvolání selhalo. |
| 408 | Časový limit požadavku | Požadavek selhal kvůli tomu, že provádění trvá déle, než je maximální povolená doba. |
| 409 | Konflikt | Žádost se nedá dokončit kvůli konfliktnímu stavu. Příčinou této chyby může být neošetřená výjimka nebo chyba s přihlašovacími údaji uživatele. |
| 422 | Nesprávná žádost | Požadavek selhal kvůli chybě UserThrownError vyvolané ve funkci. |
| 500 | Vnitřní chyba serveru | Požadavek selhal kvůli vnitřní chybě ve službě. |