Skapa ett datafunktionsobjekt för Fabric-användare

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

Skapa ett nytt objekt för användardatafunktioner för infrastrukturresurser

  1. Välj din arbetsyta och välj på + Nytt objekt.
  2. Välj Objekttyp som Alla objekt. Sök efter och välj Användardatafunktioner.

Skapa ett nytt användardatafunktionsobjekt

  1. På arbetsytan väljer du + Nytt objekt.

  2. I fönstret som öppnas söker user data functionsdu efter och väljer sedan panelen.

    Skärmbild som visar panelen användardatafunktioner i det nya objektfönstret.

  3. Ange ett namn för användardatafunktionsobjektet.

  4. Välj Ny funktion för att skapa en hello_fabric Python-funktionsmall. Functions-utforskaren visar alla funktioner som är publicerade och redo att anropas.

    Skärmbild som visar hur du skapar en ny funktion med hjälp av en mall.

  5. hello_fabric När funktionen har publicerats kan du köra den från listan över funktioner i Functions-utforskaren.

    Skärmbild som visar koden för funktionen hello-fabric.

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:

  1. 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.

    Skärmbild som visar hur du hanterar bibliotek.

    Anmärkning

    fabric_user_data_functions biblioteket 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.

  2. Välj Pandas-biblioteket och välj versionen. När biblioteket har lagts till sparas det automatiskt i objektet Användardatafunktioner.

    Skärmbild som visar hur du lägger till Pandas-bibliotek.

  3. 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.

    Skärmbild som visar hur du infogar ett exempel som använder Pandas-biblioteket.

  4. När exemplet har infogats i redigeraren testar du det med hjälp av testfunktionen i läget Utveckla.

  5. 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.

    Skärmbild som visar kodfragmentet för exemplet i redigeraren.

  6. 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.

    Skärmbild som visar kodfragmentet för exemplet i redigeraren.

Kör din funktion

  1. 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.

    Animerad skärmbild som visar hur du växlar till läget Kör endast.

  2. Välj Ikonen Kör som visas när du hovra över en funktion i listan Funktionsutforskaren.

    Skärmbild som visar hur du kör funktionerna.

  3. Skicka de obligatoriska parametrarna som visas som ett formulär i Functions-utforskaren. I det här fallet ska vi köra manipulate_data funktionen som kräver en JSON-sträng som en parameter.

    [
     {
      "Name": "John",
      "Age": 22,
      "Gender": "male"
     }
    ]
    
  4. Välj Kör för att köra funktionen.

    Skärmbild som visar utdata när en funktion har körts.

  5. 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.functions du SDK och några andra viktiga bibliotek som logging gö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

  1. 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()}!"
    
  2. När du har ändrat namnet väljer du Publicera för att spara ändringarna.

  3. 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.

Nästa steg