Partekatu honen bidez:


Enlaces de Azure Cosmos DB para Azure Functions 1.x

En este artículo se explica cómo trabajar con enlaces de Azure Cosmos DB en Azure Functions. Azure Functions enlaces de desencadenador, de entrada y de salida para Azure Cosmos DB.

Nota

Este artículo trata sobre Azure Functions 1.x. Para más información acerca del uso de estos enlaces en Functions 2.x y versiones posteriores, consulte Enlaces de Azure Cosmos DB para Azure Functions 2.x.

Este enlace se llamaba originalmente DocumentDB. En la versión 1.x de Azure Functions, solo se cambió el nombre del desencadenador a Azure Cosmos DB; el enlace de entrada, el enlace de salida y el paquete NuGet conservan el nombre DocumentDB.

Nota

Solo se admiten enlaces de Azure Cosmos DB para su uso con la API de SQL. Para el resto de API de Azure Cosmos DB, debe acceder a la base de datos desde la función mediante el cliente estático de la API, incluidas Azure Cosmos DB for MongoDB, Azure Cosmos DB for Apache Cassandra, Azure Cosmos DB for Apache Gremlin y Azure Cosmos DB for Table.

Paquetes: Functions 1.x

Los enlaces de Azure Cosmos DB para la versión 1.x de Functions se proporcionan en el paquete NuGet Microsoft.Azure.WebJobs.Extensions.DocumentDB, versión 1.x. El código fuente de los enlaces está en el repositorio azure-webjobs-sdk-extensions de GitHub.

En la tabla siguiente se muestra cómo agregar compatibilidad con el enlace de salida en cada entorno de desarrollo.

Entorno de desarrollo Para agregar compatibilidad en Functions 1.x
Desarrollo local: biblioteca de clases de C# Instalación del paquete
Desarrollo local: script de C#, JavaScript, F# Automático
Desarrollo con Portal Automático

Desencadenador

El desencadenador de Azure Cosmos DB utiliza la fuente de cambios de Azure Cosmos DB para estar atento a las inserciones y actualizaciones de las particiones. La fuente de cambios publica inserciones y actualizaciones, no eliminaciones.

Desencadenador: ejemplo

En el ejemplo siguiente se muestra una función de C# en proceso que se invoca cuando hay inserciones o actualizaciones en la base de datos y la colección especificadas.

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

Desencadenador: atributos

Para las bibliotecas de clases de C# en proceso, use el atributo CosmosDBTrigger .

El constructor del atributo toma el nombre de la base de datos y el nombre de la colección. Para información sobre esos valores y otras propiedades que puede configurar, consulte Desencadenador: configuración. A continuación, se muestra un ejemplo del atributo CosmosDBTrigger en una signatura de método:

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

Para un ejemplo completo, consulte Desencadenador: ejemplo de C#.

Desencadenador: configuración

En la siguiente tabla se explican las propiedades de configuración de enlace que se definen en el archivo function.json y el atributo CosmosDBTrigger.

Propiedad de function.json Propiedad de atributo Descripción
type N/D Se debe establecer en cosmosDBTrigger.
direction N/D Se debe establecer en in. Este parámetro se establece automáticamente cuando se crea el desencadenador en Azure Portal.
name N/D Nombre de la variable que se utiliza en el código de función y que representa la lista de documentos con los cambios.
connectionStringSetting ConnectionStringSetting Nombre de una configuración de aplicación que contiene la cadena de conexión utilizada para conectarse a la cuenta de Azure Cosmos DB que se está supervisando.
databaseName DatabaseName Nombre de la base de datos de Azure Cosmos DB con la colección que se está supervisando.
collectionName CollectionName Nombre de la colección que se está supervisando.
leaseConnectionStringSetting LeaseConnectionStringSetting (Opcional) Nombre de una configuración de aplicación que contiene la cadena de conexión al servicio que incluye la colección de concesiones. Si no se establece, se usa el valor connectionStringSetting. Este parámetro se establece automáticamente cuando se crea el enlace en el portal. La cadena de conexión para la colección de concesiones debe tener permisos de escritura.
leaseDatabaseName LeaseDatabaseName (Opcional) Nombre de la base de datos que contiene la colección que se usa para almacenar las concesiones. Si no se establece, se usa el valor de la configuración databaseName. Este parámetro se establece automáticamente cuando se crea el enlace en el portal.
leaseCollectionName LeaseCollectionName (Opcional) Nombre de la colección que se usa para almacenar concesiones. Si no se establece, se usa el valor leases.
createLeaseCollectionIfNotExists CreateLeaseCollectionIfNotExists (Opcional) Cuando se establece en true, la colección de concesiones se crea automáticamente cuando todavía no existe. El valor predeterminado es false.
leasesCollectionThroughput LeasesCollectionThroughput (Opcional) Define la cantidad de unidades de solicitud que se asignan cuando se crea la colección de concesiones. Esta configuración solo se usa cuando createLeaseCollectionIfNotExists se establece en true. Este parámetro se establece automáticamente cuando el enlace se crea con el portal.
leaseCollectionPrefix LeaseCollectionPrefix (Opcional) Al establecerse, agrega un prefijo a las concesiones creadas en la recopilación de concesiones para esta función, permitiendo de forma eficaz a dos funciones de Azure independientes compartir la misma recopilación de concesiones con prefijos diferentes.
feedPollDelay FeedPollDelay (Opcional) Al establecerse, define, en milisegundos, el retraso entre sondeos de una partición en busca de nuevos cambios en la fuente, después de que todos los cambios actuales se purguen. El valor predeterminado es 5000 (5 segundos).
leaseAcquireInterval LeaseAcquireInterval (Opcional) Al establecerse, define, en milisegundos, el intervalo para iniciar una tarea para calcular si las particiones se distribuyen uniformemente entre las instancias de host conocidas. El valor predeterminado es 13 000 (13 segundos).
leaseExpirationInterval LeaseExpirationInterval (Opcional) Al establecerse, define, en milisegundos, el intervalo para el que se toma la concesión en una concesión que representa una partición. Si la concesión no se renueva dentro de este intervalo, expirará y la propiedad de la partición se moverá a otra instancia. El valor predeterminado es 60 000 (60 segundos).
leaseRenewInterval LeaseRenewInterval (Opcional) Al establecerse, define, en milisegundos, el intervalo de renovación para todas las concesiones para las particiones que mantiene una instancia actualmente. El valor predeterminado es 17 000 (17 segundos).
checkpointFrequency CheckpointFrequency (Opcional) Al establecerse, define, en milisegundos, el intervalo entre los puntos de comprobación de las concesiones. El valor predeterminado siempre se encuentra después de una llamada de función.
maxItemsPerInvocation MaxItemsPerInvocation (Opcional) Al establecerse, personaliza la cantidad máxima de elementos recibidos por la llamada de función.
startFromBeginning StartFromBeginning (Opcional) Cuando se establece, indica al desencadenador que comience a leer los cambios desde el principio del historial de la colección en lugar de desde la hora actual. Esto solo funciona la primera vez que se inicia el desencadenador, ya que en las ejecuciones posteriores, los puntos de control ya están almacenados. Si esta opción se establece en true cuando hay concesiones creadas no tiene ningún efecto.

Cuando esté desarrollando localmente, agregue la configuración de la aplicación en el archivo local.settings.json de la colección Values.

Desencadenador: uso

El desencadenador requiere una segunda colección que utiliza para almacenar concesiones en las particiones. La colección que se está supervisando y la colección que contiene las concesiones deben estar disponibles para que el desencadenador funcione.

Importante

Si hay varias funciones configuradas para usar un desencadenador de Azure Cosmos DB para la misma colección, cada una de ellas debe usar una colección de concesión dedicada, o bien se debe especificar un valor de LeaseCollectionPrefix para cada función. En caso contrario, se desencadenará solo una de las funciones. Para obtener información acerca del prefijo, consulte la sección de configuración.

El desencadenador no indica si un documento se actualizó o se insertó; solo proporciona el propio documento. Si tiene que administrar las actualizaciones e inserciones de manera diferente, puede hacerlo mediante la implementación de campos de marca de tiempo para las inserciones o actualizaciones.

Entrada

El enlace de entrada de Azure Cosmos DB usa SQL API para recuperar uno o varios documentos de Azure Cosmos DB y los pasa al parámetro de entrada de la función. Se puede determinar el identificador de documento o los parámetros de consulta según el desencadenador que invoca la función.

Ejemplo de entrada

En esta sección se incluyen los ejemplos siguientes:

Los ejemplos hacen referencia a un tipo de ToDoItem simple:

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

Desencadenador de cola, buscar identificador a partir de un JSON

En el ejemplo siguiente se muestra una función de C# que recupera un documento individual. La función la desencadena un mensaje de la cola que contiene un objeto JSON. El desencadenador de la cola analiza el JSON en un objeto denominado ToDoItemLookup, que contiene el identificador que se va a buscar. Dicho identificador se usa para recuperar un documento de ToDoItem de la base de datos y colección especificadas.

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

Desencadenador de HTTP, buscar identificador a partir de una cadena de consulta

En el ejemplo siguiente se muestra una función de C# que recupera un documento individual. La función la desencadena una solicitud HTTP que utiliza una cadena de consulta para especificar el identificador que se va a buscar. Dicho identificador se usa para recuperar un documento de ToDoItem de la base de datos y colección especificadas.

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

Desencadenador de HTTP, buscar identificador a partir de datos de ruta

En el ejemplo siguiente se muestra una función de C# que recupera un documento individual. La función la desencadena una solicitud HTTP que utiliza los datos de la ruta para especificar el identificador que se va a buscar. Dicho identificador se usa para recuperar un documento de ToDoItem de la base de datos y colección especificadas.

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

Omisión de los ejemplos de entrada

Desencadenador de HTTP, buscar identificador a partir de datos de ruta mediante SqlQuery

En el ejemplo siguiente se muestra una función de C# que recupera un documento individual. La función la desencadena una solicitud HTTP que utiliza los datos de la ruta para especificar el identificador que se va a buscar. Dicho identificador se usa para recuperar un documento de ToDoItem de la base de datos y colección especificadas.

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

Omisión de los ejemplos de entrada

Desencadenador de HTTP, obtener varios documentos mediante SqlQuery

En el ejemplo siguiente se muestra una función de C# que recupera una lista de documentos. La función la desencadena una solicitud HTTP. La consulta se especifica en la propiedad del atributo 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);
        }
    }
}

Omisión de los ejemplos de entrada

Desencadenador de HTTP, obtener varios documentos, mediante DocumentClient (C#)

En el ejemplo siguiente se muestra una función de C# que recupera una lista de documentos. La función la desencadena una solicitud HTTP. El código usa una instancia de DocumentClient que proporciona el enlace de Azure Cosmos DB para leer una lista de documentos. La instancia de DocumentClient también se puede usar para las operaciones de escritura.

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

Entrada: atributos

En las bibliotecas de clases de C# en proceso, use el atributo DocumentDB .

El constructor del atributo toma el nombre de la base de datos y el nombre de la colección. Para información sobre esos valores y otras propiedades que puede configurar, consulte la sección de configuración siguiente.

Entrada: configuración

En la siguiente tabla se explican las propiedades de configuración de enlace que se definen en el archivo function.json y el atributo DocumentDB.

Propiedad de function.json Propiedad de atributo Descripción
type N/D Se debe establecer en documentdb.
direction N/D Se debe establecer en in.
name N/D Nombre del parámetro de enlace que representa al documento en la función.
databaseName DatabaseName Base de datos que contiene el documento.
collectionName CollectionName Nombre de la colección que contiene el documento.
id Id Identificador del documento que se va a recuperar. Esta propiedad es compatible con expresiones de enlace. No establezca las propiedades id y sqlQuery a la vez. Si no establece alguna de ellas, se recupera toda la colección.
sqlQuery SqlQuery Consulta SQL de Azure Cosmos DB que se usa para recuperar varios documentos. La propiedad es compatible con los enlaces en tiempo de ejecución, como en este ejemplo: SELECT * FROM c where c.departmentId = {departmentId}. No establezca las propiedades id y sqlQuery a la vez. Si no establece alguna de ellas, se recupera toda la colección.
connection ConnectionStringSetting Nombre de la configuración de aplicación que contiene la cadena de conexión de Azure Cosmos DB.
partitionKey PartitionKey Especifica el valor de la clave de partición para la búsqueda. Puede incluir parámetros de enlace.

Cuando esté desarrollando localmente, agregue la configuración de la aplicación en el archivo local.settings.json de la colección Values.

Uso de entradas

Cuando se sale de la función correctamente, los cambios realizados en el documento de entrada mediante parámetros de entrada con nombre se guardan automáticamente.

Output

El enlace de salida de Azure Cosmos DB permite escribir un nuevo documento en una base de datos de Azure Cosmos DB mediante SQL API.

Salida: ejemplo

En esta sección se incluyen los ejemplos siguientes:

  • Desencadenador de cola, escribir un documento
  • Desencadenador de cola, escribir documentos mediante IAsyncCollector

Los ejemplos hacen referencia a un tipo de ToDoItem simple:

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

Desencadenador de cola, escribir un documento

En el ejemplo siguiente se muestra una función de C# que agrega un documento a una base de datos mediante los datos que se proporcionan en el mensaje desde Queue Storage.

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

Desencadenador de cola, escribir documentos mediante IAsyncCollector

En el ejemplo siguiente se muestra una función de C# que agrega una colección de documentos a una base de datos mediante los datos que se proporcionan en un mensaje de cola JSON.

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

Salida: atributos

En las bibliotecas de clases de C# en proceso, use el atributo DocumentDB .

El constructor del atributo toma el nombre de la base de datos y el nombre de la colección. Para información sobre esos valores y otras propiedades que puede configurar, consulte Salida: configuración. A continuación, se muestra un ejemplo del atributo DocumentDB en una signatura de método:

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

Para obtener un ejemplo completo, consulte la salida.

Salida: configuración

En la siguiente tabla se explican las propiedades de configuración de enlace que se definen en el archivo function.json y el atributo DocumentDB.

Propiedad de function.json Propiedad de atributo Descripción
type N/D Se debe establecer en documentdb.
direction N/D Se debe establecer en out.
name N/D Nombre del parámetro de enlace que representa al documento en la función.
databaseName DatabaseName Base de datos que contiene la colección en la que se ha creado el documento.
collectionName CollectionName Nombre de la colección en la que se ha creado el documento.
createIfNotExists CreateIfNotExists Valor booleano que indica si la colección se ha creado si no existía. El valor predeterminado es false porque las colecciones nuevas se crean con rendimiento reservado, lo que afecta el costo. Consulte la página de preciospara obtener más información.
partitionKey PartitionKey Cuando el valor de CreateIfNotExists es true, define la ruta de la clave de partición para la colección que se creó.
collectionThroughput CollectionThroughput Cuando el valor de CreateIfNotExists es true, define el rendimiento de la colección que se creó.
connection ConnectionStringSetting Nombre de la configuración de aplicación que contiene la cadena de conexión de Azure Cosmos DB.

Cuando esté desarrollando localmente, agregue la configuración de la aplicación en el archivo local.settings.json de la colección Values.

Uso de salidas

De forma predeterminada, cuando se escribe en el parámetro de salida de la función, se crea un documento en la base de datos. Este documento tiene un GUID generado automáticamente como identificador de documento. Puede especificar el identificador de documento del documento de salida si especifica la propiedad id en el objeto JSON pasado al parámetro de salida.

Nota

Cuando especifica el identificador de un documento existente, se sobrescribe con el nuevo documento de salida.

Excepciones y códigos de retorno

Enlace Referencia
Azure Cosmos DB Códigos de Estado HTTP en Azure Cosmos DB

Pasos siguientes