Azure Tables-bindningar för Azure Functions

Azure Functions integreras med Azure Tables via utlösare och bindningar. Genom att integrera med Azure Tables kan du skapa funktioner som läser och skriver data med hjälp av Azure Cosmos DB för Table och Azure Table Storage.

Åtgärd Typ
Läsa tabelldata i en funktion Indatabindning
Tillåt att en funktion skriver tabelldata Utdatabindning

Installera tillägget

Vilket NuGet-tilläggspaket du installerar beror på vilket C#-läge du använder i funktionsappen:

Funktioner körs i en isolerad C#-arbetsprocess. Mer information finns i Guide för att köra C# Azure Functions i en isolerad arbetsprocess.

Processen för att installera tillägget varierar beroende på tilläggsversionen:

Den här versionen introducerar möjligheten att ansluta med hjälp av en identitet i stället för en hemlighet. En självstudiekurs om hur du konfigurerar dina funktionsappar med hanterade identiteter finns i självstudien skapa en funktionsapp med identitetsbaserade anslutningar.

Med den här versionen kan du binda till typer från Azure.Data.Tables. Den introducerar också möjligheten att använda Azure Cosmos DB för table.

Det här tillägget är tillgängligt genom att installera NuGet-paketet Microsoft.Azure.Functions.Worker.Extensions.Tables i ett projekt med version 5.x eller senare av tilläggen för blobar och köer.

Använda .NET CLI:

# Install the Azure Tables extension
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Tables --version 1.0.0

# Update the combined Azure Storage extension (to a version which no longer includes Azure Tables)
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Storage --version 5.0.0

Kommentar

Azure Blobs, Azure Queues och Azure Tables använder nu separata tillägg och refereras individuellt. Om du till exempel vill använda utlösare och bindningar för alla tre tjänsterna i din isolerade .NET-processapp bör du lägga till följande paket i projektet:

Tidigare levererades tilläggen tillsammans som Microsoft.Azure.Functions.Worker.Extensions.Storage, version 4.x. Samma paket har också en version på 5.x som endast refererar till delade paket för blobar och köer. När du uppgraderar paketreferenserna från äldre versioner kan du därför behöva referera till det nya NuGet-paketet Microsoft.Azure.Functions.Worker.Extensions.Tables . När du refererar till dessa nyare delade paket kontrollerar du också att du inte refererar till en äldre version av det kombinerade lagringspaketet, eftersom detta resulterar i konflikter från två definitioner av samma bindningar.

Om du skriver ditt program med hjälp av F# måste du också konfigurera det här tillägget som en del av appens startkonfiguration. I anropet till eller ConfigureFunctionsWebApplication()lägger du till ConfigureFunctionsWorkerDefaults() ett ombud som tar en IFunctionsWorkerApplication parameter. Anropa sedan objektet i brödtexten för ombudet ConfigureTablesExtension() :

let hostBuilder = new HostBuilder()
hostBuilder.ConfigureFunctionsWorkerDefaults(fun (context: HostBuilderContext) (appBuilder: IFunctionsWorkerApplicationBuilder) ->
    appBuilder.ConfigureTablesExtension() |> ignore
) |> ignore

Installera paket

Azure Tables-bindningarna ingår i ett tilläggspaket som anges i din host.json-projektfil. Du kan behöva ändra det här paketet för att ändra versionen av bindningarna, eller om paketen inte redan är installerade. Mer information finns i tilläggspaketet.

Den här versionen introducerar möjligheten att ansluta med hjälp av en identitet i stället för en hemlighet. En självstudiekurs om hur du konfigurerar dina funktionsappar med hanterade identiteter finns i självstudien skapa en funktionsapp med identitetsbaserade anslutningar.

Du kan lägga till den här versionen av tillägget från tilläggspaketet v3 genom att lägga till eller ersätta följande kod i host.json filen:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[3.3.0, 4.0.0)"
    }
}

Bindningstyper

Vilka bindningstyper som stöds för .NET beror på både tilläggsversionen och C#-körningsläget, vilket kan vara något av följande:

Ett isolerat arbetsprocessklassbibliotek kompilerade C#-funktioner körs i en process som är isolerad från körningen.

Välj en version för att se information om bindningstyp för läget och versionen.

Den isolerade arbetsprocessen stöder parametertyper enligt tabellerna nedan. Stöd för bindning till typer från Azure.Data.Tables finns i förhandsversionen.

Azure Tables-indatabindning

När du arbetar med en enskild tabellentitet kan Azure Tables-indatabindningen binda till följande typer:

Typ Beskrivning
En JSON-serialiserbar typ som implementerar ITableEntity Functions försöker deserialisera entiteten till en oformaterad TYP av CLR-objekt (POCO). Typen måste implementera ITableEntity eller ha en strängegenskap RowKey och en strängegenskap PartitionKey .
TableEntity1 Entiteten som en ordlisteliknande typ.

När du arbetar med flera entiteter från en fråga kan Azure Tables-indatabindningen binda till följande typer:

Typ Beskrivning
IEnumerable<T> där T implementerar ITableEntity En uppräkning av entiteter som returneras av frågan. Varje post representerar en entitet. Typen måste implementera ITableEntity eller ha en strängegenskap RowKey och en strängegenskapPartitionKey.T
TableClient1 En klient som är ansluten till tabellen. Detta ger mest kontroll för bearbetning av tabellen och kan användas för att skriva till den om anslutningen har tillräcklig behörighet.

1 Om du vill använda dessa typer måste du referera till Microsoft.Azure.Functions.Worker.Extensions.Tables 1.2.0 eller senare och de vanliga beroendena för SDK-typbindningar.

Azure Tables-utdatabindning

När du vill att funktionen ska skriva till en enda entitet kan Azure Tables-utdatabindningen binda till följande typer:

Typ Beskrivning
En JSON-serialiserbar typ som implementerar [ITableEntity] Functions försöker serialisera en vanlig CLR-objekttyp (POCO) som entitet. Typen måste implementera [ITableEntity] eller ha en strängegenskap RowKey och en strängegenskap PartitionKey .

När du vill att funktionen ska skriva till flera entiteter kan Azure Tables-utdatabindningen binda till följande typer:

Typ Beskrivning
T[] där T är en av de enskilda entitetstyperna En matris som innehåller flera entiteter. Varje post representerar en entitet.

För andra utdatascenarier skapar och använder du typer från Azure.Data.Tables direkt.

Nästa steg