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.

  1. No menu portal do Azure ou na Home page, selecione Criar um recurso.

  2. Procure o Azure Cosmos DB. Selecione Criar>Azure Cosmos DB.

  3. 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.

  4. 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.

    Captura de ecrã a mostrar a página Criar Conta do Azure Cosmos DB.

    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
  5. 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
  6. 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.
  7. Selecione Rever + criar.

  8. 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.

    Captura de ecrã a mostrar que a implementação está concluída.

  9. Selecione Ir para recurso para aceder à página da conta do Azure Cosmos DB.

    Captura de ecrã a mostrar a página da conta do Azure Cosmos DB.

Adicionar um enlace de saída

  1. No portal do Azure, navegue para e selecione a aplicação de funções que criou anteriormente.

  2. Selecione Funções e, em seguida, selecione a função HttpTrigger.

    Selecione a função Http no portal do Azure.

  3. Selecione Integração e + Adicionar saída.

    Adicione um enlace de saída do Azure Cosmos DB.

  4. Utilize as definições Criar Saída conforme especificado na tabela:

    Configurar o enlace de saída do Azure Cosmos DB.

    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.
  5. 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

  1. Selecione Testar/Executar. Em Consulta, selecione + Adicionar parâmetro e adicione os seguintes parâmetros à cadeia de consulta:

    • name
    • task
    • duedate

    Teste a função.

  2. Selecione Executar e verifique se é devolvido um estado 200.

    Captura de ecrã a mostrar o estado http response code 200 realçado após selecionar Executar.

  3. No portal do Azure, procure e selecione Azure Cosmos DB.

    Procure o serviço Azure Cosmos DB.

  4. Escolha a sua conta do Azure Cosmos DB e, em seguida, selecione Data Explorer.

  5. 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.

    Verifique os valores da cadeia de carateres no documento.

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.