Liaisons Tables Azure pour Azure Functions

Azure Functions s’intègre à Tables Azure via des déclencheurs et des liaisons. L’intégration à Tables Azure vous permet de créer des fonctions qui lisent et écrivent des données à l’aide d’Azure Cosmos DB for Table et de Stockage Table Azure .

Action Type
Lire les données d’une table dans une fonction Liaison d’entrée
Autoriser une fonction à écrire des données de table Liaison de sortie

Installer l’extension

Le package NuGet de l’extension que vous installez dépend du mode C# que vous utilisez dans votre application de fonction :

Les fonctions s’exécutent dans un processus de travail C# isolé. Pour en savoir plus, consultez Guide pour l’exécution d’Azure Functions C# dans un processus Worker isolé.

Le processus d’installation de l’extension varie en fonction de la version de l’extension :

Cette version introduit la possibilité de se connecter à l’aide d’une identité au lieu d’un secret. Pour obtenir un tutoriel sur la configuration de vos applications de fonction avec des identités managées, consultez le tutoriel Création d’une application de fonction avec des connexions basées sur l’identité.

Cette version vous permet de lier des types à partir de Azure.Data.Tables. Il introduit également la possibilité d’utiliser Azure Cosmos DB for Table.

Cette extension est disponible en installant le package NuGet Microsoft.Azure.Functions.Worker.Extensions.Tables dans un projet utilisant la version 5.x ou une version ultérieure de l’extension pour les objets blob et les files d’attente.

Utilisation de l’interface CLI .NET :

# 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

Notes

Les objets blob Azure, les files d’attente Azure et les tables Azure utilisent désormais des extensions distinctes, et sont référencés individuellement. Par exemple, pour utiliser les déclencheurs et les liaisons pour les trois services de votre application à processus isolé .NET, vous devez ajouter les packages suivants à votre projet :

Auparavant, les extensions étaient fournies en tant que Microsoft.Azure.Functions.Worker.Extensions.Storage, version 4.x. Ce même package a également une version 5.x, qui fait référence aux packages fractionnés pour les objets blob et les files d’attente uniquement. Lors de la mise à niveau de vos références de package à partir d’anciennes versions, vous devrez peut-être également référencer le nouveau package NuGet Microsoft.Azure.Functions.Worker.Extensions.Tables. En outre, lors du référencement de ces packages fractionnés plus récents, veillez à ne pas référencer une version antérieure du package de stockage combiné, car cela entraîne des conflits à partir de deux définitions des mêmes liaisons.

Si vous écrivez votre application en tirant parti de F#, vous devez également configurer cette extension dans le cadre de la configuration de démarrage de l’application. Dans l’appel à ConfigureFunctionsWorkerDefaults() ou ConfigureFunctionsWebApplication(), ajoutez un délégué prenant un paramètre IFunctionsWorkerApplication. Ensuite, dans le corps de ce délégué, appelez ConfigureTablesExtension() sur l’objet :

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

Installer le bundle

Les liaisons de tables Azure font partie d’un groupe d’extensions, qui est spécifié dans votre fichier projet host.json. Vous devrez peut-être modifier ce bundle pour modifier la version des liaisons, ou si les bundles ne sont pas déjà installés. Pour plus d’informations, consultez le bundle d’extensions.

Cette version introduit la possibilité de se connecter à l’aide d’une identité au lieu d’un secret. Pour obtenir un tutoriel sur la configuration de vos applications de fonction avec des identités managées, consultez le tutoriel sur la création d’une application de fonction avec des connexions basées sur l’identité.

Vous pouvez ajouter cette version de l’extension à partir de l’offre groupée d’extension v3 en ajoutant ou en remplaçant le code suivant dans votre fichier host.json :

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

Types de liaisons

Les types de liaisons pris en charge pour .NET dépendent à la fois de la version de l’extension et du mode d’exécution C#, qui peut être l’un des suivants :

Une bibliothèque de classes de processus Worker isolé est une fonction C# compilée exécutée dans un processus Worker isolé du runtime.

Choisissez une version pour afficher les détails des types de liaison du mode et de la version.

Le processus Worker isolé prend en charge les types de paramètres en fonction des tableaux ci-dessous. La prise en charge de la liaison aux types à partir d’Azure.Data.Tables est en préversion.

Liaison d’entrée de Tables Azure

Lors de l’utilisation d’une seule entité de table, la liaison d’entrée Tables Azure peut être liée aux types suivants :

Type Description
Type sérialisable JSON qui implémente ITableEntity Functions tente de désérialiser l’entité dans un type d’objet POCO (Plain-Old CLR Object). Le type doit implémenter ITableEntity ou avoir des propriétés de chaîne RowKey et PartitionKey.
TableEntity1 Entité en tant que type de type dictionnaire.

Quand vous utilisez plusieurs entités à partir d’une requête, la liaison d’entrée Tables Azure peut être liée aux types suivants :

Type Description
IEnumerable<T>T implémente ITableEntity Énumération des entités renvoyées par la requête. Chaque entrée représente une entité. Le type T doit implémenter ITableEntity ou avoir des propriétés de chaîne RowKey et PartitionKey.
TableClient1 Client connecté à la table. Cela offre un meilleur contrôle pour le traitement de la table et peut être utilisé pour écrire dans celle-ci si la connexion dispose d’autorisations suffisantes.

1 Pour utiliser ces types, vous devez référencer Microsoft.Azure.Functions.Worker.Extensions.Tables 1.2.0 ou version ultérieure et les dépendances courantes pour les liaisons de type kit de développement logiciel (SDK).

Liaison de sortie de tables Azure

Lorsque vous souhaitez que la fonction écrive dans une seule entité, la liaison de sortie de Tables Azure peut se lier aux types suivants :

Type Description
Un type sérialisable JSON qui implémente [ITableEntity] Functions tente de sérialiser un type d’objet CLR traditionnel (POCO) en tant qu’entité. Le type doit implémenter [ITableEntity] ou avoir une propriété de chaîne RowKey et une propriété de chaîne PartitionKey.

Lorsque vous souhaitez que la fonction écrive dans plusieurs entités, la liaison de sortie de Tables Azure peut se lier aux types suivants :

Type Description
T[]T est l’un des types d’entités uniques Un tableau contenant plusieurs entités. Chaque entrée représente une entité.

Pour d'autres scénarios de sortie, créez et utilisez directement des types à partir d’Azure.Data.Tables.

Étapes suivantes