Associazioni di Azure Cosmos DB per Funzioni di Azure 1.x

Questo articolo descrive come usare le associazioni di Azure Cosmos DB in Funzioni di Azure. Funzioni di Azure supporta i trigger e le associazioni di input e output per Azure Cosmos DB.

Nota

Questo articolo riguarda Funzioni di Azure 1.x. Per informazioni su come usare queste associazioni in Funzioni 2.x e versioni successive, vedere Associazioni di Azure Cosmos DB per Funzioni di Azure 2.x.

Questa associazione è stata originariamente denominata DocumentDB. In Funzioni di Azure versione 1.x solo il trigger è stato rinominato Azure Cosmos DB. L'associazione di input, l'associazione di output e il pacchetto NuGet mantengono il nome di DocumentDB.

Nota

Le associazioni di Azure Cosmos DB sono supportate solo per l'uso con l'API SQL. Per tutte le altre API di Azure Cosmos DB, è necessario accedere al database dalla funzione usando il client statico per l'API, tra cui Azure Cosmos DB per MongoDB, Azure Cosmos DB per Apache Cassandra, Azure Cosmos DB per Apache Gremlin e Azure Cosmos DB for Table.

Pacchetti: Funzioni 1.x

Le associazioni di Azure Cosmos DB per Funzioni versione 1.x sono incluse nel pacchetto NuGet Microsoft.Azure.WebJobs.Extensions.DocumentDB versione 1.x. Il codice sorgente per le associazioni si trova nel repository GitHub azure-webjobs-sdk-extensions.

Nella tabella seguente viene descritto come aggiungere un supporto per questa associazione in ogni ambiente di sviluppo.

Ambiente di sviluppo Per aggiungere un supporto in
Funzioni 1.x
Sviluppo locale - Libreria di classi C# Installare il pacchetto
Sviluppo locale - Script C#, JavaScript, F# Automatico
Sviluppo con il portale Automatico

Trigger

Il trigger di Azure Cosmos DB usa il feed di modifiche di Azure Cosmos DB per rimanere in ascolto degli inserimenti e degli aggiornamenti nelle partizioni. Il feed delle modifiche pubblica aggiunte e aggiornamenti, non eliminazioni.

Trigger - esempio

L'esempio seguente mostra una funzione C# in-process richiamata quando sono presenti inserimenti o aggiornamenti nel database e nella raccolta specificati.

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}");
            }
        }
    }
}

Trigger - attributi

Per le librerie di classi C# in-process, usare l'attributo CosmosDBTrigger .

Il costruttore dell'attributo accetta il nome del database e il nome della raccolta. Per informazioni su tali impostazioni e altre proprietà che è possibile configurare, vedere Trigger - configurazione. Di seguito è riportato un esempio dell'attributo CosmosDBTrigger in una firma del metodo:

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

Per un esempio completo, vedere Trigger - esempio in C#.

Trigger - configurazione

Nella tabella seguente sono illustrate le proprietà di configurazione dell'associazione impostate nel file function.json e nell'attributo CosmosDBTrigger.

Proprietà di function.json Proprietà dell'attributo Descrizione
type n/d Il valore deve essere impostato su cosmosDBTrigger.
direction n/d Il valore deve essere impostato su in. Questo parametro viene impostato automaticamente quando si crea il trigger nel portale di Azure.
nome n/d Il nome della variabile usato nel codice funzione che rappresenta l'elenco di documenti con le modifiche.
connectionStringSetting ConnectionStringSetting Il nome di un'impostazione dell'app che contiene la stringa di connessione usata per connettersi all'account di Azure Cosmos DB monitorato.
databaseName DatabaseName Il nome del database di Azure Cosmos DB con la raccolta monitorata.
collectionName Collectionname Il nome della raccolta monitorata.
leaseConnectionStringSetting LeaseConnectionStringSetting (Facoltativo) Il nome di un'impostazione app che contiene la stringa di connessione al servizio in cui si trova la raccolta del lease. Se non impostato, viene usato il valore connectionStringSetting. Questo parametro viene impostato automaticamente al momento della creazione dell'associazione nel portale. La stringa di connessione per la raccolta di lease deve avere autorizzazioni di scrittura.
leaseDatabaseName LeaseDatabaseName (Facoltativo) Il nome del database in cui si trova la raccolta usata per archiviare i lease. Se non impostato, viene usato il valore dell'impostazione databaseName. Questo parametro viene impostato automaticamente al momento della creazione dell'associazione nel portale.
leaseCollectionName LeaseCollectionName (Facoltativo) Il nome della raccolta usata per archiviare i lease. Se non impostato, viene usato il valore leases.
createLeaseCollectionIfNotExists CreateLeaseCollectionIfNotExists (Facoltativo) Se impostato su true, la raccolta di lease viene creata automaticamente se non esiste già. Il valore predefinito è false.
leasesCollectionThroughput LeasesCollectionThroughput (Facoltativo) Definisce la quantità di unità richiesta da assegnare quando viene creata la raccolta di lease. Questa impostazione viene usata solo quando createLeaseCollectionIfNotExists è impostato su true. Questo parametro viene impostato automaticamente al momento della creazione dell'associazione tramite il portale.
leaseCollectionPrefix LeaseCollectionPrefix (Facoltativo) Se impostato, aggiunge un prefisso ai lease creati nella raccolta Lease per questa funzione, consentendo in modo efficace a due funzioni distinte di Azure di condividere la stessa raccolta Lease usando prefissi diversi.
feedPollDelay FeedPollDelay (Facoltativo) Se impostato, definisce, in millisecondi, il ritardo tra il polling di una partizione alla ricerca di nuove modifiche al feed, dopo la rimozione di tutte le modifiche correnti. Il valore predefinito è 5000 (5 secondi).
leaseAcquireInterval LeaseAcquireInterval (Facoltativo) Se impostato, definisce, in millisecondi, l'intervallo per l'avvio di un'attività che consente di calcolare se le partizioni sono distribuite equamente tra le istanze di host note. Il valore predefinito è 13000 (13 secondi).
leaseExpirationInterval LeaseExpirationInterval (Facoltativo) Se impostato, definisce, in millisecondi, l'intervallo che indica la durata di un lease su un lease che rappresenta una partizione. Se il lease non viene rinnovato entro questo intervallo, ne comporterà la scadenza e la proprietà della partizione passerà a un'altra istanza. Il valore predefinito è 60000 (60 secondi).
leaseRenewInterval LeaseRenewInterval (Facoltativo) Se impostato, definisce, in millisecondi, l'intervallo di rinnovo per tutti i lease per le partizioni attualmente occupate da un'istanza. Il valore predefinito è 17000 (17 secondi).
checkpointFrequency CheckpointFrequency (Facoltativo) Se impostato, definisce, in millisecondi, l'intervallo tra i checkpoint dei lease. Il valore predefinito è sempre dopo ogni chiamata di funzione.
maxItemsPerInvocation MaxItemsPerInvocation (Facoltativo) Se impostato, personalizza il numero massimo di elementi ricevuti per ogni chiamata di funzione.
startFromBeginning StartFromBeginning (Facoltativo) Se impostato, indica al trigger di iniziare a leggere le modifiche dall'inizio della cronologia della raccolta anziché dall'ora corrente. Questo funziona solo al primo avvio del trigger, perché per le esecuzioni successive i checkpoint sono già archiviati. L'impostazione su true in presenza di lease già creati non ha alcun effetto.

Quando si sviluppa in locale, aggiungere le impostazioni dell'applicazione nel file local.settings.json nella Values raccolta.

Trigger - uso

Il trigger richiede una seconda raccolta usata per archiviare i lease nelle partizioni. Sia la raccolta monitorata che la raccolta che contiene i lease deve essere disponibile affinché il trigger funzioni.

Importante

Se più funzioni sono configurate per l'uso di un trigger di Azure Cosmos DB per la stessa raccolta, ognuna delle funzioni deve usare una raccolta di lease dedicata o specificare un'altra LeaseCollectionPrefix per ogni funzione. In caso contrario verrà attivata solo una delle funzioni. Per informazioni sul prefisso, vedere la sezione relativa alla configurazione.

Il trigger non indica se un documento è stato aggiornato o aggiunto, fornisce solo il documento stesso. Se è necessario gestire aggiornamenti e aggiunte in modo diverso, è possibile implementare campi di timestamp per le aggiunte o gli aggiornamenti.

Input

L'associazione di input di Azure Cosmos DB usa l'API SQL per recuperare uno o più documenti di Azure Cosmos DB e li passa al parametro di input della funzione. L'ID documento o i parametri di query possono essere determinati in base al trigger che richiama la funzione.

Input - esempio

Questa sezione contiene gli esempi seguenti:

Gli esempi fanno riferimento a un tipo semplice ToDoItem:

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

Trigger della coda e ricerca dell'ID da JSON

L'esempio seguente illustra una funzione C# che recupera un singolo documento. La funzione viene attivata da un messaggio in coda contenente un oggetto JSON. Il trigger della coda analizza il codice JSON in un oggetto denominato ToDoItemLookup contenente l'ID da cercare. Questo ID viene usato per recuperare un documento ToDoItem dal database e dalla raccolta specificati.

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}");
            }
        }
    }
}

Trigger HTTP e ricerca dell'ID da una stringa di query

L'esempio seguente illustra una funzione C# che recupera un singolo documento. La funzione viene attivata da una richiesta HTTP che usa una stringa di query per specificare l'ID da cercare. Questo ID viene usato per recuperare un documento ToDoItem dal database e dalla raccolta specificati.

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);
        }
    }
}

Trigger HTTP e ricerca dell'ID dai dati della route

L'esempio seguente illustra una funzione C# che recupera un singolo documento. La funzione viene attivata da una richiesta HTTP che usa i dati della route per specificare l'ID da cercare. Questo ID viene usato per recuperare un documento ToDoItem dal database e dalla raccolta specificati.

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);
        }
    }
}

Ignora esempi input

Trigger HTTP e ricerca dell'ID dai dati della route con SqlQuery

L'esempio seguente illustra una funzione C# che recupera un singolo documento. La funzione viene attivata da una richiesta HTTP che usa i dati della route per specificare l'ID da cercare. Questo ID viene usato per recuperare un documento ToDoItem dal database e dalla raccolta specificati.

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);
        }
    }
}

Ignora esempi input

Trigger HTTP e recupero di più documenti con SqlQuery

L'esempio seguente illustra una funzione C# che recupera un elenco di documenti. La funzione viene attivata da una richiesta HTTP. La query è specificata nella proprietà dell'attributo 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);
        }
    }
}

Ignora esempi input

Trigger HTTP e recupero di più documenti con DocumentClient (C#)

L'esempio seguente illustra una funzione C# che recupera un elenco di documenti. La funzione viene attivata da una richiesta HTTP. Il codice usa un'istanza di DocumentClient fornita dall'associazione di Azure Cosmos DB per leggere un elenco di documenti. L'istanza di DocumentClient potrebbe essere usata anche per operazioni di scrittura.

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);
        }
    }
}

Input - attributi

Nelle librerie di classi C# in-process usare l'attributo DocumentDB .

Il costruttore dell'attributo accetta il nome del database e il nome della raccolta. Per informazioni su tali impostazioni e altre proprietà che è possibile configurare, vedere la sezione seguente relativa alla configurazione.

Input - configurazione

Nella tabella seguente sono illustrate le proprietà di configurazione dell'associazione impostate nel file function.json e nell'attributo DocumentDB.

Proprietà di function.json Proprietà dell'attributo Descrizione
type n/d Il valore deve essere impostato su documentdb.
direction n/d Il valore deve essere impostato su in.
nome n/d Nome del parametro di binding che rappresenta il documento nella funzione.
databaseName DatabaseName Database che contiene il documento.
collectionName Collectionname Nome della raccolta che contiene il documento.
id Id ID del documento da recuperare. Questa proprietà supporta le espressioni di associazione. Non impostare entrambe le proprietà id e sqlQuery. Se non si imposta una delle due proprietà, verrà recuperato l'intera raccolta.
sqlQuery SqlQuery Query SQL di Azure Cosmos DB usata per recuperare più documenti. La proprietà supporta le associazioni del runtime, come nell'esempio seguente: SELECT * FROM c where c.departmentId = {departmentId}. Non impostare entrambe le proprietà id e sqlQuery. Se non si imposta una delle due proprietà, verrà recuperato l'intera raccolta.
connection ConnectionStringSetting Nome dell'impostazione app contenente la stringa di connessione di Azure Cosmos DB.
partitionKey PartitionKey Specifica il valore della chiave di partizione per la ricerca. Può includere i parametri di associazione.

Quando si sviluppa in locale, aggiungere le impostazioni dell'applicazione nel file local.settings.json nella Values raccolta.

Input - uso

Quando la funzione termina correttamente, tutte le modifiche apportate al documento di input tramite parametri di input denominati vengono mantenute automaticamente.

Output

L'associazione di output di Azure Cosmos DB consente di scrivere un nuovo documento in un database di Azure Cosmos DB tramite l'API SQL.

Output - esempio

Questa sezione contiene gli esempi seguenti:

  • Trigger della coda e scrittura di un documento
  • Trigger della coda, scrittura di documenti tramite IAsyncCollector

Gli esempi fanno riferimento a un tipo semplice ToDoItem:

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

Trigger della coda e scrittura di un documento

L'esempio seguente mostra una funzione in C# che aggiunge un documento a un database usando i dati forniti nel messaggio dall'archiviazione code.

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}");
        }
    }
}

Trigger della coda e scrittura di documenti con IAsyncCollector

L'esempio seguente illustra una funzione C# che aggiunge una raccolta di documenti a un database usando i dati forniti nel codice JSON di un messaggio in coda.

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);
            }
        }
    }
}

Output - attributi

Nelle librerie di classi C# in-process usare l'attributo DocumentDB .

Il costruttore dell'attributo accetta il nome del database e il nome della raccolta. Per informazioni su tali impostazioni e altre proprietà che è possibile configurare, vedere Output - configurazione. Di seguito è riportato un esempio dell'attributo DocumentDB in una firma del metodo:

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

Per un esempio completo, vedere Output.

Output - configurazione

Nella tabella seguente sono illustrate le proprietà di configurazione dell'associazione impostate nel file function.json e nell'attributo DocumentDB.

Proprietà di function.json Proprietà dell'attributo Descrizione
type n/d Il valore deve essere impostato su documentdb.
direction n/d Il valore deve essere impostato su out.
nome n/d Nome del parametro di binding che rappresenta il documento nella funzione.
databaseName DatabaseName Database contenente la raccolta in cui viene creato il documento.
collectionName Collectionname Nome della raccolta in cui viene creato il documento.
createIfNotExists CreateIfNotExists Valore booleano che indica se la raccolta viene creata quando non esiste. Il valore predefinito è false perché le nuove raccolte vengono create con una velocità effettiva riservata, che ha implicazioni in termini di costi. Per altre informazioni vedere la pagina dei prezzi.
partitionKey PartitionKey Se CreateIfNotExists è true, definisce il percorso della chiave di partizione per la raccolta creata.
collectionThroughput CollectionThroughput Se CreateIfNotExists è true, definisce la velocità effettiva della raccolta creata.
connection ConnectionStringSetting Nome dell'impostazione app contenente la stringa di connessione di Azure Cosmos DB.

Quando si sviluppa in locale, aggiungere le impostazioni dell'applicazione nel file local.settings.json nella Values raccolta.

Output - uso

Per impostazione predefinita, quando si scrive nel parametro di output della funzione, viene creato un documento nel database. L'ID di questo documento è un GUID generato automaticamente. È possibile specificare l'ID del documento di output specificando la proprietà id nell'oggetto JSON passato al parametro di output.

Nota

Quando si specifica l'ID di un documento esistente, questo viene sovrascritto dal nuovo documento di output.

Eccezioni e codici restituiti

Binding Informazioni di riferimento
Azure Cosmos DB Codici di stato HTTP per Azure Cosmos DB

Passaggi successivi