Liaisons Azure Cosmos DB pour Azure Functions 1.x

Important

La prise en charge de la version 1.x du runtime Azure Functions prendra fin le 14 septembre 2026. Nous vous recommandons vivement de migrer vos applications vers la version 4.x pour bénéficier d’une prise en charge complète.

Cet article 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.

Notes

Cet article concerne Azure Functions 1.x. Pour plus d’informations sur l’utilisation de ces liaisons dans Functions 2.x et ultérieur, consultez Liaisons Azure Cosmos DB pour Azure Functions 2.x.

Cette liaison était nommée à l’origine DocumentDB. Dans Azure Functions version 1.x, seul le déclencheur a été renommé Azure Cosmos DB. La liaison d’entrée, la liaison de sortie et le package NuGet conservent le nom DocumentDB.

Notes

Les liaisons Azure Cosmos DB sont uniquement utilisables avec l’API SQL. Pour toutes les autres API Azure Cosmos DB, vous devez accéder à la base de données à partir de votre fonction en utilisant le client statique pour votre API, à savoir Azure Cosmos DB for MongoDB, Azure Cosmos DB for Cassandra, Azure Cosmos DB for Apache Gremlin et Azure Cosmos DB for Table.

Packages - Functions 1.x

Les liaisons Azure Cosmos DB pour Functions version 1.x sont fournies dans le package NuGet Microsoft.Azure.WebJobs.Extensions.DocumentDB, version 1.x. Le code source des liaisons se trouve dans le référentiel GitHub azure-webjobs-sdk-extensions.

Le tableau suivant indique comment ajouter la prise en charge de cette liaison dans chaque environnement de développement.

Environnement de développement Pour ajouter la prise en charge dans
Functions 1.x
Développement local - Bibliothèque de classes C# Installer le package.
Développement local - Script C#, JavaScript, F# Automatique
Développement sur le portail Automatique

Déclencheur

Le déclencheur Azure Cosmos DB utilise le flux de modification Azure Cosmos DB pour écouter les insertions et mises à jour sur plusieurs partitions. Le flux de modification publie les insertions et mises à jour, pas les suppressions.

Déclencheur - exemple

L’exemple suivant montre une fonction C# In-process qui est invoquée lorsqu’il y a des insertions ou mises à jour dans la base de données et la collection spécifiées.

using Microsoft.Azure.Documents;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using System.Collections.Generic;

namespace CosmosDBSamplesV1
{
    public static class CosmosTrigger
    {
        [FunctionName("CosmosTrigger")]
        public static void Run([CosmosDBTrigger(
            databaseName: "ToDoItems",
            collectionName: "Items",
            ConnectionStringSetting = "CosmosDBConnection",
            LeaseCollectionName = "leases",
            CreateLeaseCollectionIfNotExists = true)]IReadOnlyList<Document> documents,
            TraceWriter log)
        {
            if (documents != null && documents.Count > 0)
            {
                log.Info($"Documents modified: {documents.Count}");
                log.Info($"First document Id: {documents[0].Id}");
            }
        }
    }
}

Déclencheur - attributs

Pour les bibliothèques de classes C# In-process, utilisez l’attribut CosmosDBTrigger.

Le constructeur de l’attribut accepte le nom de la base de données et le nom de la collection. Pour plus d’informations sur ces paramètres et d’autres propriétés que vous pouvez configurer, consultez Déclencheur - configuration. Voici un exemple d’attribut CosmosDBTrigger dans une signature de méthode :

    [FunctionName("DocumentUpdates")]
    public static void Run(
        [CosmosDBTrigger("database", "collection", ConnectionStringSetting = "myCosmosDB")]
    IReadOnlyList<Document> documents,
        TraceWriter log)
    {
        ...
    }

Pour obtenir un exemple complet, consultez Déclencheur - exemple C#.

Déclencheur - configuration

Le tableau suivant décrit les propriétés de configuration de liaison que vous définissez dans le fichier function.json et l’attribut CosmosDBTrigger.

Propriété function.json Propriété d’attribut Description
type n/a Cette propriété doit être définie sur cosmosDBTrigger.
direction n/a Cette propriété doit être définie sur in. Ce paramètre est défini automatiquement lorsque vous créez le déclencheur dans le portail Azure.
name n/a Nom de variable utilisé dans le code de fonction, qui représente la liste des documents modifiés.
connectionStringSetting ConnectionStringSetting Nom d’un paramètre d’application contenant la chaîne de connexion utilisée pour se connecter au compte Azure Cosmos DB surveillé.
databaseName DatabaseName Nom de la base de données Azure Cosmos DB contenant la collection surveillée.
collectionName CollectionName Nom de la collection surveillée.
leaseConnectionStringSetting LeaseConnectionStringSetting (Facultatif) Nom d’un paramètre d’application contenant la chaîne de connexion au service stockant la collection de baux. S’il n’est pas défini, la valeur connectionStringSetting est utilisée. Ce paramètre est automatiquement défini lorsque la liaison est créée dans le portail. La chaîne de connexion de la collection de baux doit avoir des autorisations en écriture.
leaseDatabaseName LeaseDatabaseName (Facultatif) Nom de la base de données contenant la collection utilisée pour stocker des baux. S’il n’est pas défini, la valeur du paramètre databaseName est utilisée. Ce paramètre est automatiquement défini lorsque la liaison est créée dans le portail.
leaseCollectionName LeaseCollectionName (Facultatif) Nom de la collection utilisée pour stocker des baux. S’il n’est pas défini, la valeur leases est utilisée.
createLeaseCollectionIfNotExists CreateLeaseCollectionIfNotExists (Facultatif) Lorsque la valeur est définie sur true, la collection de baux est créée automatiquement si elle n’existe pas. La valeur par défaut est false.
leasesCollectionThroughput LeasesCollectionThroughput (Facultatif) Définit la quantité d’unités de requête à attribuer lors de la création de la collection de baux. Ce paramètre est utilisé uniquement quand createLeaseCollectionIfNotExists est défini sur true. Ce paramètre est automatiquement défini lors de la création de la liaison à l’aide du portail.
leaseCollectionPrefix LeaseCollectionPrefix (Facultatif) Quand ce paramètre est défini, il ajoute un préfixe aux baux créés dans la collection Lease pour cette fonction. Cela permet à deux fonctions Azure de partager de façon efficace la même collection Lease en utilisant des préfixes différents.
feedPollDelay FeedPollDelay (Facultatif) Quand ce paramètre est défini, il spécifie, en millisecondes, le délai entre le moment où toutes les modifications sont purgées du flux et le moment où une partition est interrogée afin d’identifier les nouvelles modifications. La valeur par défaut est 5 000 (5 secondes).
leaseAcquireInterval LeaseAcquireInterval (Facultatif) Quand ce paramètre est défini, il spécifie, en millisecondes, l’intervalle pour déclencher une tâche afin de calculer si les partitions sont réparties uniformément parmi les instances d’hôte connues. La valeur par défaut est 13 000 (13 secondes).
leaseExpirationInterval LeaseExpirationInterval (Facultatif) Quand ce paramètre est défini, il spécifie, en millisecondes, l’intervalle selon lequel le bail est pris sur un bail représentant une partition. Si le bail n’est pas renouvelé dans cet intervalle, il expire et une autre instance devient propriétaire de la partition. La valeur par défaut est 60 000 (60 secondes).
leaseRenewInterval LeaseRenewInterval (Facultatif) Quand ce paramètre est défini, il spécifie, en millisecondes, l’intervalle de renouvellement de tous les baux pour les partitions actuellement détenues par une instance. La valeur par défaut est 17 000 (17 secondes).
checkpointFrequency CheckpointFrequency (Facultatif) Quand ce paramètre est défini, il spécifie, en millisecondes, l’intervalle entre les points de contrôle du bail. La valeur par défaut est toujours après chaque appel de fonction.
maxItemsPerInvocation MaxItemsPerInvocation (Facultatif) Quand ce paramètre est défini, il personnalise la quantité maximum d’éléments reçus par appel de fonction.
startFromBeginning StartFromBeginning (Facultatif) Quand cette propriété est définie, elle indique au déclencheur de démarrer la lecture des modifications à partir du début de l’historique de la collection au lieu de l’heure actuelle. Cela fonctionne uniquement au premier démarrage du déclencheur, car les points de contrôle sont déjà stockés lors des exécutions suivantes. L’affectation de la valeur true à cette propriété quand des baux ont déjà été créés n’a aucun effet.

Lorsque vous développez en local, ajoutez vos paramètres d’application dans le fichier local.settings.json de la collection .

Déclencheur - utilisation

Le déclencheur nécessite une deuxième collection qu’il utilise pour stocker des baux sur les partitions. La collection surveillée et la collection contenant les baux doivent être disponibles pour que le déclencheur fonctionne.

Important

Si plusieurs fonctions sont configurées pour utiliser un déclencheur Azure Cosmos DB pour la même collection, chacune de ces fonctions doit utiliser une collection de baux dédiée ou spécifier un LeaseCollectionPrefix différent pour chaque fonction. Sinon, une seule des fonctions est déclenchée. Pour plus d’informations sur le préfixe, consultez la section Configuration.

Le déclencheur n’indique pas si un document a été mis à jour ou inséré, il fournit simplement le document lui-même. Si vous avez besoin de gérer les mises à jour et insertions différemment, vous pouvez le faire en implémentant des champs d’horodatage pour l’insertion ou la mise à jour.

Entrée

La liaison d’entrée Azure Cosmos DB utilise l’API SQL pour récupérer un ou plusieurs documents Azure Cosmos DB et les transmet au paramètre d’entrée de la fonction. L’ID du document ou les paramètres de requête peuvent être déterminés en fonction du déclencheur qui appelle la fonction.

Entrée - exemple

Cette section contient les exemples suivants :

Les exemples font référence à un type ToDoItem simple :

namespace CosmosDBSamplesV1
{
    public class ToDoItem
    {
        public string Id { get; set; }
        public string Description { get; set; }
    }
}

Déclencheur de file d’attente, rechercher l’ID à partir de JSON

L’exemple suivant illustre une fonction C# qui récupère un document unique. La fonction est déclenchée par un message de file d’attente qui contient un objet JSON. Le déclencheur de file d’attente analyse le JSON dans un objet nommé ToDoItemLookup, qui contient l’ID à rechercher. Cet ID est utilisé pour récupérer un document ToDoItem à partir de la base de données et de la collection spécifiées.

namespace CosmosDBSamplesV1
{
    public class ToDoItemLookup
    {
        public string ToDoItemId { get; set; }
    }
}
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;

namespace CosmosDBSamplesV1
{
    public static class DocByIdFromJSON
    {
        [FunctionName("DocByIdFromJSON")]
        public static void Run(
            [QueueTrigger("todoqueueforlookup")] ToDoItemLookup toDoItemLookup,
            [DocumentDB(
                databaseName: "ToDoItems",
                collectionName: "Items",
                ConnectionStringSetting = "CosmosDBConnection",
                Id = "{ToDoItemId}")]ToDoItem toDoItem,
            TraceWriter log)
        {
            log.Info($"C# Queue trigger function processed Id={toDoItemLookup?.ToDoItemId}");

            if (toDoItem == null)
            {
                log.Info($"ToDo item not found");
            }
            else
            {
                log.Info($"Found ToDo item, Description={toDoItem.Description}");
            }
        }
    }
}

Déclencheur HTTP, rechercher l’ID à partir de la chaîne de requête

L’exemple suivant illustre une fonction C# qui récupère un document unique. La fonction est déclenchée par une requête HTTP qui utilise une chaîne de requête pour spécifier l’ID à rechercher. Cet ID est utilisé pour récupérer un document ToDoItem à partir de la base de données et de la collection spécifiées.

using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Azure.WebJobs.Host;
using System.Net;
using System.Net.Http;

namespace CosmosDBSamplesV1
{
    public static class DocByIdFromQueryString
    {
        [FunctionName("DocByIdFromQueryString")]
        public static HttpResponseMessage Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)]HttpRequestMessage req,
            [DocumentDB(
                databaseName: "ToDoItems",
                collectionName: "Items",
                ConnectionStringSetting = "CosmosDBConnection",
                Id = "{Query.id}")] ToDoItem toDoItem,
            TraceWriter log)
        {
            log.Info("C# HTTP trigger function processed a request.");
            if (toDoItem == null)
            {
                log.Info($"ToDo item not found");
            }
            else
            {
                log.Info($"Found ToDo item, Description={toDoItem.Description}");
            }
            return req.CreateResponse(HttpStatusCode.OK);
        }
    }
}

Déclencheur HTTP, rechercher l’ID à partir des données d’itinéraire

L’exemple suivant illustre une fonction C# qui récupère un document unique. Cette fonction est déclenchée par une requête HTTP qui utilise des données de routage pour spécifier l’ID à rechercher. Cet ID est utilisé pour récupérer un document ToDoItem à partir de la base de données et de la collection spécifiées.

using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Azure.WebJobs.Host;
using System.Net;
using System.Net.Http;

namespace CosmosDBSamplesV1
{
    public static class DocByIdFromRouteData
    {
        [FunctionName("DocByIdFromRouteData")]
        public static HttpResponseMessage Run(
            [HttpTrigger(
                AuthorizationLevel.Anonymous, "get", "post",
                Route = "todoitems/{id}")]HttpRequestMessage req,
            [DocumentDB(
                databaseName: "ToDoItems",
                collectionName: "Items",
                ConnectionStringSetting = "CosmosDBConnection",
                Id = "{id}")] ToDoItem toDoItem,
            TraceWriter log)
        {
            log.Info("C# HTTP trigger function processed a request.");

            if (toDoItem == null)
            {
                log.Info($"ToDo item not found");
            }
            else
            {
                log.Info($"Found ToDo item, Description={toDoItem.Description}");
            }
            return req.CreateResponse(HttpStatusCode.OK);
        }
    }
}

Ignorer les exemples d’entrée

Déclencheur HTTP, rechercher l’ID à partir des données d’itinéraire, utilisation de SqlQuery

L’exemple suivant illustre une fonction C# qui récupère un document unique. Cette fonction est déclenchée par une requête HTTP qui utilise des données de routage pour spécifier l’ID à rechercher. Cet ID est utilisé pour récupérer un document ToDoItem à partir de la base de données et de la collection spécifiées.

using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Azure.WebJobs.Host;
using System.Collections.Generic;
using System.Net;
using System.Net.Http;

namespace CosmosDBSamplesV1
{
    public static class DocByIdFromRouteDataUsingSqlQuery
    {
        [FunctionName("DocByIdFromRouteDataUsingSqlQuery")]
        public static HttpResponseMessage Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post",
                Route = "todoitems2/{id}")]HttpRequestMessage req,
            [DocumentDB(
                databaseName: "ToDoItems",
                collectionName: "Items",
                ConnectionStringSetting = "CosmosDBConnection",
                SqlQuery = "select * from ToDoItems r where r.id = {id}")] IEnumerable<ToDoItem> toDoItems,
            TraceWriter log)
        {
            log.Info("C# HTTP trigger function processed a request.");
            foreach (ToDoItem toDoItem in toDoItems)
            {
                log.Info(toDoItem.Description);
            }
            return req.CreateResponse(HttpStatusCode.OK);
        }
    }
}

Ignorer les exemples d’entrée

Déclencheur HTTP, obtenir plusieurs documents, utilisation de SqlQuery

L’exemple suivant illustre une fonction C# qui récupère une liste de documents. Cette fonction est déclenchée par une requête HTTP. La requête est spécifiée dans la propriété d’attribut SqlQuery.

using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Azure.WebJobs.Host;
using System.Collections.Generic;
using System.Net;
using System.Net.Http;

namespace CosmosDBSamplesV1
{
    public static class DocsBySqlQuery
    {
        [FunctionName("DocsBySqlQuery")]
        public static HttpResponseMessage Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)]
                HttpRequestMessage req,
            [DocumentDB(
                databaseName: "ToDoItems",
                collectionName: "Items",
                ConnectionStringSetting = "CosmosDBConnection",
                SqlQuery = "SELECT top 2 * FROM c order by c._ts desc")]
                IEnumerable<ToDoItem> toDoItems,
            TraceWriter log)
        {
            log.Info("C# HTTP trigger function processed a request.");
            foreach (ToDoItem toDoItem in toDoItems)
            {
                log.Info(toDoItem.Description);
            }
            return req.CreateResponse(HttpStatusCode.OK);
        }
    }
}

Ignorer les exemples d’entrée

Déclencheur HTTP, obtenir plusieurs documents, utilisation de DocumentClient (C#)

L’exemple suivant illustre une fonction C# qui récupère une liste de documents. Cette fonction est déclenchée par une requête HTTP. Le code utilise une instance DocumentClient fournie par la liaisonAzure Cosmos DB pour lire une liste de documents. L’instance DocumentClient peut également être utilisée pour les opérations d’écriture.

using Microsoft.Azure.Documents.Client;
using Microsoft.Azure.Documents.Linq;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Azure.WebJobs.Host;
using System;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;

namespace CosmosDBSamplesV1
{
    public static class DocsByUsingDocumentClient
    {
        [FunctionName("DocsByUsingDocumentClient")]
        public static async Task<HttpResponseMessage> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)]HttpRequestMessage req,
            [DocumentDB(
                databaseName: "ToDoItems",
                collectionName: "Items",
                ConnectionStringSetting = "CosmosDBConnection")] DocumentClient client,
            TraceWriter log)
        {
            log.Info("C# HTTP trigger function processed a request.");

            Uri collectionUri = UriFactory.CreateDocumentCollectionUri("ToDoItems", "Items");
            string searchterm = req.GetQueryNameValuePairs()
                .FirstOrDefault(q => string.Compare(q.Key, "searchterm", true) == 0)
                .Value;

            if (searchterm == null)
            {
                return req.CreateResponse(HttpStatusCode.NotFound);
            }

            log.Info($"Searching for word: {searchterm} using Uri: {collectionUri.ToString()}");
            IDocumentQuery<ToDoItem> query = client.CreateDocumentQuery<ToDoItem>(collectionUri)
                .Where(p => p.Description.Contains(searchterm))
                .AsDocumentQuery();

            while (query.HasMoreResults)
            {
                foreach (ToDoItem result in await query.ExecuteNextAsync())
                {
                    log.Info(result.Description);
                }
            }
            return req.CreateResponse(HttpStatusCode.OK);
        }
    }
}

Entrée - attributs

Dans les bibliothèques de classes C# In-process, utilisez l’attribut DocumentDB.

Le constructeur de l’attribut accepte le nom de la base de données et le nom de la collection. Pour plus d’informations sur ces paramètres et d’autres propriétés que vous pouvez configurer, consultez la section de configuration suivante.

Entrée - configuration

Le tableau suivant décrit les propriétés de configuration de liaison que vous définissez dans le fichier function.json et l’attribut DocumentDB.

Propriété function.json Propriété d’attribut Description
type n/a Cette propriété doit être définie sur documentdb.
direction n/a Cette propriété doit être définie sur in.
name n/a Nom du paramètre de liaison qui représente le document dans la fonction.
databaseName DatabaseName Base de données contenant le document.
collectionName CollectionName Nom de la collection qui contient le document.
id Id ID du document à récupérer. Cette propriété prend en charge les expressions de liaison. Ne définissez pas à la fois la propriété id et la propriété sqlQuery. Si vous ne définissez aucune des deux, l’ensemble de la collection est récupéré.
sqlQuery SqlQuery Requête SQL Azure Cosmos DB utilisée pour récupérer plusieurs documents. La propriété prend en charge les liaisons d’exécution, comme dans cet exemple : SELECT * FROM c where c.departmentId = {departmentId}. Ne définissez pas à la fois la propriété id et la propriété sqlQuery. Si vous ne définissez aucune des deux, l’ensemble de la collection est récupéré.
connection ConnectionStringSetting Nom du paramètre d’application contenant votre chaîne de connexion Azure Cosmos DB.
partitionKey PartitionKey Spécifie la valeur de la clé de partition pour la recherche. Peut inclure des paramètres de liaison.

Lorsque vous développez en local, ajoutez vos paramètres d’application dans le fichier local.settings.json de la collection .

Entrée - utilisation

Lorsque la fonction se termine correctement, toutes les modifications apportées au document d’entrée par le biais des paramètres d’entrée nommés sont automatiquement conservées.

Output

La liaison de sortie Azure Cosmos DB vous permet d’écrire un nouveau document dans une base de données Azure Cosmos DB en utilisant l’API SQL.

Sortie - exemple

Cette section contient les exemples suivants :

  • Déclencheur de la file d’attente, écriture d’un document
  • Déclencheur de file d’attente, écriture d’un document à l’aide de IAsyncCollector

Les exemples font référence à un type ToDoItem simple :

namespace CosmosDBSamplesV1
{
    public class ToDoItem
    {
        public string Id { get; set; }
        public string Description { get; set; }
    }
}

Déclencheur de la file d’attente, écriture d’un document

L’exemple suivant montre une fonction C# qui ajoute un document à une base de données, à l’aide des données fournies dans le message de Stockage File d’attente.

using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using System;

namespace CosmosDBSamplesV1
{
    public static class WriteOneDoc
    {
        [FunctionName("WriteOneDoc")]
        public static void Run(
            [QueueTrigger("todoqueueforwrite")] string queueMessage,
            [DocumentDB(
                databaseName: "ToDoItems",
                collectionName: "Items",
                ConnectionStringSetting = "CosmosDBConnection")]out dynamic document,
            TraceWriter log)
        {
            document = new { Description = queueMessage, id = Guid.NewGuid() };

            log.Info($"C# Queue trigger function inserted one row");
            log.Info($"Description={queueMessage}");
        }
    }
}

Déclencheur de la file d’attente, écriture de documents à l’aide d’IAsyncCollector

L’exemple suivant montre une fonction C# qui ajoute une collection de documents à une base de données, à l’aide de données fournies dans un JSON de message de file d’attente.

using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using System.Threading.Tasks;

namespace CosmosDBSamplesV1
{
    public static class WriteDocsIAsyncCollector
    {
        [FunctionName("WriteDocsIAsyncCollector")]
        public static async Task Run(
            [QueueTrigger("todoqueueforwritemulti")] ToDoItem[] toDoItemsIn,
            [DocumentDB(
                databaseName: "ToDoItems",
                collectionName: "Items",
                ConnectionStringSetting = "CosmosDBConnection")]
                IAsyncCollector<ToDoItem> toDoItemsOut,
            TraceWriter log)
        {
            log.Info($"C# Queue trigger function processed {toDoItemsIn?.Length} items");

            foreach (ToDoItem toDoItem in toDoItemsIn)
            {
                log.Info($"Description={toDoItem.Description}");
                await toDoItemsOut.AddAsync(toDoItem);
            }
        }
    }
}

Sortie - attributs

Dans les bibliothèques de classes C# In-process, utilisez l’attribut DocumentDB.

Le constructeur de l’attribut accepte le nom de la base de données et le nom de la collection. Pour plus d’informations sur ces paramètres et d’autres propriétés que vous pouvez configurer, consultez Sortie - configuration. Voici un exemple d’attribut DocumentDB dans une signature de méthode :

    [FunctionName("QueueToDocDB")]
    public static void Run(
        [QueueTrigger("myqueue-items", Connection = "AzureWebJobsStorage")] string myQueueItem,
        [DocumentDB("ToDoList", "Items", Id = "id", ConnectionStringSetting = "myCosmosDB")] out dynamic document)
    {
        ...
    }

Pour obtenir un exemple complet, consultez Sortie.

Sortie - configuration

Le tableau suivant décrit les propriétés de configuration de liaison que vous définissez dans le fichier function.json et l’attribut DocumentDB.

Propriété function.json Propriété d’attribut Description
type n/a Cette propriété doit être définie sur documentdb.
direction n/a Cette propriété doit être définie sur out.
name n/a Nom du paramètre de liaison qui représente le document dans la fonction.
databaseName DatabaseName Base de données contenant la collection dans laquelle le document est créé.
collectionName CollectionName Nom de la collection dans laquelle le document est créé.
createIfNotExists CreateIfNotExists Valeur booléenne indiquant si la collection doit être créée si elle n’existe pas déjà. La valeur par défaut est false car les nouvelles collections sont créées avec un débit réservé, ce qui a des conséquences sur la tarification. Pour plus d’informations, consultez la page relative aux prix appliqués.
partitionKey PartitionKey Lorsque CreateIfNotExists a la valeur true, définit le chemin de la clé de partition pour la collection créée.
collectionThroughput CollectionThroughput Lorsque CreateIfNotExists a la valeur true, définit le débit de la collection créée.
connection ConnectionStringSetting Nom du paramètre d’application contenant votre chaîne de connexion Azure Cosmos DB.

Lorsque vous développez en local, ajoutez vos paramètres d’application dans le fichier local.settings.json de la collection .

Sortie - utilisation

Par défaut, lorsque vous écrivez dans le paramètre de sortie de votre fonction, un document est créé dans votre base de données. Ce document comporte un GUID généré automatiquement en tant qu’ID du document. Vous pouvez spécifier l’ID du document de sortie en spécifiant la propriété id dans l’objet JSON qui est passé au paramètre de sortie.

Notes

Lorsque vous spécifier l’ID d’un document existant, il est remplacé par le nouveau document de sortie.

Exceptions et codes de retour

Liaison Informations de référence
Azure Cosmos DB Codes d’état HTTP pour Azure Cosmos DB

Étapes suivantes