Visão geral de gatilhos e associações do Azure Cosmos DB para Azure Functions 2.x e superiores

Este conjunto de artigos explica como trabalhar com associações do Azure Cosmos DB no Azure Functions 2.x e superiores. O Azure Functions dá suporte a associações de gatilho, entrada e saída para o Azure Cosmos DB.

Ação Tipo
Executar uma função quando um documento do Azure Cosmos DB for criado ou modificado Gatilho
Leia um documento do Azure Cosmos DB Associação de entrada
Salvar alterações a um documento do Azure Cosmos DB Associação de saída

Observação

Essa referência é para o Azure Functions versão 2.x e superiores. Para obter informações sobre como usar essas associações em Functions 1. x, consulte Associações do Azure Cosmos DB para Azure Functions 1. x.

Essa associação era originalmente denominada DocumentDB. No Functions versão 2.x e superiores, o gatilho, as associações e o pacote têm todos o nome Cosmos DB.

APIs com suporte

As associações do Azure Cosmos DB têm suporte apenas para usar com a API do SQL. O suporte para a API de Tabela é fornecido usando as associações de armazenamento de tabela, começando com a extensão 5.x. Para todas as outras APIs do Azure Cosmos DB, você deve acessar o banco de dados a partir da sua função usando o cliente estático da API, incluindo a API do Azure Cosmos DB para MongoDB, a API do Cassandra e a API do Gremlin.

Instalar a extensão

O pacote NuGet da extensão instalado depende do modo C# usado no aplicativo de funções:

As funções são executadas no mesmo processo que o host do Functions. Para saber mais, confira Desenvolver funções da biblioteca de classes C# usando o Azure Functions.

O processo para instalar a extensão varia de acordo com a versão da extensão:

Trabalhar com o gatilho e as associações requer que você referencie o pacote NuGet adequado. Instale o pacote NuGet versão 3.x.

Instalar pacote

O Cosmos DB faz parte de um pacote de extensão, que é especificado no arquivo de projeto host.json. Talvez seja necessário modificar esse pacote se for preciso alterar a versão das associações ou se os pacotes ainda não estiverem instalados. Para saber mais, confira pacotes de extensão.

Essa versão da extensão pode ser instalada no aplicativo de funções registrando o pacote de extensão, versão 2.x ou 3.x.

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[3.3.0, 4.0.0)"
    }
}

Devido às alterações de esquema no SDK do Azure Cosmos DB, a versão 4.x da extensão do Azure Cosmos DB não tem suporte atualmente para funções Java.

Você pode adicionar esta versão da extensão do pacote de extensão de versão prévia v4 adicionando ou substituindo o seguinte código em seu arquivo host.json:

{
  "version": "2.0",
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle.Preview",
    "version": "[4.0.0, 5.0.0)"
  }
}

Para saber mais, confira Atualizar suas extensões.


Exceções e códigos de retorno

Associação Referência
CosmosDB Códigos de erro CosmosDB

configurações de host.json

Esta seção descreve as definições de configuração disponíveis para a associação nas versões 2.x e superiores. As configurações no arquivo host.json se aplicam a todas as funções em uma instância do aplicativo de funções. O arquivo host.json de exemplo abaixo contém apenas as configurações das versões 2.x e superiores para a associação. Para saber mais sobre as definições de configuração do aplicativo de funções nas versões 2.x e superiores, confira a referência de host.json para o Azure Functions.

{
    "version": "2.0",
    "extensions": {
        "cosmosDB": {
            "connectionMode": "Gateway",
            "protocol": "Https",
            "leaseOptions": {
                "leasePrefix": "prefix1"
            }
        }
    }
}
Propriedade Padrão Descrição
connectionMode Gateway O modo de conexão usado pela função ao se conectar ao serviço do Azure Cosmos DB. As opções são Direct e Gateway
protocol Https O protocolo de conexão usado pela função ao se conectar ao serviço do Azure Cosmos DB. Leia aqui para obter uma explicação de ambos os modos.
leasePrefix N/D Prefixo de concessão a ser usado em todas as funções em um aplicativo.

Próximas etapas