Anslut till Fabric-artiklar från dina datafunktioner i Fabric-användares objekt

Infrastrukturanvändardatafunktioner ger anslutningar till infrastrukturresurser och objekt som stöds med hjälp av funktionen Hantera anslutningar i Infrastrukturportalen. Med den här funktionen kan du ansluta till dina Infrastruktur-datakällor utan att behöva skapa anslutningssträngar eller hantera autentiseringsuppgifter för åtkomst. För tygobjekt som inte är en datakälla kan du säkert ansluta till dessa objekt inom en funktion.

I den här artikeln lär du dig att:

  • Skapa en ny anslutning för ditt användardatafunktionsobjekt.
  • Använd din nya anslutning i funktionskoden.
  • Ändra eller ta bort dataanslutningen.

Stödda objekt i Fabric-användardatafunktioner

Följande objekt stöds för närvarande för infrastrukturanvändardatafunktioner:

Skapa en ny dataanslutning för ditt användardatafunktionsobjekt

Alla dataanslutningar som du lägger till är associerade med ditt användardatafunktionsobjekt och kan refereras till i koden för någon av dina funktioner. Om du vill följa den här guiden behöver du ett befintligt Fabric-användardatafunktionsobjekt och en befintlig Fabric-datakälla.

1. Få åtkomst till funktionen Hantera anslutningar från Functions-portalen

I Läget Utveckla letar du upp och väljer Hantera anslutningar i menyfliksområdet i Funktionsportalredigeraren.

Skärmbild av funktionsportalredigeraren med knappen Hantera anslutningar markerad.

Fönstret som öppnas innehåller alla dataanslutningar som du har skapat. Välj Lägg till dataanslutning för att skapa en ny anslutning.

Skärmbild av sidofönstret med fliken Anslutningar markerad och inga anslutningar i listan.

2. Välj din dataanslutning från OneLake-katalogen

När du väljer Lägg till dataanslutning öppnas OneLake-katalogen med en lista över alla datakällor som ditt användarkonto har åtkomst till. Listan filtreras så att den endast innehåller datakällor som stöds, varav vissa kan finnas på andra arbetsytor.

Välj din datakälla och välj sedan Anslut.

Skärmbild av OneLake-datakatalogen med en lista över datakällor.

Anmärkning

Om du inte hittar den datakälla du letar efter kontrollerar du att du har rätt behörighet att ansluta till den. Du kan också se till att du använder en datakälla som stöds enligt listan i början av den här artikeln.

När den nya anslutningen till den valda datakällan har skapats visas den i sidofönstret på fliken Anslutningar. När du ser anslutningen noterar du det aliasfält som genererades för den. Du behöver det här aliaset för att referera till anslutningen från valfri funktion i användardatafunktionsobjektet.

Skärmbild av fönstret på anslutningssidan med en ny datakälla som skapats.

3. Använd ditt anslutningsalias i funktionskoden

När du är tillbaka i portalredigeraren måste du lägga till aliaset för anslutningen som du skapade på fliken Manage Connections i koden. Det här aliaset skapas automatiskt baserat på namnet på det infrastrukturobjekt som du ansluter till.

I det här fallet använder vi ett kodexempel med namnet "Läsa data från en tabell i SQL Database". Du hittar det här exemplet genom att klicka på fliken Redigera och sedan klicka på knappen Infoga exempel och navigera till "SQL Database".

Skärmbild av Infoga exempeldatakatalog med en lista över datakällor.

Det här är exempelkoden som infogades:

@udf.connection(argName="sqlDB",alias="<alias for sql database>")
@udf.function()
def read_from_sql_db(sqlDB: 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);"

    # Establish a connection to the SQL database
    connection = sqlDB.connect()
    cursor = connection.cursor()

    query.capitalize()

    # Execute the query
    cursor.execute(query)

    # Fetch all results
    results = []
    for row in cursor.fetchall():
        results.append(row)

    # Close the connection
    cursor.close()
    connection.close()
        
    return results

Anmärkning

Även om det här exemplet ansluter till en SQL Database behöver det inte något schema eller data i databasen för att köras.

Om du vill använda dataanslutningen som du skapade ändrar du följande rad i det här exemplet: @udf.connection(argName="sqlDB",alias="<alias for sql database>") genom att ersätta värdet alias för med den som du fick från Manage Connections menyn. Följande kod visar det här exemplet med värdet ContosoSalesDat:

@udf.connection(argName="sqlDB",alias="ContosoSalesDat")
@udf.function()
def read_from_sql_db(sqlDB: fn.FabricSqlConnection)-> list:
    [...]

När du har ändrat koden kan du testa ändringarna med hjälp av testfunktionen i utvecklingsläge. När du är klar kan du publicera funktionen med knappen Publicera i verktygsfältet. Den här åtgärden kan ta några minuter.

Skärmbild av knappen Publicera.

När publiceringen är klar kan du köra funktionen genom att hovra på dess namn i listan Functions Explorer och klicka på knappen "Kör" på sidopanelen. Den nedre panelen "Utdata" visar resultatet av att köra funktionen.

Skärmbild av sidopanelen som används för att köra en funktion.

Och det är allt du behöver för att ansluta till en datakälla från dina användardatafunktioner för infrastrukturresurser.

Hämta variabler från Fabric-variabelbibliotek

Ett fabriksvariabelbibliotek i Microsoft Fabric är en centraliserad lagringsplats för hantering av variabler som kan användas i olika objekt inom en arbetsyta. Det gör att utvecklare kan anpassa och dela objektkonfigurationer effektivt. Följ dessa steg för att använda variabelbibliotek i dina funktioner:

  1. Lägg till en anslutning till ett variabelbibliotek med hantera anslutningar och hämta aliaset för variabelbiblioteksobjektet.
  2. Lägg till en anslutningsdekoratör för variabelbiblioteksobjektet. Till exempel @udf.connection(argName="varLib", alias="<My Variable Library Alias>") och ersätt alias till den nyligen tillagda anslutningen för variabelbiblioteksobjektet.
  3. I funktionsdefinitionen inkluderar du ett argument med typen fn.FabricVariablesClient. Den här klienten innehåller metoder som du behöver för att arbeta med biblioteksobjektet variabler.
  4. Använd getVariables() metoden för att hämta alla variabler från variabelbiblioteket.
  5. Om du vill läsa värdena för variablerna använder du antingen ["variable-name"] eller .get("variable-name").

Exempel I det här exemplet simulerar vi ett konfigurationsscenario för en produktions- och utvecklingsmiljö. Den här funktionen anger en lagringssökväg beroende på den valda miljön med hjälp av ett värde som hämtats från variabelbiblioteket. Variabelbiblioteket innehåller en variabel med namnet ENV där användare kan ange värdet dev eller prod.

@udf.connection(argName="varLib", alias="<My Variable Library Alias>")
@udf.function()
def get_storage_path(dataset: str, varLib: fn.FabricVariablesClient) -> str:
    """
    Description: Determine storage path for a dataset based on environment configuration from Variable Library.
    
    Args:
        dataset_name (str): Name of the dataset to store.
        varLib (fn.FabricVariablesClient): Fabric Variable Library connection.
    
    Returns:
        str: Full storage path for the dataset.
    """
    # Retrieve variables from Variable Library
    variables = varLib.getVariables()
    
    # Get environment and base paths
    env = variables.get("ENV")    
    dev_path = variables.get("DEV_FILE_PATH")
    prod_path = variables.get("PROD_FILE_PATH")
    
    # Apply environment-specific logic
    if env.lower() == "dev":
        return f"{dev_path}{dataset}/"
    elif env.lower() == "prod":
        return f"{prod_path}{dataset}/"
    else:
        return f"incorrect settings define for ENV variable"