Compartilhar via


Azure Cosmos DB associação de saída para Azure Functions 2.x e superior

A associação de saída Azure Cosmos DB permite que você escreva um novo documento em um banco de dados Azure Cosmos DB usando a API do SQL.

Para obter informações sobre a instalação e detalhes de configuração, confira a visão geral.

Importante

Este artigo usa guias para dar suporte a várias versões do modelo de programação Node.js. O modelo v4 normalmente está disponível e foi projetado para oferecer uma experiência mais flexível e intuitiva para desenvolvedores de JavaScript e TypeScript. Para obter mais detalhes sobre como o modelo v4 funciona, consulte o Azure Functions Node.js guia do desenvolvedor. Para saber mais sobre as diferenças entre os modelos v3 e a v4, consulte o Guia de migração.

Azure Functions dá suporte a dois modelos de programação para Python. A maneira como você define suas associações depende do modelo de programação escolhido.

O modelo de programação Python v2 permite definir associações usando decoradores diretamente em seu código de função Python. Para obter mais informações, consulte o guia do desenvolvedor Python.

Este artigo dá suporte a ambos os modelos de programação.

A função C# pode ser criada por meio de um dos seguintes modos C#:

  • Modelo de trabalho isolado: função C# compilada executada em um processo de trabalho que está isolado do runtime. O processo de trabalho isolado é necessário para dar suporte a funções C# em execução em versões LTS e não LTS .NET e no .NET Framework. As extensões para funções de processo de trabalho isoladas usam namespaces Microsoft.Azure.Functions.Worker.Extensions.*.
  • Modelo em processo: função C# compilada no mesmo processo que o runtime do Functions. Em uma variação desse modelo, o Functions pode ser executado usando scripts C#, que é compatível principalmente com a edição do portal C#. As extensões para funções em processo usam namespaces Microsoft.Azure.WebJobs.Extensions.*.

Exemplo

A menos que indicado de outra forma, os exemplos neste artigo têm como destino a versão 3.x da extensão Azure Cosmos DB. Para uso com a extensão versão 4.x, você precisa substituir a cadeia de caracteres collection nos nomes de propriedade e atributo por container e connection_string_setting com connection.

O código a seguir define um tipo MyDocument:

public class MyDocument
{
    public string? Id { get; set; }

    public string? Text { get; set; }

    public int Number { get; set; }

    public bool Boolean { get; set; }
}

No exemplo a seguir, o tipo de retorno é IReadOnlyList<T>, que é uma lista modificada de documentos do parâmetro de associação de gatilho:

using System.Collections.Generic;
using System.Linq;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.Logging;

namespace SampleApp
{
    public class CosmosDBFunction
    {
        private readonly ILogger<CosmosDBFunction> _logger;

        public CosmosDBFunction(ILogger<CosmosDBFunction> logger)
        {
            _logger = logger;
        }

        //<docsnippet_exponential_backoff_retry_example>
        [Function(nameof(CosmosDBFunction))]
        [ExponentialBackoffRetry(5, "00:00:04", "00:15:00")]
        [CosmosDBOutput("%CosmosDb%", "%CosmosContainerOut%", Connection = "CosmosDBConnection", CreateIfNotExists = true)]
        public object? Run(
            [CosmosDBTrigger(
                "%CosmosDb%",
                "%CosmosContainerIn%",
                Connection = "CosmosDBConnection",
                LeaseContainerName = "leases",
                CreateLeaseContainerIfNotExists = true)] IReadOnlyList<MyDocument> input,
            FunctionContext context)
        {
            if (input != null && input.Any())
            {
                foreach (var doc in input)
                {
                    _logger.LogInformation("Doc Id: {id}", doc.Id);
                }

                // Cosmos Output
                return input.Select(p => new { id = p.Id });
            }

            return null;
        }
        //</docsnippet_exponential_backoff_retry_example>
    }

Gatilho de fila, salva a mensagem ao banco de dados por meio do valor de retorno

O exemplo a seguir mostra uma função Java que adiciona um documento a um banco de dados com dados de uma mensagem no Armazenamento de Filas.

@FunctionName("getItem")
@CosmosDBOutput(name = "database",
  databaseName = "ToDoList",
  collectionName = "Items",
  connectionStringSetting = "AzureCosmosDBConnection")
public String cosmosDbQueryById(
    @QueueTrigger(name = "msg",
      queueName = "myqueue-items",
      connection = "AzureWebJobsStorage")
    String message,
    final ExecutionContext context)  {
     return "{ id: \"" + System.currentTimeMillis() + "\", Description: " + message + " }";
   }

Gatilho HTTP, salva um documento ao banco de dados por meio do valor de retorno

O exemplo a seguir mostra uma função Java cuja assinatura é anotada com @CosmosDBOutput e tem o valor retornado do tipo String. O documento JSON retornado pela função é gravado automaticamente na coleção de Azure Cosmos DB correspondente.

    @FunctionName("WriteOneDoc")
    @CosmosDBOutput(name = "database",
      databaseName = "ToDoList",
      collectionName = "Items",
      connectionStringSetting = "Cosmos_DB_Connection_String")
    public String run(
            @HttpTrigger(name = "req",
              methods = {HttpMethod.GET, HttpMethod.POST},
              authLevel = AuthorizationLevel.ANONYMOUS)
            HttpRequestMessage<Optional<String>> request,
            final ExecutionContext context) {

        // Item list
        context.getLogger().info("Parameters are: " + request.getQueryParameters());

        // Parse query parameter
        String query = request.getQueryParameters().get("desc");
        String name = request.getBody().orElse(query);

        // Generate random ID
        final int id = Math.abs(new Random().nextInt());

        // Generate document
        final String jsonDocument = "{\"id\":\"" + id + "\", " +
                                    "\"description\": \"" + name + "\"}";

        context.getLogger().info("Document to be saved: " + jsonDocument);

        return jsonDocument;
    }

Gatilho HTTP, salva um documento ao banco de dados por meio do valor de OutputBinding

O exemplo a seguir mostra uma função Java que grava um documento para Azure Cosmos DB por meio de um parâmetro de saída OutputBinding<T>. Neste exemplo, o parâmetro outputItem precisa ser anotado com @CosmosDBOutput, não a assinatura de função. Usar OutputBinding<T> permite que sua função aproveite a associação para gravar o documento em Azure Cosmos DB ao mesmo tempo em que permite retornar um valor diferente para o chamador de função, como um documento JSON ou XML.

    @FunctionName("WriteOneDocOutputBinding")
    public HttpResponseMessage run(
            @HttpTrigger(name = "req",
              methods = {HttpMethod.GET, HttpMethod.POST},
              authLevel = AuthorizationLevel.ANONYMOUS)
            HttpRequestMessage<Optional<String>> request,
            @CosmosDBOutput(name = "database",
              databaseName = "ToDoList",
              collectionName = "Items",
              connectionStringSetting = "Cosmos_DB_Connection_String")
            OutputBinding<String> outputItem,
            final ExecutionContext context) {

        // Parse query parameter
        String query = request.getQueryParameters().get("desc");
        String name = request.getBody().orElse(query);

        // Item list
        context.getLogger().info("Parameters are: " + request.getQueryParameters());

        // Generate random ID
        final int id = Math.abs(new Random().nextInt());

        // Generate document
        final String jsonDocument = "{\"id\":\"" + id + "\", " +
                                    "\"description\": \"" + name + "\"}";

        context.getLogger().info("Document to be saved: " + jsonDocument);

        // Set outputItem's value to the JSON document to be saved
        outputItem.setValue(jsonDocument);

        // return a different document to the browser or calling client.
        return request.createResponseBuilder(HttpStatus.OK)
                      .body("Document created successfully.")
                      .build();
    }

Gatilho HTTP, salva vários documentos ao banco de dados por meio do valor de OutputBinding

O exemplo a seguir mostra uma função Java que grava vários documentos para Azure Cosmos DB por meio de um parâmetro de saída OutputBinding<T>. Neste exemplo, o parâmetro outputItem precisa ser anotado com @CosmosDBOutput, não a assinatura de função. O parâmetro de saída outputItem tem uma lista de objetos ToDoItem como seu tipo de parâmetro de modelo. Usar OutputBinding<T> permite que sua função aproveite a associação para gravar os documentos em Azure Cosmos DB, permitindo também retornar um valor diferente para o chamador de função, como um documento JSON ou XML.

    @FunctionName("WriteMultipleDocsOutputBinding")
    public HttpResponseMessage run(
            @HttpTrigger(name = "req",
              methods = {HttpMethod.GET, HttpMethod.POST},
              authLevel = AuthorizationLevel.ANONYMOUS)
            HttpRequestMessage<Optional<String>> request,
            @CosmosDBOutput(name = "database",
              databaseName = "ToDoList",
              collectionName = "Items",
              connectionStringSetting = "Cosmos_DB_Connection_String")
            OutputBinding<List<ToDoItem>> outputItem,
            final ExecutionContext context) {

        // Parse query parameter
        String query = request.getQueryParameters().get("desc");
        String name = request.getBody().orElse(query);

        // Item list
        context.getLogger().info("Parameters are: " + request.getQueryParameters());

        // Generate documents
        List<ToDoItem> items = new ArrayList<>();

        for (int i = 0; i < 5; i ++) {
          // Generate random ID
          final int id = Math.abs(new Random().nextInt());

          // Create ToDoItem
          ToDoItem item = new ToDoItem(String.valueOf(id), name);

          items.add(item);
        }

        // Set outputItem's value to the list of POJOs to be saved
        outputItem.setValue(items);
        context.getLogger().info("Document to be saved: " + items);

        // return a different document to the browser or calling client.
        return request.createResponseBuilder(HttpStatus.OK)
                      .body("Documents created successfully.")
                      .build();
    }

Na biblioteca Java functions runtime, use a anotação @CosmosDBOutput em parâmetros gravados em Azure Cosmos DB. O tipo de parâmetro de anotação deve ser OutputBinding<T>, em que T é um tipo de Java nativo ou um POJO.

O exemplo a seguir mostra uma função TypeScript disparada por filas de armazenamento para uma fila que recebe JSON no seguinte formato:

{
    "name": "John Henry",
    "employeeId": "123456",
    "address": "A town nearby"
}

A função cria Azure Cosmos DB documentos no seguinte formato para cada registro:

{
    "id": "John Henry-123456",
    "name": "John Henry",
    "employeeId": "123456",
    "address": "A town nearby"
}

Este é o código TypeScript:

import { app, InvocationContext, output } from '@azure/functions';

interface MyQueueItem {
    name: string;
    employeeId: string;
    address: string;
}

interface MyCosmosItem {
    id: string;
    name: string;
    employeeId: string;
    address: string;
}

export async function storageQueueTrigger1(queueItem: MyQueueItem, context: InvocationContext): Promise<MyCosmosItem> {
    return {
        id: `${queueItem.name}-${queueItem.employeeId}`,
        name: queueItem.name,
        employeeId: queueItem.employeeId,
        address: queueItem.address,
    };
}

app.storageQueue('storageQueueTrigger1', {
    queueName: 'inputqueue',
    connection: 'MyStorageConnectionAppSetting',
    return: output.cosmosDB({
        databaseName: 'MyDatabase',
        collectionName: 'MyCollection',
        createIfNotExists: true,
        connectionStringSetting: 'MyAccount_COSMOSDB',
    }),
    handler: storageQueueTrigger1,
});

Para gerar vários documentos, retorne uma matriz em vez de um único objeto. Por exemplo:

return [
    {
        id: 'John Henry-123456',
        name: 'John Henry',
        employeeId: '123456',
        address: 'A town nearby',
    },
    {
        id: 'John Doe-123457',
        name: 'John Doe',
        employeeId: '123457',
        address: 'A town far away',
    },
];

O exemplo a seguir mostra uma função JavaScript disparada por filas de armazenamento para uma fila que recebe JSON no seguinte formato:

{
    "name": "John Henry",
    "employeeId": "123456",
    "address": "A town nearby"
}

A função cria Azure Cosmos DB documentos no seguinte formato para cada registro:

{
    "id": "John Henry-123456",
    "name": "John Henry",
    "employeeId": "123456",
    "address": "A town nearby"
}

Aqui está o código JavaScript:

const { app, output } = require('@azure/functions');

const cosmosOutput = output.cosmosDB({
    databaseName: 'MyDatabase',
    collectionName: 'MyCollection',
    createIfNotExists: true,
    connectionStringSetting: 'MyAccount_COSMOSDB',
});

app.storageQueue('storageQueueTrigger1', {
    queueName: 'inputqueue',
    connection: 'MyStorageConnectionAppSetting',
    return: cosmosOutput,
    handler: (queueItem, context) => {
        return {
            id: `${queueItem.name}-${queueItem.employeeId}`,
            name: queueItem.name,
            employeeId: queueItem.employeeId,
            address: queueItem.address,
        };
    },
});

Para gerar vários documentos, retorne uma matriz em vez de um único objeto. Por exemplo:

return [
    {
        id: 'John Henry-123456',
        name: 'John Henry',
        employeeId: '123456',
        address: 'A town nearby',
    },
    {
        id: 'John Doe-123457',
        name: 'John Doe',
        employeeId: '123457',
        address: 'A town far away',
    },
];

O exemplo a seguir mostra como gravar dados em Azure Cosmos DB usando uma associação de saída. A associação é declarada no arquivo de configuração da função (functions.json) e usa dados de uma mensagem de fila e grava em um documento Azure Cosmos DB.

{ 
  "name": "EmployeeDocument",
  "type": "cosmosDB",
  "databaseName": "MyDatabase",
  "collectionName": "MyCollection",
  "createIfNotExists": true,
  "connectionStringSetting": "MyStorageConnectionAppSetting",
  "direction": "out" 
} 

No arquivo run.ps1, o objeto retornado da função é mapeado para um objeto EmployeeDocument, que é persistido no banco de dados.

param($QueueItem, $TriggerMetadata) 

Push-OutputBinding -Name EmployeeDocument -Value @{ 
    id = $QueueItem.name + '-' + $QueueItem.employeeId 
    name = $QueueItem.name 
    employeeId = $QueueItem.employeeId 
    address = $QueueItem.address 
} 

O exemplo a seguir demonstra como gravar um documento em um banco de dados Azure Cosmos DB como a saída de uma função. O exemplo depende se você usa o v1 ou v2 Python modelo de programação.

import logging
import azure.functions as func

app = func.FunctionApp()

@app.route()
@app.cosmos_db_output(arg_name="documents", 
                      database_name="DB_NAME",
                      collection_name="COLLECTION_NAME",
                      create_if_not_exists=True,
                      connection_string_setting="CONNECTION_SETTING")
def main(req: func.HttpRequest, documents: func.Out[func.Document]) -> func.HttpResponse:
    request_body = req.get_body()
    documents.set(func.Document.from_json(request_body))
    return 'OK'

Atributos

As bibliotecas C# em processo e de processo de trabalho isolado usam atributos para definir a função. Em vez disso, o script C# usa um arquivo de configuração function.json, conforme descrito no guia de script C#.

Propriedade de atributo Descrição
Conexão O nome de uma coleção de configurações ou configuração de aplicativo que especifica como se conectar à conta Azure Cosmos DB que está sendo monitorada. Para mais informações, consulte as Conexões.
DatabaseName O nome do banco de dados Azure Cosmos DB com o contêiner sendo monitorado.
ContainerName O nome do contêiner que está sendo monitorado.
CreateIfNotExists É um valor booliano para indicar se o contêiner será criado caso não exista. O padrão é false, porque os contêineres são criados com a taxa de transferência reservada, o que tem implicações de preço. Para saber mais, confira a página de preço.
PartitionKey Quando CreateIfNotExists for true, ele definirá o caminho da chave de partição para o contêiner criado. Pode incluir parâmetros de associação.
ContainerThroughput Quando CreateIfNotExists for true, ele definirá a taxa de transferência do contêiner criado.
PreferredLocations (Opcional) Define locais preferenciais (regiões) para contas de banco de dados replicadas geograficamente no serviço Azure Cosmos DB. Os valores devem ser separados por vírgulas. Por exemplo, East US,South Central US,North Europe.

Decoradores

Aplica somente para o modelo de programação Python v2.

Para Python funções v2 definidas usando um decorador, as seguintes propriedades no cosmos_db_output:

Propriedade Descrição
arg_name O nome da variável usado no código de função que representa a lista de documentos com alterações.
database_name O nome do banco de dados Azure Cosmos DB com o contêiner sendo monitorado.
container_name O nome do contêiner de Azure Cosmos DB que está sendo monitorado.
create_if_not_exists Um valor Booliano que indica se o banco de dados e a coleção devem ser criados se eles não existirem.
connection_string_setting O cadeia de conexão do Azure Cosmos DB que está sendo monitorado.

Para Python funções definidas usando function.json, consulte a seção Configuration.

Anotações

Na biblioteca Java functions runtime, use a anotação @CosmosDBOutput em parâmetros que gravam em Azure Cosmos DB. Essa anotação dá suporte às seguintes propriedades:

Configuração

Aplica somente para o modelo de programação Python v1.

A tabela a seguir explica as propriedades que você pode definir no objeto options passado para o método output.cosmosDB(). As propriedades type, direction e name não se aplicam ao modelo v4.

A tabela a seguir explica as propriedades de configuração de associação que você define no arquivo function.json. Essas propriedades se diferenciam pela versão da extensão:

Propriedade function.json Descrição
conexão O nome de uma coleção de configurações ou configuração de aplicativo que especifica como se conectar à conta Azure Cosmos DB que está sendo monitorada. Para mais informações, consulte as Conexões.
databaseName O nome do banco de dados Azure Cosmos DB com o contêiner sendo monitorado.
containerName O nome do contêiner que está sendo monitorado.
createIfNotExists É um valor booliano para indicar se o contêiner será criado caso não exista. O padrão é false, porque os contêineres são criados com a taxa de transferência reservada, o que tem implicações de preço. Para saber mais, confira a página de preço.
partitionKey Quando createIfNotExists for true, ele definirá o caminho da chave de partição para o contêiner criado. Pode incluir parâmetros de associação.
containerThroughput Quando createIfNotExists for true, ele definirá a taxa de transferência do contêiner criado.
preferredLocations (Opcional) Define locais preferenciais (regiões) para contas de banco de dados replicadas geograficamente no serviço Azure Cosmos DB. Os valores devem ser separados por vírgulas. Por exemplo, East US,South Central US,North Europe.

Consulte a Seção de exemplo para obter exemplos completos.

Uso

Por padrão, quando você grava no parâmetro de saída em sua função, um documento é criado no banco de dados. Você deve especificar a ID do documento de saída especificando a propriedade id no objeto JSON passado para o parâmetro de saída.

Observação

Ao especificar a ID de um documento existente, ela é substituída pelo novo documento de saída.

O parâmetro de função de saída deve ser definido como func.Out[func.Document]. Consulte o exemplo de saída para obter detalhes.

Os tipos específicos com suporte pela associação de saída do Cosmos DB dependem da versão de runtime do Functions, da versão do pacote de extensão e da modalidade de C# usada.

Quando você desejar que a função seja gravada em um único documento, a associação de saída do Cosmos DB poderá ser associada aos seguintes tipos:

Tipo Descrição
Tipos serializáveis JSON Um objeto que representa o conteúdo JSON de um documento. O Functions tenta serializar um tipo de objeto CLR básico (POCO) em dados JSON.

Quando você desejar que a função seja gravada em vários documentos, a associação de saída do Cosmos DB poderá ser associada aos seguintes tipos:

Tipo Descrição
T[] em que T é um tipo serializável por JSON Uma matriz que contém vários documentos. Cada entrada representa um documento.

Para outros cenários de saída, crie e use um CosmosClient com outros tipos de Microsoft.Azure. Cosmos diretamente. Consulte Register Azure clientes para obter um exemplo de como usar a injeção de dependência para criar um tipo de cliente do SDK do Azure.

conexões

As propriedades connectionStringSetting/connection e leaseConnectionStringSetting/leaseConnection referenciam a configuração do ambiente que especifica como o aplicativo se conecta ao Azure Cosmos DB. Eles podem especificar:

  • O nome de uma configuração de aplicativo que contém um cadeia de conexão.
  • O nome de um prefixo compartilhado para várias configurações de aplicativo, que juntas definem uma conexão de identidade gerenciada. Essa opção só está disponível para as versões connection e leaseConnection da connection.

Se o valor configurado for uma combinação exata para uma única configuração e um correspondência de prefixo para outras configurações, a correspondência exata será usada.

Dica

As conexões de identidade gerenciada são recomendadas em cadeias de conexão para melhorar a segurança. As cadeias de conexão incluem credenciais que podem ser expostas, enquanto as identidades gerenciadas eliminam a necessidade de gerenciar segredos.

Se você estiver usando version 4.x ou superior da extensão, em vez de usar um cadeia de conexão com um segredo, poderá fazer com que o aplicativo use uma identidade Microsoft Entra. Para fazer isso, defina as configurações em um prefixo comum que mapeia para a propriedade de conexão na configuração de gatilho e associação.

Nesse modo, a extensão requer as seguintes configurações de aplicativo:

Configuração baseada em modelo Descrição Tipo de identidade
<CONNECTION_NAME_PREFIX>__accountEndpoint O URI do ponto de extremidade da conta Azure Cosmos DB. Atribuído pelo sistema ou atribuído pelo usuário
<CONNECTION_NAME_PREFIX>__credential Deve ser definido como managedidentity. Atribuído pelo usuário
<CONNECTION_NAME_PREFIX>__clientId O ID do cliente da identidade gerenciada atribuída ao usuário. Atribuído pelo usuário

O valor que você substitui <CONNECTION_NAME_PREFIX> é tratado pela extensão de associação como o nome da configuração de conexão.

Por exemplo, se a configuração de associação especificar connection = "CosmosDBConnection" com uma identidade gerenciada atribuída pelo usuário, defina as seguintes configurações de aplicativo:

{
    "CosmosDBConnection__accountEndpoint": "https://mycosmosdb.documents.azure.com:443/",
    "CosmosDBConnection__credential": "managedidentity",
    "CosmosDBConnection__clientId": "00000000-0000-0000-0000-000000000000"
}

Dica

Use identidades gerenciadas atribuídas pelo usuário para cenários de produção em que você precisa de controle refinado sobre permissões de identidade em vários recursos.

Você pode usar configurações adicionais no modelo para personalizar ainda mais a conexão. Confira Propriedades comuns para conexões baseadas em identidade.

Quando hospedadas no serviço Azure Functions, as conexões baseadas em identidade usam uma identidade manada. A identidade atribuída pelo sistema é usada por padrão, embora a identidade atribuída pelo usuário possa ser especificada com as propriedades credential e clientID. Observe que não há suporte para configurar uma identidade atribuída pelo usuário com uma ID de recurso. Quando executado em outros contextos, como desenvolvimento local, a identidade do desenvolvedor é usada, embora isso possa ser personalizado. Confira Desenvolvimento local com conexões baseadas em identidade.

Conceder permissão para a identidade

Qualquer identidade que esteja sendo usada deve ter permissões para executar as ações pretendidas. Para a maioria dos serviços Azure, isso significa que você precisa atribuir uma função em Azure RBAC, usando funções internas ou personalizadas que forneçam essas permissões.

Importante

Algumas permissões que não são necessárias em todos os contextos podem ser expostas pelo serviço de destino. Sempre que possível, siga o princípio do privilégio mínimo, concedendo à identidade apenas os privilégios necessários. Por exemplo, se o aplicativo precisar apenas ser capaz de ler uma fonte de dados, use uma função que só tenha permissão de leitura. Seria inapropriado atribuir uma função que também permitisse a gravação nesse serviço, pois seria um excesso de permissões para uma operação de leitura. Da mesma forma, seria melhor garantir que a atribuição da função tivesse o escopo apenas sobre os recursos que precisam ser lidos.

O Cosmos DB não usa Azure RBAC para operações de dados. Em vez disso, ele usa um sistema RBAC interno do Cosmos DB que se baseia em conceitos semelhantes. Será necessário criar uma atribuição de função que forneça acesso a sua conta de banco de dados em runtime. Azure funções de Gerenciamento RBAC, como Owner não são suficientes. A tabela a seguir mostra funções internas recomendadas ao usar a extensão Azure Cosmos DB em operação normal. Seu aplicativo pode exigir permissões adicionais com base no código escrito por você.

Tipo de associação Exemplo de funções internas1
Gatilho2 Colaborador de dados internos do Cosmos DB
Associação de entrada Leitor de dados internos do Cosmos DB
Associação de saída Colaborador de dados internos do Cosmos DB

1 Essas funções não podem ser usadas em uma atribuição de função RBAC Azure. Confira a documentação do sistema RBAC interno do Cosmos DB para obter detalhes sobre como atribuir essas funções.

2 Ao usar a identidade, o Cosmos DB trata a criação de contêiner como uma operação de gerenciamento. Ele não está disponível como uma operação de plano de dados para o gatilho. Você precisará garantir a criação dos contêineres necessários para o gatilho (incluindo o contêiner de concessão) antes de configurar a função.

Exceções e códigos de retorno

Associação Referência
Azure Cosmos DB códigos de status HTTP para Azure Cosmos DB

Próximas etapas