Armazenar dados não estruturados usando as funções do Azure e o Azure Cosmos DB
O Azure Cosmos DB é uma excelente forma de armazenar dados JSON e não estruturados. Combinado com Funções do Azure, o Azure Cosmos DB torna o armazenamento de dados rápido e fácil com muito menos código do que o necessário para armazenar dados numa base de dados relacional.
Nota
Neste momento, o acionador do Azure Cosmos DB, os enlaces de entrada e os enlaces de saída funcionam apenas com contas de API do SQL e do Graph API.
Nas Funções do Azure, os enlaces de entrada e saída proporcionam uma forma declarativa para ligar aos dados do serviço externo a partir da sua função. Neste artigo, saiba como atualizar uma função existente para adicionar um enlace de saída que armazena dados não estruturados num documento do Azure Cosmos DB.
Pré-requisitos
Para concluir este tutorial:
Este tópico usa como ponto de partida os recursos criados na função Criar a primeira função a partir do portal do Azure. Se ainda não fez isso, conclua estes passos agora para criar a sua plicação de funções.
Criar uma conta do Azure Cosmos DB
Tem de ter uma conta do Azure Cosmos DB que utilize a API SQL antes de criar o enlace de saída.
No menu portal do Azure ou na Home page, selecione Criar um recurso.
Procure o Azure Cosmos DB. Selecione Criar>Azure Cosmos DB.
Na página Criar uma conta do Azure Cosmos DB , selecione a opção Criar na secção Azure Cosmos DB para NoSQL .
O Azure Cosmos DB fornece várias APIs:
- NoSQL, para dados de documentos
- PostgreSQL
- MongoDB, para dados de documentos
- Apache Cassandra
- Tabela
- Apache Gremlin, para dados de gráficos
Para saber mais sobre a API para NoSQL, veja Bem-vindo ao Azure Cosmos DB.
Na página Criar Conta do Azure Cosmos DB , introduza as definições básicas da nova conta do Azure Cosmos DB.
Definição Valor Descrição Subscrição Nome da subscrição Selecione a subscrição do Azure que quer utilizar para esta conta do Azure Cosmos DB. Grupo de Recursos Nome do grupo de recursos Selecione um grupo de recursos ou selecione Criar novo e, em seguida, introduza um nome exclusivo para o novo grupo de recursos. Nome da Conta Um nome exclusivo Introduza um nome para identificar a sua conta do Azure Cosmos DB. Uma vez que documents.azure.com é anexado ao nome que indicar para criar o URI, utilize um nome exclusivo. O nome só pode conter letras minúsculas, números e o caráter hífen (-). Tem de ter entre 3 e 44 carateres. Localização A região mais próxima dos seus utilizadores Selecione a localização geográfica para alojar a sua conta do Azure Cosmos DB. Utilize a localização mais próxima dos utilizadores para lhes dar o acesso mais rápido aos dados. Modo de capacidade Débito aprovisionado ou Sem Servidor Selecione Débito aprovisionado para criar uma conta no modo de débito aprovisionado . Selecione Sem servidor para criar uma conta no modo sem servidor . Aplicar desconto de escalão gratuito do Azure Cosmos DB Aplicar ou Não aplicar Com o escalão gratuito do Azure Cosmos DB, obtém gratuitamente as primeiras 1000 RU/s e 25 GB de armazenamento numa conta. Saiba mais sobre o escalão gratuito. Limitar o débito total da conta Selecionado ou não Limite a quantidade total de débito que pode ser aprovisionada nesta conta. Este limite impede custos inesperados relacionados com o débito aprovisionado. Pode atualizar ou remover este limite após a criação da sua conta. Pode ter até uma conta do Azure Cosmos DB de escalão gratuito por subscrição do Azure e tem de optar por participar ao criar a conta. Se não vir a opção para aplicar o desconto de escalão gratuito, outra conta na subscrição já foi ativada com o escalão gratuito.
Nota
As seguintes opções não estão disponíveis se selecionar Sem servidor como modo de Capacidade:
- Aplicar Desconto de Escalão Gratuito
- Limitar o débito total da conta
No separador Distribuição Global , configure os seguintes detalhes. Pode deixar os valores predefinidos para este início rápido:
Definição Valor Descrição Redundância Geográfica Desativar Ative ou desative a distribuição global na sua conta ao emparelhar a sua região com uma região de par. Pode adicionar mais regiões à sua conta mais tarde. Escritas de várias regiões Desativar A capacidade de escrita de várias regiões permite-lhe tirar partido do débito aprovisionado para as suas bases de dados e contentores em todo o mundo. Zonas de Disponibilidade Desativar Zonas de Disponibilidade ajudar a melhorar ainda mais a disponibilidade e a resiliência da sua aplicação. Nota
As seguintes opções não estão disponíveis se selecionar Sem servidor como o modo de Capacidade na página Básicas anterior:
- Georredundância
- Escritas de várias regiões
Opcionalmente, pode configurar mais detalhes nos seguintes separadores:
- Rede. Configurar o acesso a partir de uma rede virtual.
- Política de Cópia de Segurança. Configure uma política de cópia de segurança periódica ou contínua .
- Encriptação. Utilize uma chave gerida pelo serviço ou uma chave gerida pelo cliente.
- Etiquetas. As etiquetas são pares de nomes/valores que lhe permitem categorizar recursos e ver a faturação consolidada ao aplicar a mesma etiqueta a vários recursos e grupos de recursos.
Selecione Rever + criar.
Reveja as definições da conta e, em seguida, selecione Criar. A criação da conta demora alguns minutos. Aguarde até que a página do portal apresente A implementação está concluída.
Selecione Ir para recurso para aceder à página da conta do Azure Cosmos DB.
Adicionar um enlace de saída
No portal do Azure, navegue para e selecione a aplicação de funções que criou anteriormente.
Selecione Funções e, em seguida, selecione a função HttpTrigger.
Selecione Integração e + Adicionar saída.
Utilize as definições Criar Saída conforme especificado na tabela:
Definição Valor sugerido Descrição Tipo de Enlace Azure Cosmos DB Nome do tipo de enlace a selecionar para criar o enlace de saída para o Azure Cosmos DB. Nome do parâmetro do documento taskDocument Nome que se refere ao objeto do Azure Cosmos DB no código. Nome da base de dados taskDatabase Nome da base de dados para guardar os documentos. Nome da coleção taskCollection Nome da coleção da base de dados. Se for verdadeiro, cria a base de dados e a coleção do Azure Cosmos DB Sim A coleção ainda não existe, como tal, deve ser criada. Ligação de conta do Azure Cosmos DB Nova definição Selecione Novo e, em seguida, selecione Conta do Azure Cosmos DB e a conta de Base de Dados que criou anteriormente e, em seguida, selecione OK. Cria uma definição da aplicação para a sua ligação de conta. Esta definição é utilizada pelo enlace para a ligação à base de dados. Selecione OK para criar o enlace.
Atualizar o código da função
Substitua o código da função existente pelo seguinte código no idioma à sua escolha:
Substitua a função C# existente pelo seguinte código:
#r "Newtonsoft.Json"
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
public static IActionResult Run(HttpRequest req, out object taskDocument, ILogger log)
{
string name = req.Query["name"];
string task = req.Query["task"];
string duedate = req.Query["duedate"];
// We need both name and task parameters.
if (!string.IsNullOrEmpty(name) && !string.IsNullOrEmpty(task))
{
taskDocument = new
{
name,
duedate,
task
};
return (ActionResult)new OkResult();
}
else
{
taskDocument = null;
return (ActionResult)new BadRequestResult();
}
}
Este exemplo de código lê as cadeias de consulta do Pedido de HTTP e atribui-as a campos no objeto taskDocument
. O enlace taskDocument
envia os dados do objeto deste parâmetro de enlace para serem armazenados na base de dados de documentos vinculada. A base de dados é criada quando a função for executada pela primeira vez.
Testar a função e a base de dados
Selecione Testar/Executar. Em Consulta, selecione + Adicionar parâmetro e adicione os seguintes parâmetros à cadeia de consulta:
name
task
duedate
Selecione Executar e verifique se é devolvido um estado 200.
No portal do Azure, procure e selecione Azure Cosmos DB.
Escolha a sua conta do Azure Cosmos DB e, em seguida, selecione Data Explorer.
Expanda os nós taskCollection, selecione o novo documento e confirme que o documento contém os valores da cadeia de consulta, juntamente com alguns metadados adicionais.
Adicionou com êxito um enlace ao acionador HTTP para armazenar dados não estruturados numa instância do Azure Cosmos DB.
Limpar os recursos
Nos passos anteriores, criou os recursos do Azure num grupo de recursos. Se provavelmente não necessitar desses recursos no futuro, pode eliminá-los ao eliminar o grupo de recursos.
No menu portal do Azure ou home page, selecione Grupos de recursos. Em seguida, na página Grupos de recursos , selecione myResourceGroup.
Na página myResourceGroup , certifique-se de que os recursos listados são os que pretende eliminar.
Selecione Eliminar grupo de recursos, escreva myResourceGroup na caixa de texto a confirmar e, em seguida, selecione Eliminar.
Passos seguintes
Para obter mais informações sobre o enlace a uma instância do Azure Cosmos DB, veja Funções do Azure enlaces do Azure Cosmos DB.
- Conceitos dos acionadores e dos enlaces das Funções do Azure
Saiba como as Funções se integram noutros serviços. - Referência para programadores das Funções do Azure
Fornece mais informações técnicas sobre o runtime das Funções e uma referência para funções de codificação e definição de acionadores e enlaces. - Criar código e testar as Funções do Azure localmente
Descreve as opções para desenvolver as suas funções localmente.