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.
Model programovania dátových funkcií používateľa služby Fabric je súprava SDK, ktorá poskytuje potrebné funkcie na vytváranie a publikovanie runnable funkcií v službe Fabric. Súprava SDK vám tiež umožňuje bezproblémovú integráciu s inými položkami v ekosystéme služby Fabric, ako sú napríklad zdroje údajov služby Fabric. Táto knižnica je verejne dostupná v PyPI a je predinštalovaná v položkách údajových funkcií používateľa.
Súprava SDK funkcií údajov používateľov
Položka údajových funkcií používateľa obsahuje jednu alebo viacero funkcií, ktoré môžete vyvolať z portálu služby Fabric, z inej položky služby Fabric alebo z externej aplikácie pomocou uvedeného koncového bodu REST. Každá funkcia je metóda v skripte jazyka Python, ktorá umožňuje odovzdávanie parametrov a vrátenie výstupu do vyvolávača. Programovací model dátových funkcií používateľa obsahuje nasledujúce súčasti:
Knižnica
fabric.functions
poskytuje kód, ktorý potrebujete na vytvorenie používateľských údajových funkcií v jazyku Python. Keď vytvoríte novú položku údajových funkcií používateľa, táto knižnica sa importuje do vašej prvej šablóny funkcie.Metóda
fn.UserDataFunctions()
poskytne kontext spustenia. Pridá sa na začiatok súboru s kódom vo všetkých nových položkách údajových funkcií používateľa pred definíciami funkcií.Príklad:
import datetime import fabric.functions as fn import logging udf = fn.UserDataFunctions()
Každá funkcia je identifikovaná pomocou dekorátora
@udf.function()
. Tento dekorátor definuje, či je možné funkciu vyvolať individuálne z portálu alebo externého vyvolávača.príklad invokable funkcie
# This is a hello fabric function sample that can be invoked from the Fabric portal, another Fabric item, or an external application. @udf.function() def hello_fabric(name: str) -> str: logging.info('Python UDF trigger function processed a request.') logging.info('Executing hello fabric function.') return f"Welcome to Fabric Functions, {name}, at {datetime.datetime.now()}!"
Akékoľvek metódy jazyka Python bez dekorátora
@udf.function()
nie je možné priamo vyvolať. Môžu sa vyvolať iba z funkcií, ktoré obsahujú dekorátor, a môžu sa použiť ako pomocné funkcie.príklad funkcie helper
# This is a helper function that can be invoked from other functions, but can't be invoked or run directly because it doesn't have the @udf.function() decorator def uppercase_name(name: str) -> str: return name.upper()
Podporované typy vstupov
Môžete definovať vstupné parametre pre funkciu, ako sú napríklad primitívne typy údajov, ako napríklad str, int, float atď. Podporované typy vstupných údajov sú:
typu JSON | typ údajov jazyka Python |
---|---|
Povrázok | Str |
reťazca datetime | datetime (dátumu a času) |
Boolean | Bool |
Numbers | int, float |
Pole | list[], example list[int] |
objektu | Dict |
Podporované typy výstupu
Podporované typy údajov výstupu sú:
typ údajov jazyka Python |
---|
Str |
datetime (dátumu a času) |
Bool |
int, float |
list[data-type], napríklad list[int] |
Dict |
žiadne |
Údajové pripojenia k zdrojom údajov služby Fabric
Tento modul vám umožňuje odkazovať na údajové pripojenia bez nutnosti zapisovania reťazcov pripojenia do kódu. Knižnica fabric.functions
poskytuje dva spôsoby na spracovanie údajových pripojení:
- fabric.functions.FabricSqlConnection: Umožňuje pracovať s databázami SQL v službe Fabric vrátane koncových bodov služby SQL Analytics a skladov služby Fabric.
- fabric.functions.FabricLakehouseClient: Umožňuje vám pracovať s lakehouses, so spôsobom, ako sa pripojiť k obom lakehouse tabuliek a Lakehouse súbory.
Ak chcete odkazovať na pripojenie k zdroju údajov, musíte použiť dekorátor @udf.connection
. Môžete ju použiť v ktoromkoľvek z nasledujúcich formátov:
@udf.connection(alias="<alias for data connection>", argName="sqlDB")
@udf.connection("<alias for data connection>", "<argName>")
@udf.connection("<alias for data connection>")
Argumenty pre @udf.connection
sú:
-
argName
, názov premennej, ktorý pripojenie použije vo vašej funkcii. -
alias
, alias pripojenia, ktoré ste pridali, pomocou ponuky Spravovať pripojenia. - Ak
argName
aalias
majú rovnakú hodnotu, môžete použiť@udf.connection("<alias and argName for the data connection>")
.
Príklad
# Where demosqldatabase is the argument name and the alias for my data connection used for this function
@udf.connection("demosqldatabase")
@udf.function()
def read_from_sql_db(demosqldatabase: fn.FabricSqlConnection)-> list:
# Replace with the query you want to run
query = "SELECT * FROM (VALUES ('John Smith', 31), ('Kayla Jones', 33)) AS Employee(EmpName, DepID);"
# [...] Here is where the rest of your SqlConnection code would be.
return results
Získanie vlastností vyvolania pomocou UserDataFunctionContext
Programovací model obsahuje aj objekt UserDataFunctionContext
. Tento objekt obsahuje metaúdaje vyvolania funkcie a možno ho použiť na vytvorenie špecifickej logiky aplikácie pre určité mechanizmy vyvolania.
Nasledujúca tabuľka zobrazuje vlastnosti pre UserDataFunctionContext
objekt:
Názov vlastnosti | Typ údajov | Popis |
---|---|---|
ID vyvolania | povrázok | Jedinečný identifikátor GUID zviazaný s vyvolanie položky údajových funkcií používateľa. |
ExecutingUser (VykonávajúciPouýšer) | namietať | Metaúdaje informácií o používateľovi použité na overenie vyvolania. |
Objekt ExecutingUser
obsahuje nasledujúce informácie:
Názov vlastnosti | Typ údajov | Popis |
---|---|---|
Oid | Reťazec (GUID) | ID objektu používateľa, ktoré je nemenným identifikátorom žiadateľa. Ide o overenú identitu používateľa alebo objektu služby, ktorá sa použila na vyvolanie tejto funkcie v rámci aplikácií. |
ID nájomníka | Reťazec (GUID) | ID nájomníka, do ktorému je používateľ prihlásený. |
PreferredUsername | povrázok | Preferované meno používateľa na vyvolanie, ako je nastavené používateľom. Táto hodnota je mutable. |
Ak chcete získať prístup k parametru UserDataFunctionContext
, musíte použiť nasledujúci dekorátor v hornej časti definície funkcie: @udf.context(argName="<parameter name>")
Príklad
@udf.context(argName="myContext")
@udf.function()
def getContext(myContext: fabric.functions.UserDataFunctionContext)-> str:
logging.info('Python UDF trigger function processed a request.')
return f"Hello oid = {context.executing_user['Oid']}, TenantId = {context.executing_user['TenantId']}, PreferredUsername = {context.executing_user['PreferredUsername']}, InvocationId = {context.invocation_id}"
Hodiť spracovanú chybu s UserThrownError
Pri vývoji funkcie môžete hodiť očakávanú chybovú odpoveď pomocou metódy UserThrownError
, ktorá je k dispozícii v programovacom modeli jazyka Python. Jednou z použitia tejto metódy je spravovanie prípadov, keď vstupy poskytnuté používateľom neprejdú pravidlami podnikovej overenia.
Príklad
import datetime
@udf.function()
def raise_userthrownerror(age: int)-> str:
if age < 18:
raise fn.UserThrownError("You must be 18 years or older to use this service.", {"age": age})
return f"Welcome to Fabric Functions at {datetime.datetime.now()}!"
Táto UserThrownError
metóda má dva parametre:
-
Message
: Tento reťazec sa vráti ako chybové hlásenie pre aplikáciu, ktorá vyvoláva túto funkciu. - Slovník vlastností, ktoré sa vrátia do aplikácie, ktorá vyvoláva túto funkciu.