Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este conjunto de artigos explica como trabalhar com associações do Azure Cosmos DB no Azure Functions. 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 é criado ou modificado | Acionador |
Ler um documento do Azure Cosmos DB | Vinculação de entrada |
Salvar alterações em um documento do Azure Cosmos DB | Vinculação de saída |
Importante
Esta versão da extensão de vinculação do Azure Cosmos DB dá suporte ao Azure Functions versão 4.x. Se seu aplicativo ainda usa a versão 1.x do tempo de execução do Functions, consulte Associações do Azure Cosmos DB para o Azure Functions 1.x.
No tempo de execução do Functions v1.x, essa associação foi originalmente nomeada DocumentDB
.
APIs suportadas
Esta tabela indica como se conectar às várias APIs do Azure Cosmos DB a partir do seu código de função:
API | Recommendation |
---|---|
Azure Cosmos DB para NoSQL | Usar a extensão de vinculação do Azure Cosmos DB |
Azure Cosmos DB para MongoDB (vCore) | Use a extensão de vinculação do Azure Cosmos DB para MongoDB, que está atualmente em visualização. |
Azure Cosmos DB para Tabela | Use a versão 5.x ou posterior da extensão de vinculação Tabelas do Azure. |
Azure Cosmos DB para Apache Cassandra | Use um SDK de cliente nativo. |
Azure Cosmos DB para Apache Gremlin (Graph API) | Usar um SDK de cliente nativo |
Azure Cosmos DB para PostgreSQL | Use um SDK de cliente nativo. |
Instalar a extensão
O pacote de extensão NuGet que você instala depende do modo C# que você está usando em seu aplicativo de função:
As funções são executadas em um processo de trabalho C# isolado. Para saber mais, consulte Guia para executar o C# Azure Functions em um processo de trabalho isolado.
O processo de instalação da extensão varia dependendo da versão da extensão:
Esta versão da extensão de ligações do Azure Cosmos DB introduz a capacidade de se conectar usando uma identidade em vez de um segredo. Para obter um tutorial sobre como configurar seus aplicativos de função com identidades gerenciadas, consulte o tutorial de criação de um aplicativo de função com conexões baseadas em identidade.
Adicione a extensão ao seu projeto instalando o pacote NuGet, versão 4.x.
Se você estiver escrevendo seu aplicativo usando F#, também deverá configurar essa extensão como parte da configuração de inicialização do aplicativo. Na chamada para ConfigureFunctionsWorkerDefaults()
ou ConfigureFunctionsWebApplication()
, adicione um delegado que usa um IFunctionsWorkerApplication
parâmetro. Em seguida, dentro do corpo desse delegado, chame ConfigureCosmosDBExtension()
o objeto:
let hostBuilder = new HostBuilder()
hostBuilder.ConfigureFunctionsWorkerDefaults(fun (context: HostBuilderContext) (appBuilder: IFunctionsWorkerApplicationBuilder) ->
appBuilder.ConfigureCosmosDBExtension() |> ignore
) |> ignore
Instalar pacote
Para poder usar essa extensão de associação em seu aplicativo, certifique-se de que o arquivo dehost.json na raiz do seu projeto contém esta extensionBundle
referência:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
Neste exemplo, o version
valor de instrui o host Functions a usar uma versão de [4.0.0, 5.0.0)
pacote que seja pelo menos 4.0.0
, mas menor que 5.0.0
, que inclui todas as versões potenciais do 4.x. Essa notação mantém efetivamente seu aplicativo na versão secundária mais recente disponível do pacote de extensão v4.x.
Quando possível, você deve usar a versão principal mais recente do pacote de extensão e permitir que o tempo de execução mantenha automaticamente a versão secundária mais recente. Você pode visualizar o conteúdo do pacote mais recente na página de lançamento dos pacotes de extensão. Para obter mais informações, consulte Pacotes de extensão do Azure Functions.
Devido a alterações de esquema no SDK do Azure Cosmos DB, a versão 4.x da extensão do Azure Cosmos DB requer azure-functions-java-library V3.0.0 para funções Java.
Tipos de vinculação
Os tipos de associação suportados para .NET dependem da versão da extensão e do modo de execução C#, que pode ser um dos seguintes:
Uma biblioteca de classes de processo de trabalho isolada compilada função C# é executada em um processo isolado do tempo de execução.
Escolha uma versão para ver os detalhes do tipo de vinculação para o modo e a versão.
O processo de trabalho isolado suporta tipos de parâmetros de acordo com as tabelas abaixo. O suporte para associação a tipos de Microsoft.Azure.Cosmosestá em visualização.
Gatilho do Cosmos DB
Quando você deseja que a função processe um único documento, o gatilho do Cosmos DB pode se vincular aos seguintes tipos:
Tipo | Descrição |
---|---|
Tipos serializáveis JSON | As funções tentam desserializar os dados JSON do documento do feed de alteração do Cosmos DB para um tipo de objeto CLR (POCO) simples. |
Quando você deseja que a função processe um lote de documentos, o gatilho do Cosmos DB pode se vincular aos seguintes tipos:
Tipo | Descrição |
---|---|
IEnumerable<T> onde T é um tipo serializável JSON |
Uma enumeração de entidades incluídas no lote. Cada entrada representa um documento do feed de alterações do Cosmos DB. |
Vinculação de entrada do Cosmos DB
Quando você deseja que a função processe um único documento, a associação de entrada do Cosmos DB pode se vincular aos seguintes tipos:
Tipo | Descrição |
---|---|
Tipos serializáveis JSON | As funções tentam desserializar os dados JSON do documento em um tipo de objeto CLR antigo (POCO). |
Quando você deseja que a função processe vários documentos de uma consulta, a associação de entrada do Cosmos DB pode se vincular aos seguintes tipos:
Tipo | Descrição |
---|---|
IEnumerable<T> onde T é um tipo serializável JSON |
Uma enumeração de entidades retornadas pela consulta. Cada entrada representa um documento. |
CosmosClient1 | Um cliente conectado à conta do Cosmos DB. |
Base de dados1 | Um cliente conectado ao banco de dados do Cosmos DB. |
Contentor1 | Um cliente conectado ao contêiner do Cosmos DB. |
1 Para usar esses tipos, você precisa fazer referência a Microsoft.Azure.Functions.Worker.Extensions.CosmosDB 4.4.0 ou posterior e às dependências comuns para associações de tipo SDK.
Ligação de saída do Cosmos DB
Quando você deseja que a função grave em um único documento, a associação de saída do Cosmos DB pode se vincular aos seguintes tipos:
Tipo | Descrição |
---|---|
Tipos serializáveis JSON | Um objeto que representa o conteúdo JSON de um documento. As funções tentam serializar um tipo de objeto CLR (POCO) antigo em dados JSON. |
Quando você deseja que a função grave em vários documentos, a associação de saída do Cosmos DB pode se vincular aos seguintes tipos:
Tipo | Descrição |
---|---|
T[] onde T é JSON tipo serializável |
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 diretamente com outros tipos do Microsoft.Azure.Cosmos . Consulte Registrar clientes do Azure para obter um exemplo de como usar a injeção de dependência para criar um tipo de cliente a partir do SDK do Azure.
Tipos de vinculação SDK
O suporte de Tipo de SDK para o Azure Cosmos está em Pré-visualização. Siga o exemplo Python SDK Bindings for CosmosDB para começar a usar os tipos de SDK para Cosmos em Python.
Importante
Usar associações de tipo SDK requer o modelo de programação Python v2.
Enlace | Tipos de parâmetros | Exemplos |
---|---|---|
Entrada do CosmosDB |
ContainerProxy, CosmosClient, DatabaseProxy |
ContainerProxy ,CosmosClient ,DatabaseProxy |
Exceções e códigos de devolução
Enlace | Referência |
---|---|
Azure Cosmos DB | Códigos de estado HTTP do Azure Cosmos DB |
host.json configurações
Esta seção descreve as definições de configuração disponíveis para essa associação na versão 2.x e posterior. As configurações no arquivo host.json se aplicam a todas as funções em uma instância de aplicativo de função. Para obter mais informações sobre definições de configuração de aplicativo de função, consulte host.json referência para o Azure Functions.
{
"version": "2.0",
"extensions": {
"cosmosDB": {
"connectionMode": "Gateway",
"userAgentSuffix": "MyDesiredUserAgentStamp"
}
}
}
Propriedade | Predefinição | Descrição |
---|---|---|
connectionMode | Gateway |
O modo de conexão usado pela função ao se conectar ao serviço Azure Cosmos DB. Opções: Direct conecta-se diretamente a réplicas de back-end por TCP e pode fornecer latência mais baixa e Gateway roteia solicitações por meio de um gateway front-end por HTTPS. Para obter mais informações, consulte Modos de conexão do SDK do Azure Cosmos DB. |
userAgentSuffix | n/d | Adiciona o valor de cadeia de caracteres especificado a todas as solicitações feitas pelo gatilho ou associação ao serviço. Isso facilita o acompanhamento da atividade no Azure Monitor, com base em um aplicativo de função específica e na filtragem por User Agent . |