Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet ensemble d’articles explique comment utiliser des liaisons Azure Cosmos DB dans Azure Functions. Azure Functions prend en charge les liaisons de déclencheur, d’entrée et de sortie pour Azure Cosmos DB.
| Action | Catégorie |
|---|---|
| Exécuter une fonction lors de la création ou de la modification d’un document Azure Cosmos DB | Déclencheur |
| Lire un document Azure Cosmos DB | Liaison d’entrée |
| Enregistrer les modifications apportées à un document Azure Cosmos DB | Liaison de sortie |
Important
Cette version de l’extension de liaison Azure Cosmos DB prend en charge Azure Functions version 4.x. Si votre application utilise toujours la version 1.x du runtime Functions, consultez plutôt les liaisons Azure Cosmos DB pour Azure Functions 1.x.
Dans le runtime Functions v1.x, cette liaison a été initialement nommée DocumentDB.
API prises en charge
Ce tableau indique comment se connecter aux différentes API Azure Cosmos DB à partir de votre code de fonction :
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 de l’extension des liaisons Azure Cosmos DB 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é.
Ajoutez l’extension à votre projet en installant le package NuGet, version 4.x.
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 ConfigureCosmosDBExtension() sur l’objet :
let hostBuilder = new HostBuilder()
hostBuilder.ConfigureFunctionsWorkerDefaults(fun (context: HostBuilderContext) (appBuilder: IFunctionsWorkerApplicationBuilder) ->
appBuilder.ConfigureCosmosDBExtension() |> ignore
) |> ignore
Installer le bundle
Pour pouvoir utiliser cette extension de liaison dans votre application, assurez-vous que le fichier host.json à la racine de votre projet contient cette extensionBundle référence :
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
Dans cet exemple, la version valeur de [4.0.0, 5.0.0) l’hôte Functions indique à l’hôte Functions d’utiliser une version groupée qui est au moins 4.0.0 mais inférieure à , qui inclut toutes les versions potentielles 5.0.0de 4.x. Cette notation gère efficacement votre application sur la dernière version mineure disponible de l’offre groupée d’extensions v4.x.
Si possible, vous devez utiliser la dernière version principale de l’offre groupée d’extensions et autoriser le runtime à gérer automatiquement la dernière version mineure. Vous pouvez afficher le contenu de la dernière offre groupée sur la page de publication des offres groupées d’extensions. Pour plus d’informations, consultez les bundles d’extensions Azure Functions.
En raison de modifications de schéma dans le kit de développement logiciel (SDK) Azure Cosmos DB, la version 4.x de l’extension Azure Cosmos DB requiert azure-functions-java-library V3.0.0 pour les fonctions Java.
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 des liaisons vers des types depuis Microsoft.Azure.Cosmos est en préversion.
Déclencheur Cosmos DB
Quand vous souhaitez que la fonction traite un seul document, le déclencheur Cosmos DB peut se lier aux types suivants :
| Catégorie | Descriptif |
|---|---|
| Types sérialisables JSON | Functions tente de désérialiser les données JSON du document à partir du flux de modification Cosmos DB dans un type d’objet CLR traditionnel (OCT). |
Quand vous souhaitez que la fonction traite un lot de documents, le déclencheur Cosmos DB peut se lier aux types suivants :
| Catégorie | Descriptif |
|---|---|
IEnumerable<T>where T est un type sérialisable JSON |
Énumération des entités incluses dans le lot. Chaque entrée représente un document du flux de modification Cosmos DB. |
Liaison d’entrée Azure Cosmos DB
Lorsque vous souhaitez que la fonction traite un seul document, la liaison d’entrée Cosmos DB peut se lier aux types suivants :
| Catégorie | Descriptif |
|---|---|
| Types sérialisables JSON | Functions tente de désérialiser les données JSON du document dans un type d’objet CLR traditionnel (OCT). |
Lorsque vous souhaitez que la fonction traite plusieurs documents d’une requête, la liaison d’entrée Cosmos DB peut se lier aux types suivants :
| Catégorie | Descriptif |
|---|---|
IEnumerable<T>where T est un type sérialisable JSON |
Énumération des entités renvoyées par la requête. Chaque entrée représente un document. |
| CosmosClient1 | Client connecté au compte Cosmos DB. |
| Base de données1 | Client connecté à la base de données Cosmos DB. |
| Conteneur1 | Client connecté au conteneur Cosmos DB. |
1 Pour utiliser ces types, vous devez référencer Microsoft.Azure.Functions.Worker.Extensions.CosmosDB 4.4.0 ou version ultérieure et les dépendances communes pour les liaisons de type SDK.
Liaison de sortie Azure Cosmos DB
Lorsque vous souhaitez que la fonction écrive dans un seul document, la liaison de sortie Cosmos DB peut se lier aux types suivants :
| Catégorie | Descriptif |
|---|---|
| Types sérialisables JSON | Objet représentant le contenu JSON d'un document. Functions tente de sérialiser un type d'objet CLR traditionnel (OCT) en données JSON. |
Lorsque vous souhaitez que la fonction écrive dans plusieurs documents, la liaison de sortie Cosmos DB peut se lier aux types suivants :
| Catégorie | Descriptif |
|---|---|
T[] where Test un type sérialisable JSON |
Tableau contenant plusieurs documents. Chaque entrée représente un document. |
Pour d’autres scénarios de sortie, créez et utilisez un CosmosClient avec d’autres types de Microsoft.Azure.Cosmos 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.
Types de liaisons sdk
La prise en charge des types de SDK pour Azure Cosmos est en préversion. Suivez l’exemple de liaisons du SDK Python pour CosmosDB pour bien démarrer avec les types de SDK pour Cosmos dans Python.
Important
L’utilisation de liaisons de type SDK nécessite le modèle de programmation Python v2.
| Liaison | Types de paramètres | Échantillons |
|---|---|---|
| Entrée CosmosDB |
ContainerProxy, CosmosClient, DatabaseProxy |
ContainerProxy,CosmosClient,DatabaseProxy |
Exceptions et codes de retour
| Liaison | Informations de référence |
|---|---|
| Base de données Azure Cosmos DB | Codes d’état HTTP pour Azure Cosmos DB |
Paramètres host.json
Cette section décrit les paramètres de configuration disponibles pour cette liaison dans la version 2.x et les versions ultérieures. Les paramètres dans le fichier host.json s’appliquent à toutes les fonctions dans une instance de l’application de fonction. Pour plus d’informations sur les paramètres de configuration des applications de fonction, consultez host.json référence pour Azure Functions.
{
"version": "2.0",
"extensions": {
"cosmosDB": {
"connectionMode": "Gateway",
"userAgentSuffix": "MyDesiredUserAgentStamp"
}
}
}
| Propriété | Par défaut | Descriptif |
|---|---|---|
| connectionMode | Gateway |
Le mode de connexion utilisé par la fonction lors de la connexion au service Azure Cosmos DB. Options : Direct se connecte directement aux réplicas principaux via TCP et peut fournir une latence inférieure et Gateway acheminer les requêtes via une passerelle frontale via HTTPS. Pour plus d’informations, consultez les modes de connexion du Kit de développement logiciel (SDK) Azure Cosmos DB. |
| userAgentSuffix | n/a | Ajoute la valeur de chaîne spécifiée à toutes les demandes effectuées par le déclencheur ou la liaison au service. Cela facilite le suivi de l’activité dans Azure Monitor, en fonction d’une application de fonction spécifique et du filtrage par User Agent. |