Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här guiden skapar vi ett nytt användardatafunktioner och skriver nya funktioner i det. Varje användardatafunktioner innehåller kod som definierar en eller flera funktioner som du kan köra individuellt.
Mer specifikt lär du dig att:
- Skapa ett användardatafunktionsobjekt.
- Skriv en ny funktion.
- Hantera funktioner.
- Kör funktionen.
Förutsättningar
- En Microsoft Fabric-kapacitet i en av de regioner som stöds. Om du inte har någon infrastrukturkapacitet kan du skapa en utvärderingskapacitet kostnadsfritt.
- En infrastrukturarbetsyta som är länkad till den kapaciteten
Skapa ett nytt objekt för användardatafunktioner för infrastrukturresurser
- Välj din arbetsyta och välj på + Nytt objekt.
- Välj Objekttyp som Alla objekt. Sök efter och välj Användardatafunktioner.
Skapa ett nytt användardatafunktionsobjekt
På arbetsytan väljer du + Nytt objekt.
I fönstret som öppnas söker
user data functionsdu efter och väljer sedan panelen.Ange ett namn för användardatafunktionsobjektet.
Välj Ny funktion för att skapa en
hello_fabricPython-funktionsmall. Functions-utforskaren visar alla funktioner som är publicerade och redo att anropas.hello_fabricNär funktionen har publicerats kan du köra den från listan över funktioner i Functions-utforskaren.
Lägga till en ny funktion från exempel
Det här är ett exempel på hur du lägger till en ny funktion från Insert sample menyn. I det här fallet lägger vi till en funktion som heter Manipulera data med Pandas-biblioteket som använder pandas biblioteket som ett krav. Följ stegen för att lägga till den här exempelfunktionen:
Kontrollera att du är i läget Utveckla. Välj Bibliotekshantering för att lägga till de bibliotek som krävs för din funktion.
Anmärkning
fabric_user_data_functionsbiblioteket läggs till som standard och kan inte tas bort. Det här biblioteket krävs för funktionerna i användardatafunktioner. Du måste uppdatera versionen av det här biblioteket för framtida versioner av denna SDK.Välj Pandas-biblioteket och välj versionen. När biblioteket har lagts till sparas det automatiskt i objektet Användardatafunktioner.
Välj Infoga exempel och välj Manipulera data med Pandas-biblioteket. Den här åtgärden infogar exempelkod längst ned i koden efter de andra funktionerna.
När exemplet har infogats i redigeraren testar du det med hjälp av testfunktionen i läget Utveckla.
När du är klar kan du välja Publicera för att spara ändringarna och uppdatera dina funktioner. Det kan ta några minuter att publicera.
När publiceringen har slutförts visas den nya funktionen i functions explorer-listan. Funktionen är nu redo att köras från portalen eller anropas från en annan applikation eller Fabric-komponent, till exempel en pipeline.
Kör din funktion
Om du vill köra funktionen måste du först växla till läget Kör endast genom att klicka på lägesväxlaren.
Välj Ikonen Kör som visas när du hovra över en funktion i listan Funktionsutforskaren.
Skicka de obligatoriska parametrarna som visas som ett formulär i Functions-utforskaren. I det här fallet ska vi köra
manipulate_datafunktionen som kräver en JSON-sträng som en parameter.[ { "Name": "John", "Age": 22, "Gender": "male" } ]Välj Kör för att köra funktionen.
Du kan se liveloggarna och utdata för funktionen för att verifiera om den har körts. Du kan också se ett felmeddelande och loggar från funktionsanropet.
Skriva en ny funktion
Varje körbar funktion börjar med en @udf.function() dekoratör före funktionsdefinitionen. Läs mer om python-programmeringsmodellen. Om du vill skriva en ny funktion använder du dekoratören @udf.function() i början för att deklarera den som en körbar funktion. Här är en exempelfunktion:
# This sample allows you to pass a credit card number as an integer and mask it, leaving the last 4 digits.
@udf.function()
def maskCreditCard(cardNumber: int)-> str:
# Convert the card number to a string
cardNumberStr = str(cardNumber)
# Check if the card number is valid
if not cardNumberStr.isdigit() or not (13 <= len(cardNumberStr) <= 19):
raise ValueError("Invalid credit card number")
# Mask all but the last four digits
maskedNumber = '*' * (len(cardNumberStr) - 4) + cardNumberStr[-4:]
return str(maskedNumber)
När funktionen är klar publicerar du funktionen för att köra den.
Nyckelbegrepp för programmeringsmodell
Dina användardatafunktioner använder Python-programmeringsmodellen User Data Functions för att skapa, köra, felsöka och ändra enskilda funktioner. Det här är ett förstapartsbibliotek som tillhandahåller de funktioner som krävs för att anropa dina funktioner i Infrastrukturresurser och utnyttja alla integreringar.
När du har skapat din första funktion innehåller de första raderna i koden importinstruktionerna med de bibliotek som krävs för att köra mallen.
import datetime
import fabric.functions as fn
import logging
udf = fn.UserDataFunctions()
Anmärkning
Import-instruktionen fabric.functions som innehåller biblioteket och raden som innehåller den här instruktionen udf = fn.UserDataFunctions() är nödvändiga för att köra dina funktioner korrekt. Dina funktioner fungerar inte korrekt om dessa rader saknas.
- För att skapa, köra, hantera funktioner behöver
fabric.functionsdu SDK och några andra viktiga bibliotek somlogginggör att du kan skriva anpassade loggar. -
udf=fn.UserDataFunctions()är konstruktionen för att definiera funktioner i ett användardatafunktionsobjekt.
Hantera datafunktioner
Byt namn på en funktion
I Läget Utveckla väljer du i kodredigeraren och uppdaterar namnet på funktionen. Byt till exempel namn på
hello_fabrichello_fabric1:@udf.function() def hello_fabric1(name: str) -> str: logging.info('Python UDF trigger function processed a request.') return f"Welcome to Fabric Functions, {name}, at {datetime.datetime.now()}!"När du har ändrat namnet väljer du Publicera för att spara ändringarna.
När ändringarna har publicerats kan du visa det nya namnet på funktionen i Functions Explorer.
Ta bort en funktion
Om du vill ta bort en funktion väljer du funktionskod i kodredigeraren och tar bort hela kodavsnittet. Publicera ändringarna för att ta bort dem helt från användardatafunktionsobjektet.
Om du till exempel vill ta bort hello_fabric funktionen tar du bort följande kodblock:
@udf.function()
def hello_fabric(name: str) -> str:
logging.info('Python UDF trigger function processed a request.')
return f"Welcome to Fabric Functions, {name}, at {datetime.datetime.now()}!"
När koden har tagits bort kan du välja Publicera för att spara ändringarna. När publiceringen är klar visas en uppdaterad lista över tillgängliga funktioner i Functions-utforskaren.