Azure Tables-bindingen voor Azure Functions

Azure Functions kan worden geïntegreerd met Azure Tables via triggers en bindingen. Door te integreren met Azure Tables kunt u functies bouwen die gegevens lezen en schrijven met behulp van Azure Cosmos DB voor Table en Azure Table Storage.

Actie Type
Tabelgegevens lezen in een functie Invoerbinding
Toestaan dat een functie tabelgegevens schrijft Uitvoerbinding

De extensie installeren

Het NuGet-extensiepakket dat u installeert, is afhankelijk van de C#-modus die u gebruikt in uw functie-app:

Functies worden uitgevoerd in een geïsoleerd C#-werkproces. Zie De handleiding voor het uitvoeren van C# Azure Functions in een geïsoleerd werkproces voor meer informatie.

Het proces voor het installeren van de extensie varieert afhankelijk van de extensieversie:

Deze versie introduceert de mogelijkheid om verbinding te maken met behulp van een identiteit in plaats van een geheim. Zie de zelfstudie over het maken van een functie-app met op identiteit gebaseerde verbindingen voor een zelfstudie over het configureren van uw functie-apps met beheerde identiteiten.

Met deze versie kunt u verbinding maken met typen van Azure.Data.Tables. Het introduceert ook de mogelijkheid om Azure Cosmos DB voor Table te gebruiken.

Deze extensie is beschikbaar door het NuGet-pakket Microsoft.Azure.Functions.Worker.Extensions.Tables In een project te installeren met versie 5.x of hoger van de extensies voor blobs en wachtrijen.

De .NET CLI gebruiken:

# 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

Notitie

Azure Blobs, Azure Queues en Azure Tables maken nu gebruik van afzonderlijke extensies en worden afzonderlijk verwezen. Als u bijvoorbeeld de triggers en bindingen voor alle drie de services in uw .NET-proces-app wilt gebruiken, moet u de volgende pakketten toevoegen aan uw project:

Voorheen werden de extensies samen geleverd als Microsoft.Azure.Functions.Worker.Extensions.Storage, versie 4.x. Hetzelfde pakket heeft ook een 5.x-versie, die alleen verwijst naar de gesplitste pakketten voor blobs en wachtrijen. Wanneer u uw pakketverwijzingen van oudere versies bijwerkt, moet u mogelijk ook verwijzen naar het nieuwe Microsoft.Azure.Functions.Worker.Extensions.Tables NuGet-pakket. Wanneer u naar deze nieuwere gesplitste pakketten verwijst, moet u er ook voor zorgen dat u niet verwijst naar een oudere versie van het gecombineerde opslagpakket, omdat dit conflicten oplevert van twee definities van dezelfde bindingen.

Als u uw toepassing schrijft met F#, moet u deze extensie ook configureren als onderdeel van de opstartconfiguratie van de app. Voeg in de aanroep naar ConfigureFunctionsWorkerDefaults() of ConfigureFunctionsWebApplication()een gemachtigde toe die een IFunctionsWorkerApplication parameter gebruikt. Roep vervolgens binnen de hoofdtekst van die gemachtigde ConfigureTablesExtension() het object aan:

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

Bundel installeren

De Azure Tables-bindingen maken deel uit van een extensiebundel, die is opgegeven in uw host.json projectbestand. Mogelijk moet u deze bundel wijzigen om de versie van de bindingen te wijzigen of als bundels nog niet zijn geïnstalleerd. Zie uitbreidingsbundel voor meer informatie.

Deze versie introduceert de mogelijkheid om verbinding te maken met behulp van een identiteit in plaats van een geheim. Zie de zelfstudie over het maken van een functie-app met op identiteit gebaseerde verbindingen voor een zelfstudie over het configureren van uw functie-apps met beheerde identiteiten.

U kunt deze versie van de extensie toevoegen vanuit de extensiebundel v3 door de volgende code toe te voegen of te vervangen in uw host.json bestand:

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

Bindingstypen

De bindingstypen die worden ondersteund voor .NET zijn afhankelijk van zowel de extensieversie als de C#-uitvoeringsmodus. Dit kan een van de volgende zijn:

Een geïsoleerde werkprocesklassebibliotheek gecompileerde C#-functie wordt uitgevoerd in een proces dat is geïsoleerd van de runtime.

Kies een versie om de details van het bindingstype voor de modus en versie weer te geven.

Het geïsoleerde werkproces ondersteunt parametertypen volgens de onderstaande tabellen. Ondersteuning voor binding met typen van Azure.Data.Tables is in preview.

Azure Tables-invoerbinding

Wanneer u met één tabelentiteit werkt, kan de Azure Tables-invoerbinding worden gekoppeld aan de volgende typen:

Type Description
Een serialiseerbaar JSON-type dat ITableEntity implementeert Functions probeert de entiteit te deserialiseren in een niet-oud CLR-objecttype (POCO). Het type moet ITableEntity implementeren of een tekenreekseigenschap RowKey en een tekenreekseigenschap PartitionKey hebben.
TableEntity1 De entiteit als een woordenlijstachtig type.

Wanneer u met meerdere entiteiten vanuit een query werkt, kan de Azure Tables-invoerbinding worden gekoppeld aan de volgende typen:

Type Description
IEnumerable<T>waarbij T ITableEntity wordt geïmplementeerd Een opsomming van entiteiten die door de query worden geretourneerd. Elke vermelding vertegenwoordigt één entiteit. Het type T moet ITableEntity implementeren of een tekenreekseigenschap RowKey en een tekenreekseigenschap PartitionKey hebben.
TableClient1 Een client die is verbonden met de tabel. Dit biedt het meeste beheer voor het verwerken van de tabel en kan worden gebruikt om ernaar te schrijven als de verbinding voldoende machtigingen heeft.

1 Als u deze typen wilt gebruiken, moet u verwijzen naar Microsoft.Azure.Functions.Worker.Extensions.Tables 1.2.0 of hoger en de algemene afhankelijkheden voor SDK-typebindingen.

Uitvoerbinding van Azure Tables

Wanneer u wilt dat de functie naar één entiteit schrijft, kan de Azure Tables-uitvoerbinding worden gekoppeld aan de volgende typen:

Type Description
Een type JSON serializeerbaar dat [ITableEntity] implementeert Functions probeert een normaal oud CLR-objecttype (POCO) als entiteit te serialiseren. Het type moet [ITableEntity] implementeren of een tekenreekseigenschap RowKey en een tekenreekseigenschap PartitionKey hebben.

Wanneer u wilt dat de functie naar meerdere entiteiten schrijft, kan de Azure Tables-uitvoerbinding worden gekoppeld aan de volgende typen:

Type Description
T[] waarbij T een van de entiteitstypen is Een matrix met meerdere entiteiten. Elke vermelding vertegenwoordigt één entiteit.

Voor andere uitvoerscenario's maakt en gebruikt u rechtstreeks typen van Azure.Data.Tables .

Volgende stappen