Enlaces do Azure Cosmos DB para Funções do Azure 1.x

Este artigo explica como trabalhar com enlaces do Azure Cosmos DB no Funções do Azure. Funções do Azure suporta enlaces de acionador, entrada e saída para o Azure Cosmos DB.

Nota

Este artigo destina-se a Funções do Azure 1.x. Para obter informações sobre como utilizar estes enlaces nas Funções 2.x e superior, veja Enlaces do Azure Cosmos DB para Funções do Azure 2.x.

Este enlace era originalmente denominado DocumentDB. No Funções do Azure versão 1.x, apenas o acionador foi renomeado Azure Cosmos DB; o enlace de entrada, o enlace de saída e o pacote NuGet mantêm o nome do DocumentDB.

Nota

Os enlaces do Cosmos DB do Azure só são suportados para utilização com a API de SQL. Para todas as outras APIs do Azure Cosmos DB, deve aceder à base de dados a partir da sua função através do cliente estático da sua API, incluindo o Azure Cosmos DB para MongoDB, o Azure Cosmos DB para Apache Cassandra, o Azure Cosmos DB para Apache Gremlin e o Azure Cosmos DB para Tabela.

Pacotes - Funções 1.x

Os enlaces do Azure Cosmos DB para Funções versão 1.x são fornecidos no pacote NuGet Microsoft.Azure.WebJobs.Extensions.DocumentDB , versão 1.x. O código fonte para os enlaces está no repositório do GitHub azure-webjobs-sdk-extensions .

A tabela seguinte indica como adicionar suporte para este enlace em cada ambiente de desenvolvimento.

Ambiente de programação Para adicionar suporte no
Funções 1.x
Desenvolvimento local - Biblioteca de classes C# Instalar o pacote
Desenvolvimento local - Script C#, JavaScript, F# Automático
Desenvolvimento do portal Automático

Acionador

O Acionador do Azure Cosmos DB utiliza o Feed de Alterações do Azure Cosmos DB para escutar inserções e atualizações entre partições. O feed de alterações publica inserções e atualizações, não eliminações.

Acionador - exemplo

O exemplo seguinte mostra uma função C# no processo que é invocada quando existem inserções ou atualizações na base de dados e coleção 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}");
            }
        }
    }
}

Acionador - atributos

Para bibliotecas de classes C# no processo, utilize o atributo CosmosDBTrigger .

O construtor do atributo utiliza o nome da base de dados e o nome da coleção. Para obter informações sobre essas definições e outras propriedades que pode configurar, veja Acionador – configuração. Eis um CosmosDBTrigger exemplo de atributo numa assinatura de método:

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

Para obter um exemplo completo, veja Acionador – exemplo C#.

Acionador - configuração

A tabela seguinte explica as propriedades de configuração de enlace que definiu no ficheiro function.json e no CosmosDBTrigger atributo.

propriedade function.json Propriedade atributo Description
tipo n/a Tem de estar definido como cosmosDBTrigger.
direção n/a Tem de estar definido como in. Este parâmetro é definido automaticamente quando cria o acionador no portal do Azure.
nome n/a O nome da variável utilizado no código de função que representa a lista de documentos com alterações.
connectionStringSetting ConnectionStringSetting O nome de uma definição de aplicação que contém a cadeia de ligação utilizada para ligar à conta do Azure Cosmos DB que está a ser monitorizada.
databaseName DatabaseName O nome da base de dados do Azure Cosmos DB com a coleção a ser monitorizada.
collectionName CollectionName O nome da coleção a ser monitorizada.
leaseConnectionStringSetting LeaseConnectionStringSetting (Opcional) O nome de uma definição de aplicação que contém a cadeia de ligação ao serviço que contém a coleção de concessão. Quando não estiver definido, o connectionStringSetting valor é utilizado. Este parâmetro é definido automaticamente quando o enlace é criado no portal. A cadeia de ligação da coleção de concessões tem de ter permissões de escrita.
leaseDatabaseName LeaseDatabaseName (Opcional) O nome da base de dados que contém a coleção utilizada para armazenar concessões. Quando não estiver definido, é utilizado o databaseName valor da definição. Este parâmetro é definido automaticamente quando o enlace é criado no portal.
leaseCollectionName LeaseCollectionName (Opcional) O nome da coleção utilizada para armazenar concessões. Quando não estiver definido, o valor leases é utilizado.
createLeaseCollectionIfNotExists CreateLeaseCollectionIfNotExists (Opcional) Quando definida como true, a coleção de concessões é criada automaticamente quando ainda não existe. O valor predefinido é false.
leasesCollectionThroughput LeasesCollectionThroughput (Opcional) Define a quantidade de Unidades de Pedido a atribuir quando a coleção de concessões é criada. Esta definição só é utilizada Quando createLeaseCollectionIfNotExists está definida como true. Este parâmetro é definido automaticamente quando o enlace é criado com o portal.
leaseCollectionPrefix LeaseCollectionPrefix (Opcional) Quando definido, adiciona um prefixo às concessões criadas na coleção Concessão para esta Função, permitindo efetivamente que duas Funções do Azure separadas partilhem a mesma coleção de Concessão através de prefixos diferentes.
feedPollDelay FeedPollDelay (Opcional) Quando definido, define, em milissegundos, o atraso entre consultar uma partição para novas alterações no feed, depois de todas as alterações atuais serem drenadas. A predefinição é 5000 (5 segundos).
leaseAcquireInterval LeaseAcquireInterval (Opcional) Quando definido, define, em milissegundos, o intervalo para iniciar uma tarefa para calcular se as partições são distribuídas uniformemente entre instâncias de anfitrião conhecidas. A predefinição é 13000 (13 segundos).
leaseExpirationInterval LeaseExpirationInterval (Opcional) Quando definido, define, em milissegundos, o intervalo para o qual a concessão é efetuada numa concessão que representa uma partição. Se a concessão não for renovada dentro deste intervalo, fará com que expire e a propriedade da partição será movida para outra instância. A predefinição é 60000 (60 segundos).
leaseRenewInterval LeaseRenewInterval (Opcional) Quando definido, define, em milissegundos, o intervalo de renovação de todas as concessões para partições atualmente detidas por uma instância. A predefinição é 17000 (17 segundos).
checkpointFrequency CheckpointFrequency (Opcional) Quando definido, define, em milissegundos, o intervalo entre pontos de verificação de concessão. A predefinição é sempre após cada chamada de Função.
maxItemsPerInvocation MaxItemsPerInvocation (Opcional) Quando definido, personaliza a quantidade máxima de itens recebidos por chamada de Função.
startFromBeginning StartFromBeginning (Opcional) Quando definido, indica ao Acionador para começar a ler as alterações desde o início do histórico da coleção em vez da hora atual. Isto só funciona da primeira vez que o Acionador é iniciado, uma vez que, nas execuções subsequentes, os pontos de verificação já estão armazenados. Definir isto para true quando já existem concessões criadas não tem qualquer efeito.

Quando estiver a desenvolver localmente, adicione as definições da aplicação no ficheiro local.settings.json na Values coleção.

Acionador - utilização

O acionador requer uma segunda coleção que utiliza para armazenar concessões através das partições. Tanto a coleção a ser monitorizada como a coleção que contém as concessões têm de estar disponíveis para que o acionador funcione.

Importante

Se estiverem configuradas múltiplas funções para utilizar um acionador do Azure Cosmos DB para a mesma coleção, cada uma das funções deve utilizar uma coleção de concessão dedicada ou especificar uma diferente LeaseCollectionPrefix para cada função. Caso contrário, apenas uma das funções será acionada. Para obter informações sobre o prefixo, consulte a secção Configuração.

O acionador não indica se um documento foi atualizado ou inserido, apenas fornece o próprio documento. Se precisar de processar atualizações e inserções de forma diferente, poderá fazê-lo ao implementar campos de carimbo de data/hora para inserção ou atualização.

Entrada

O enlace de entrada do Azure Cosmos DB utiliza a API do SQL para obter um ou mais documentos do Azure Cosmos DB e passa-os para o parâmetro de entrada da função. Os parâmetros de consulta ou o ID do documento podem ser determinados com base no acionador que invoca a função.

Entrada - exemplo

Esta secção contém os seguintes exemplos:

Os exemplos referem-se a um tipo simples ToDoItem :

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

Acionador de fila, procurar O ID do JSON

O exemplo seguinte mostra uma função C# que obtém um único documento. A função é acionada por uma mensagem de fila que contém um objeto JSON. O acionador de fila analisa o JSON num objeto com o nome ToDoItemLookup, que contém o ID a procurar. Esse ID é utilizado para obter um ToDoItem documento da base de dados e coleção 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}");
            }
        }
    }
}

Acionador HTTP, procure o ID a partir da cadeia de consulta

O exemplo seguinte mostra uma função C# que obtém um único documento. A função é acionada por um pedido HTTP que utiliza uma cadeia de consulta para especificar o ID a procurar. Esse ID é utilizado para obter um ToDoItem documento da base de dados e coleção 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);
        }
    }
}

Acionador HTTP, procure o ID a partir dos dados de rota

O exemplo seguinte mostra uma função C# que obtém um único documento. A função é acionada por um pedido HTTP que utiliza dados de rota para especificar o ID para procurar. Esse ID é utilizado para obter um ToDoItem documento da base de dados e coleção 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);
        }
    }
}

Ignorar exemplos de entrada

Acionador HTTP, procure o ID a partir de dados de rotas com o SqlQuery

O exemplo seguinte mostra uma função C# que obtém um único documento. A função é acionada por um pedido HTTP que utiliza dados de rota para especificar o ID para procurar. Esse ID é utilizado para obter um ToDoItem documento da base de dados e coleção 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);
        }
    }
}

Ignorar exemplos de entrada

Acionador HTTP, obter vários documentos com o SqlQuery

O exemplo seguinte mostra uma função C# que obtém uma lista de documentos. A função é acionada por um pedido HTTP. A consulta é especificada na SqlQuery propriedade atributo.

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

Ignorar exemplos de entrada

Acionador HTTP, obter vários documentos com o DocumentClient (C#)

O exemplo seguinte mostra uma função C# que obtém uma lista de documentos. A função é acionada por um pedido HTTP. O código utiliza uma DocumentClient instância fornecida pelo enlace do Azure Cosmos DB para ler uma lista de documentos. A DocumentClient instância também pode ser utilizada para operações de escrita.

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

Nas bibliotecas de classes C# em processo, utilize o atributo DocumentDB .

O construtor do atributo utiliza o nome da base de dados e o nome da coleção. Para obter informações sobre essas definições e outras propriedades que pode configurar, veja a secção de configuração seguinte.

Entrada - configuração

A tabela seguinte explica as propriedades de configuração de enlace que definiu no ficheiro function.json e no DocumentDB atributo .

propriedade function.json Propriedade atributo Description
tipo n/a Tem de estar definido como documentdb.
direção n/a Tem de estar definido como in.
nome n/a Nome do parâmetro de enlace que representa o documento na função .
databaseName DatabaseName A base de dados que contém o documento.
collectionName CollectionName O nome da coleção que contém o documento.
id ID O ID do documento a obter. Esta propriedade suporta expressões de enlace. Não defina as propriedades id e sqlQuery . Se não definir nenhum dos dois, toda a coleção será obtida.
sqlQuery SqlQuery Uma consulta SQL do Azure Cosmos DB utilizada para obter vários documentos. A propriedade suporta enlaces de runtime, como neste exemplo: SELECT * FROM c where c.departmentId = {departmentId}. Não defina as propriedades id e sqlQuery . Se não definir nenhum dos dois, toda a coleção será obtida.
ligação ConnectionStringSetting O nome da definição da aplicação que contém a cadeia de ligação do Azure Cosmos DB.
partitionKey PartitionKey Especifica o valor da chave de partição para a pesquisa. Podem incluir parâmetros de enlace.

Quando estiver a desenvolver localmente, adicione as definições da aplicação no ficheiro local.settings.json na Values coleção.

Entrada - utilização

Quando a função sai com êxito, todas as alterações efetuadas ao documento de entrada através de parâmetros de entrada nomeados são mantidas automaticamente.

Saída

O enlace de saída do Azure Cosmos DB permite-lhe escrever um novo documento numa base de dados do Azure Cosmos DB com a API SQL.

Saída - exemplo

Esta secção contém os seguintes exemplos:

  • Acionador de fila, escrever um documento
  • Acionador de fila, escrever documentos com IAsyncCollector

Os exemplos referem-se a um tipo simples ToDoItem :

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

Acionador de fila, escrever um documento

O exemplo seguinte mostra uma função C# que adiciona um documento a uma base de dados, utilizando dados fornecidos na mensagem do Armazenamento de filas.

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

Acionador de fila, documentos de escrita com IAsyncCollector

O exemplo seguinte mostra uma função C# que adiciona uma coleção de documentos a uma base de dados, utilizando dados fornecidos numa mensagem de fila 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);
            }
        }
    }
}

Saída - atributos

Nas bibliotecas de classes C# em processo, utilize o atributo DocumentDB .

O construtor do atributo utiliza o nome da base de dados e o nome da coleção. Para obter informações sobre essas definições e outras propriedades que pode configurar, veja Saída - configuração. Eis um DocumentDB exemplo de atributo numa assinatura 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 obter um exemplo completo, veja Saída.

Saída - configuração

A tabela seguinte explica as propriedades de configuração de enlace que definiu no ficheiro function.json e no DocumentDB atributo .

propriedade function.json Propriedade atributo Description
tipo n/a Tem de estar definido como documentdb.
direção n/a Tem de estar definido como out.
nome n/a Nome do parâmetro de enlace que representa o documento na função.
databaseName DatabaseName A base de dados que contém a coleção onde o documento é criado.
collectionName CollectionName O nome da coleção onde o documento é criado.
createIfNotExists CreateIfNotExists Um valor booleano para indicar se a coleção é criada quando não existe. A predefinição é falsa porque são criadas novas coleções com débito reservado, o que tem implicações de custos. Para obter mais informações, veja a página de preços.
partitionKey PartitionKey Quando CreateIfNotExists for verdadeiro, define o caminho da chave de partição para a coleção criada.
collectionThroughput CollectionThroughput Quando CreateIfNotExists é verdadeiro, define o débito da coleção criada.
ligação ConnectionStringSetting O nome da definição da aplicação que contém a cadeia de ligação do Azure Cosmos DB.

Quando estiver a desenvolver localmente, adicione as definições da aplicação no ficheiro local.settings.json na Values coleção.

Saída - utilização

Por predefinição, quando escreve no parâmetro de saída na sua função, é criado um documento na base de dados. Este documento tem um GUID gerado automaticamente como o ID do documento. Pode especificar o ID de documento do documento de saída ao especificar a id propriedade no objeto JSON transmitido para o parâmetro de saída.

Nota

Quando especifica o ID de um documento existente, este é substituído pelo novo documento de saída.

Exceções e códigos de retorno

Enlace Referência
Azure Cosmos DB Códigos de estado HTTP do Azure Cosmos DB

Passos seguintes