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:
- Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs
- Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues
- Microsoft.Azure.Functions.Worker.Extensions.Tables
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 en TableClient med andra typer från Azure.Data.Tables direkt. Se Registrera Azure-klienter för ett exempel på hur du använder beroendeinmatning för att skapa en klienttyp från Azure SDK.