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 :
- Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs
- Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues
- Microsoft.Azure.Functions.Worker.Extensions.Tables
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> où 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[] où 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 un TableClient avec d’autres types à partir d’Azure.Data.Tables directement. Consultez Inscrire des clients Azure pour obtenir un exemple d’utilisation de l’injection de dépendances pour créer un type de client à partir du Kit de développement logiciel (SDK) Azure.