Partilhar via


Usar o feed de alterações do Azure Cosmos DB para visualizar a análise de dados em tempo real

APLICA-SE A: NoSQL

O feed de alterações do Azure Cosmos DB é um mecanismo para obter um feed contínuo e incremental de registros de um contêiner do Azure Cosmos DB à medida que esses registros estão sendo criados ou modificados. O suporte de feed de alterações funciona ouvindo o contêiner para quaisquer alterações. Em seguida, disponibiliza a lista ordenada dos documentos que foram alterados, pela ordem pela qual foram modificados. Para saber mais sobre o feed de alterações, consulte o artigo Trabalhar com feed de alterações.

Este artigo descreve como o feed de alterações pode ser usado por uma empresa de comércio eletrônico para entender os padrões do usuário, executar análise e visualização de dados em tempo real. Você analisará eventos como um usuário visualizando um item, adicionando um item ao carrinho ou comprando um item. Quando um desses eventos ocorre, um novo registro é criado e o feed de alterações registra esse registro. Em seguida, o feed de alterações aciona uma série de etapas, resultando na visualização de métricas que analisam o desempenho e a atividade da empresa. As métricas de exemplo que você pode visualizar incluem receita, visitantes exclusivos do site, itens mais populares e preço médio dos itens que são visualizados versus adicionados a um carrinho versus comprados. Essas métricas de exemplo podem ajudar uma empresa de comércio eletrônico a avaliar a popularidade de seu site, desenvolver suas estratégias de publicidade e preços e tomar decisões sobre em qual inventário investir.

Componentes da solução

O diagrama a seguir representa o fluxo de dados e os componentes envolvidos na solução:

Visual do projeto

  1. Geração de dados: o simulador de dados é usado para gerar dados de varejo que representam eventos como um usuário visualizando um item, adicionando um item ao carrinho e comprando um item. Você pode gerar um grande conjunto de dados de exemplo usando o gerador de dados. Os dados de exemplo gerados contêm documentos no seguinte formato:

    {
      "CartID": 2486,
      "Action": "Viewed",
      "Item": "Women's Denim Jacket",
      "Price": 31.99
    }
    
  2. Azure Cosmos DB: Os dados gerados são armazenados em um contêiner do Azure Cosmos DB.

  3. Feed de alterações: o feed de alterações escutará as alterações no contêiner do Azure Cosmos DB. Cada vez que um novo documento é adicionado à coleção (ou seja, quando ocorre um evento como um usuário exibindo um item, adicionando um item ao carrinho ou comprando um item), o feed de alterações acionará uma Função do Azure.

  4. Função do Azure: a Função do Azure processa os novos dados e os envia para os Hubs de Eventos do Azure.

  5. Hub de eventos do Azure: o hub de eventos armazena esses eventos e os envia para o Azure Stream Analytics para executar análises adicionais.

  6. Azure Stream Analytics: o Azure Stream Analytics define consultas para processar os eventos e executar a análise de dados em tempo real. Esses dados são enviados para o Microsoft Power BI.

  7. Power BI: O Power BI é usado para visualizar os dados enviados pelo Azure Stream Analytics. Você pode criar um painel para ver como as métricas mudam em tempo real.

Pré-requisitos

  • Microsoft .NET Framework 4.7.1 ou superior

  • Microsoft .NET Core 2.1 (ou superior)

  • Visual Studio com desenvolvimento da Plataforma Universal do Windows, desenvolvimento de área de trabalho .NET e cargas de trabalho de desenvolvimento ASP.NET e Web

  • Subscrição do Microsoft Azure

  • Conta do Microsoft Power BI

  • Baixe o laboratório de feed de alterações do Azure Cosmos DB do GitHub.

Criar recursos do Azure

Crie os recursos do Azure: Azure Cosmos DB, conta de armazenamento, hub de eventos e Stream Analytics exigidos pela solução. Você implantará esses recursos por meio de um modelo do Azure Resource Manager. Use as seguintes etapas para implantar esses recursos:

  1. Defina a política de execução do Windows PowerShell como Sem restrições. Para fazer isso, abra o Windows PowerShell como Administrador e execute os seguintes comandos:

    Get-ExecutionPolicy
    Set-ExecutionPolicy Unrestricted 
    
  2. No repositório do GitHub que você baixou na etapa anterior, navegue até a pasta Azure Resource Manager e abra o arquivo chamado arquivo parameters.json .

  3. Forneça valores para cosmosdbaccount_name, eventhubnamespace_name, storageaccount_name, parâmetros conforme indicado em parameters.json arquivo. Você precisará usar os nomes que der a cada um dos seus recursos mais tarde.

  4. No Windows PowerShell, navegue até a pasta Azure Resource Manager e execute o seguinte comando:

    .\deploy.ps1
    
  5. Quando solicitado, insira sua ID de Assinatura do Azure, changefeedlab para o nome do grupo de recursos e run1 para o nome da implantação. Quando os recursos começarem a ser implantados, pode levar até 10 minutos para serem concluídos.

Criar um banco de dados e a coleção

Agora você criará uma coleção para realizar eventos do site de comércio eletrônico. Quando um usuário visualiza um item, adiciona um item ao carrinho ou compra um item, a coleção receberá um registro que inclui a ação ("visualizado", "adicionado" ou "comprado"), o nome do item envolvido, o preço do item envolvido e o número de ID do carrinho de usuário envolvido.

  1. Vá para o portal do Azure e localize a Conta do Azure Cosmos DB que foi criada pela implantação do modelo.

  2. No painel Data Explorer, selecione Nova Coleção e preencha o formulário com os seguintes detalhes:

    • Para o campo ID do banco de dados , selecione Criar novo e insira changefeedlabdatabase. Deixe a caixa Taxa de transferência do banco de dados Provisionar desmarcada.
    • Para o campo ID da coleção , insira changefeedlabcollection.
    • Para o campo Chave de partição, digite /Item. Isso diferencia maiúsculas de minúsculas, portanto, certifique-se de inseri-lo corretamente.
    • Para o campo Taxa de transferência, insira 10000.
    • Selecione o botão OK.
  3. Em seguida, crie outra coleção chamada concessões para processamento de feed de alterações. A coleção de locações coordena o processamento do feed de alterações entre vários trabalhadores. Uma coleção separada é usada para armazenar as concessões com uma concessão por partição.

  4. Retorne ao painel Data Explorer, selecione Nova Coleção e preencha o formulário com os seguintes detalhes:

    • Para o campo ID do banco de dados , selecione Usar existente e insira changefeedlabdatabase.
    • Para o campo ID da coleção, insira concessões .
    • Em Capacidade de armazenamento, selecione Fixo.
    • Deixe o campo Taxa de Transferência definido com seu valor padrão.
    • Selecione o botão OK.

Obter a cadeia de conexão e as chaves

Obter a cadeia de conexão do Azure Cosmos DB

  1. Vá para o portal do Azure e localize a Conta do Azure Cosmos DB criada pela implantação do modelo.

  2. Navegue até o painel Chaves , copie a CADEIA DE CONEXÃO PRIMÁRIA e copie-a para um bloco de notas ou outro documento ao qual você terá acesso em todo o laboratório. Você deve rotulá-lo como Cadeia de Conexão do Azure Cosmos DB. Você precisará copiar a string para seu código mais tarde, então tome uma nota e lembre-se de onde você está armazenando-a.

Obter a chave da conta de armazenamento e a cadeia de conexão

As Contas de Armazenamento do Azure permitem que os usuários armazenem dados. Neste laboratório, você usará uma conta de armazenamento para armazenar dados usados pela Função do Azure. A Função do Azure é acionada quando qualquer modificação é feita na coleção.

  1. Regresse ao seu grupo de recursos e abra a conta de armazenamento que criou anteriormente

  2. Selecione Teclas de acesso no menu do lado esquerdo.

  3. Copie os valores na tecla 1 para um bloco de notas ou outro documento ao qual você terá acesso em todo o laboratório. Você deve rotular a chave como chave de armazenamento e a cadeia de conexão como cadeia de conexão de armazenamento. Você precisará copiar essas cadeias de caracteres para seu código mais tarde, então tome uma nota e lembre-se de onde você as está armazenando.

Obter a cadeia de conexão do namespace do hub de eventos

Um hub de eventos do Azure recebe os dados do evento, armazena, processa e encaminha os dados. Neste laboratório, o hub de eventos receberá um documento sempre que ocorrer um novo evento (sempre que um item for visualizado por um usuário, adicionado ao carrinho de um usuário ou comprado por um usuário) e, em seguida, encaminhará esse documento para o Azure Stream Analytics.

  1. Retorne ao seu grupo de recursos e abra o Namespace de Hubs de Eventos que você criou e nomeou no pré-laboratório.

  2. Selecione Políticas de acesso compartilhado no menu do lado esquerdo.

  3. Selecione RootManageSharedAccessKey. Copie a chave primária da cadeia de conexão para um bloco de notas ou outro documento ao qual você terá acesso em todo o laboratório. Você deve rotulá-lo como cadeia de conexão do Namespace do Hub de Eventos . Você precisará copiar a string para seu código mais tarde, então tome uma nota e lembre-se de onde você está armazenando-a.

Configurar o Azure Function para ler o feed de alterações

Quando um novo documento é criado ou um documento atual é modificado em um contêiner do Azure Cosmos DB, o feed de alterações adiciona automaticamente esse documento modificado ao seu histórico de alterações de coleção. Agora você criará e executará uma Função do Azure que processa o feed de alterações. Quando um documento é criado ou modificado na coleção que você criou, a Função do Azure será acionada pelo feed de alterações. Em seguida, a Função do Azure enviará o documento modificado para o hub de eventos.

  1. Retorne ao repositório clonado no dispositivo.

  2. Clique com o botão direito do mouse no arquivo chamado ChangeFeedLabSolution.sln e selecione Abrir com Visual Studio.

  3. Navegue até local.settings.json no Visual Studio. Em seguida, use os valores registrados anteriormente para preencher os espaços em branco.

  4. Navegue até ChangeFeedProcessor.cs. Nos parâmetros para a função Executar , execute as seguintes ações:

    • Substitua o texto YOUR COLLECTION NAME HERE pelo nome da sua coleção. Se você seguiu as instruções anteriores, o nome da sua coleção é changefeedlabcollection.
    • Substitua o texto YOUR LEASES COLLECTION NAME HERE pelo nome da sua coleção de leases. Se você seguiu as instruções anteriores, o nome da sua coleção de locações é locações.
    • Na parte superior do Visual Studio, certifique-se de que a caixa Projeto de inicialização à esquerda da seta verde diz ChangeFeedFunction.
    • Selecione Iniciar na parte superior da página para executar o programa
    • Você pode confirmar que a função está em execução quando o aplicativo do console diz "Host de trabalho iniciado".

Inserir dados no Azure Cosmos DB

Para ver como o feed de alterações processa novas ações em um site de comércio eletrônico, precisa simular dados que representam os usuários visualizando itens do catálogo de produtos, adicionando esses itens aos carrinhos e comprando os itens em seus carrinhos. Esses dados são arbitrários e usados para replicar como seriam os dados em um site de comércio eletrônico.

  1. Navegue de volta para o repositório no Explorador de Arquivos e clique com o botão direito do mouse em ChangeFeedFunction.sln para abri-lo novamente em uma nova janela do Visual Studio.

  2. Navegue até o arquivo App.config. Dentro do <appSettings> bloco , adicione o ponto de extremidade e a CHAVE PRIMÁRIA exclusiva da sua conta do Azure Cosmos DB que você recuperou anteriormente.

  3. Adicione os nomes da coleção e do banco de dados. (Esses nomes devem ser changefeedlabcollection e changefeedlabdatabase, a menos que você escolha nomear o seu de forma diferente.)

    Atualizar cadeias de conexão

  4. Salve as alterações em todos os arquivos editados.

  5. Na parte superior do Visual Studio, certifique-se de que a caixa Projeto de inicialização à esquerda da seta verde diz DataGenerator. Em seguida, selecione Iniciar na parte superior da página para executar o programa.

  6. Aguarde até que o programa seja executado. As estrelas significam que os dados estão chegando! Mantenha o programa em execução - é importante que muitos dados sejam coletados.

  7. Se você navegar para o portal do Azure e, em seguida, para a conta do Azure Cosmos DB dentro do seu grupo de recursos e, em seguida, para o Data Explorer, verá os dados aleatórios importados em sua coleção changefeedlab.

    Dados gerados no portal

Configurar um trabalho de análise de fluxo

O Azure Stream Analytics é um serviço de nuvem totalmente gerenciado para processamento em tempo real de dados de streaming. Neste laboratório, você usará a análise de fluxo para processar novos eventos do hub de eventos (quando um item for exibido, adicionado a um carrinho ou comprado), incorporar esses eventos na análise de dados em tempo real e enviá-los para o Power BI para visualização.

  1. No portal do Azure, navegue até seu grupo de recursos e, em seguida, para streamjob1 (o trabalho de análise de fluxo que você criou no pré-laboratório).

  2. Selecione Entradas, conforme demonstrado abaixo.

    Criar entrada

  3. Selecione + Adicionar entrada de fluxo. Em seguida, selecione Hub de Eventos no menu suspenso.

  4. Preencha o novo formulário de entrada com os seguintes detalhes:

    • No campo Alias de entrada , insira entrada.
    • Selecione a opção Selecionar Hub de Eventos em suas assinaturas.
    • Defina o campo Subscrição para a sua subscrição.
    • No campo Namespace de Hubs de Eventos, insira o nome do namespace do hub de eventos que você criou durante o pré-laboratório.
    • No campo Nome do Hub de Eventos , selecione a opção Usar existente e escolha event-hub1 no menu suspenso.
    • Deixe o campo Nome da política do Hub de Eventos definido como seu valor padrão.
    • Deixe o formato de serialização de eventos como JSON.
    • Deixe o campo Codificação definido como UTF-8.
    • Deixe o campo Tipo de compactação de evento definido como Nenhum.
    • Selecione o botão Save.
  5. Navegue de volta para a página de trabalho de análise de fluxo e selecione Saídas.

  6. Selecione + Adicionar. Em seguida, selecione Power BI no menu suspenso.

  7. Para criar uma nova saída do Power BI para visualizar o preço médio, execute as seguintes ações:

    • No campo Alias de saída, insira averagePriceOutput.
    • Deixe o campo Espaço de trabalho Grupo definido como Autorizar conexão para carregar espaços de trabalho.
    • No campo Nome do conjunto de dados, insira averagePrice.
    • No campo Nome da tabela, insira averagePrice.
    • Selecione o botão Autorizar e siga as instruções para autorizar a conexão com o Power BI.
    • Selecione o botão Save.
  8. Em seguida, volte para streamjob1 e selecione Editar consulta.

    Editar consulta

  9. Cole a seguinte consulta na janela de consulta. A consulta PREÇO MÉDIO calcula o preço médio de todos os itens visualizados pelos usuários, o preço médio de todos os itens adicionados aos carrinhos dos usuários e o preço médio de todos os itens comprados pelos usuários. Essa métrica pode ajudar as empresas de comércio eletrônico a decidir em quais preços vender itens e em qual estoque investir. Por exemplo, se o preço médio dos itens visualizados for muito maior do que o preço médio dos itens comprados, uma empresa pode optar por adicionar itens mais baratos ao seu inventário.

    /*AVERAGE PRICE*/      
    SELECT System.TimeStamp AS Time, Action, AVG(Price)  
     INTO averagePriceOutput  
     FROM input  
     GROUP BY Action, TumblingWindow(second,5) 
    
  10. Em seguida, selecione Salvar no canto superior esquerdo.

  11. Agora volte para streamjob1 e selecione o botão Iniciar na parte superior da página. O Azure Stream Analytics pode levar alguns minutos para ser iniciado, mas, eventualmente, você verá ele mudar de "Iniciando" para "Em execução".

Ligar ao Power BI

O Power BI é um conjunto de ferramentas analíticas de negócio para analisar os dados e partilhar conhecimentos aprofundados. É um ótimo exemplo de como você pode visualizar estrategicamente os dados analisados.

  1. Entre no Power BI e navegue até Meu Espaço de Trabalho abrindo o menu no lado esquerdo da página.

  2. Selecione + Criar no canto superior direito e, em seguida, selecione Painel para criar um painel.

  3. Selecione + Adicionar mosaico no canto superior direito.

  4. Selecione Dados de streaming personalizados e, em seguida, selecione o botão Avançar .

  5. Selecione averagePrice em YOUR DATASETS e, em seguida, selecione Next.

  6. No campo Tipo de visualização, escolha Gráfico de barras agrupado no menu suspenso. Em Eixo, adicione ação. Pule a legenda sem adicionar nada. Em seguida, na próxima seção chamada Valor, adicione avg. Selecione Seguinte, intitule o gráfico e selecione Aplicar. Você deve ver um novo gráfico no seu painel!

  7. Agora, se você quiser visualizar mais métricas, você pode voltar para streamjob1 e criar mais três saídas com os campos a seguir.

    a. Alias de saída: incomingRevenueOutput, Nome do conjunto de dados: incomingRevenue, Nome da tabela: incomingRevenue
    b. Alias de saída: top5Output, Nome do conjunto de dados: top5, Nome da tabela: top5
    c. Alias de saída: uniqueVisitorCountOutput, Nome do conjunto de dados: uniqueVisitorCount, Nome da tabela: uniqueVisitorCount

    Em seguida, selecione Editar consulta e cole as seguintes consultas acima da que você já escreveu.

     /*TOP 5*/
     WITH Counter AS
     (
     SELECT Item, Price, Action, COUNT(*) AS countEvents
     FROM input
     WHERE Action = 'Purchased'
     GROUP BY Item, Price, Action, TumblingWindow(second,30)
     ), 
     top5 AS
     (
     SELECT DISTINCT
     CollectTop(5)  OVER (ORDER BY countEvents) AS topEvent
     FROM Counter
     GROUP BY TumblingWindow(second,30)
     ), 
     arrayselect AS 
     (
     SELECT arrayElement.ArrayValue
     FROM top5
     CROSS APPLY GetArrayElements(top5.topevent) AS arrayElement
     ) 
     SELECT arrayvalue.value.item, arrayvalue.value.price,   arrayvalue.value.countEvents
     INTO top5Output
     FROM arrayselect
    
     /*REVENUE*/
     SELECT System.TimeStamp AS Time, SUM(Price)
     INTO incomingRevenueOutput
     FROM input
     WHERE Action = 'Purchased'
     GROUP BY TumblingWindow(hour, 1)
    
     /*UNIQUE VISITORS*/
     SELECT System.TimeStamp AS Time, COUNT(DISTINCT CartID) as uniqueVisitors
     INTO uniqueVisitorCountOutput
     FROM input
     GROUP BY TumblingWindow(second, 5)
    

    A consulta TOP 5 calcula os cinco principais itens, classificados pelo número de vezes que foram comprados. Essa métrica pode ajudar as empresas de comércio eletrônico a avaliar quais itens são mais populares e pode influenciar as decisões de publicidade, preços e estoque da empresa.

    A consulta RECEITA calcula a receita somando os preços de todos os itens comprados a cada minuto. Essa métrica pode ajudar as empresas de e-commerce a avaliar seu desempenho financeiro e também entender quais horários do dia contribuem para a maior parte da receita. Isso pode afetar a estratégia geral da empresa, o marketing em particular.

    A consulta VISITANTES ÚNICOS calcula quantos visitantes únicos estão no site a cada cinco segundos, detetando IDs de carrinho exclusivos. Essa métrica pode ajudar as empresas de e-commerce a avaliar a atividade do site e criar estratégias para conquistar mais clientes.

  8. Agora você também pode adicionar blocos para esses conjuntos de dados.

    • Para o Top 5, faria sentido fazer um gráfico de colunas agrupadas com os itens como o eixo e a contagem como o valor.
    • Para a Receita, faria sentido fazer um gráfico de linhas com o tempo como eixo e a soma dos preços como valor. A janela de tempo a ser exibida deve ser a maior possível, a fim de fornecer o máximo de informações possível.
    • Para visitantes únicos, faria sentido fazer uma visualização de cartão com o número de visitantes únicos como valor.

    Esta é a aparência de um painel de exemplo com estes gráficos:

    A captura de tela mostra um painel de exemplo com gráficos denominados Preço Médio de Itens por Ação, Visitantes Únicos, Receita e Top 5 Itens Comprados.

Opcional: Visualize com um site de comércio eletrônico

Agora você vai observar como você pode usar sua nova ferramenta de análise de dados para se conectar com um site de comércio eletrônico real. Para criar o site de comércio eletrônico, use um banco de dados do Azure Cosmos DB para armazenar a lista de categorias de produtos, o catálogo de produtos e uma lista dos itens mais populares.

  1. Navegue de volta para o portal do Azure, depois para sua conta do Azure Cosmos DB e, em seguida, para o Data Explorer.

    Adicione duas coleções em produtos e categorias changefeedlabdatabase - com capacidade de armazenamento fixa.

    Adicione outra coleção em changefeedlabdatabase chamada topItems e /Item como a chave de partição.

  2. Selecione a coleção topItems e, em Escala e Configurações , defina o tempo de vida como 30 segundos para que topItems seja atualizado a cada 30 segundos.

    Time to live

  3. Para preencher a coleção topItems com os itens comprados com mais frequência, navegue de volta para streamjob1 e adicione uma nova Output. Selecione Azure Cosmos DB.

  4. Preencha os campos obrigatórios como indicado abaixo.

    Saída do Azure Cosmos DB

  5. Se você adicionou a consulta TOP 5 opcional na parte anterior do laboratório, prossiga para a parte 5a. Caso contrário, avance para a parte 5b.

    5a. Em streamjob1, selecione Editar consulta e cole a seguinte consulta no editor de consultas do Azure Stream Analytics abaixo da consulta TOP 5, mas acima do restante das consultas.

    SELECT arrayvalue.value.item AS Item, arrayvalue.value.price, arrayvalue.value.countEvents
    INTO topItems
    FROM arrayselect
    

    5b. Em streamjob1, selecione Editar consulta e cole a seguinte consulta no editor de consultas do Azure Stream Analytics acima de todas as outras consultas.

    /*TOP 5*/
    WITH Counter AS
    (
    SELECT Item, Price, Action, COUNT(*) AS countEvents
    FROM input
    WHERE Action = 'Purchased'
    GROUP BY Item, Price, Action, TumblingWindow(second,30)
    ), 
    top5 AS
    (
    SELECT DISTINCT
    CollectTop(5)  OVER (ORDER BY countEvents) AS topEvent
    FROM Counter
    GROUP BY TumblingWindow(second,30)
    ), 
    arrayselect AS 
    (
    SELECT arrayElement.ArrayValue
    FROM top5
    CROSS APPLY GetArrayElements(top5.topevent) AS arrayElement
    ) 
    SELECT arrayvalue.value.item AS Item, arrayvalue.value.price, arrayvalue.value.countEvents
    INTO topItems
    FROM arrayselect
    
  6. Abra o EcommerceWebApp.sln e navegue até o arquivo Web.config no Gerenciador de Soluções.

  7. Dentro do <appSettings> bloco , adicione o URI e a CHAVE PRIMÁRIA que você salvou anteriormente, onde diz seu URI aqui e sua chave primária aqui. Em seguida, adicione o nome do banco de dados e o nome da coleção, conforme indicado. (Esses nomes devem ser changefeedlabdatabase e changefeedlabcollection, a menos que você escolha nomear o seu de forma diferente.)

    Preencha o nome da coleção de produtos, o nome da coleção de categorias e o nome da coleção dos principais itens, conforme indicado. (Esses nomes devem ser produtos, categorias e topItems , a menos que você escolha nomear o seu de forma diferente.)

  8. Navegue até a pasta Checkout e abra-a em EcommerceWebApp.sln. Em seguida, abra o arquivo Web.config dentro dessa pasta.

  9. Dentro do <appSettings> bloco , adicione o URI e a CHAVE PRIMÁRIA que você salvou anteriormente, onde indicado. Em seguida, adicione o nome do banco de dados e o nome da coleção, conforme indicado. (Esses nomes devem ser changefeedlabdatabase e changefeedlabcollection, a menos que você escolha nomear o seu de forma diferente.)

  10. Pressione Iniciar na parte superior da página para executar o programa.

  11. Agora você pode brincar no site de comércio eletrônico. Quando visualiza um item, adiciona um item ao carrinho, altera a quantidade de um item no carrinho ou compra um item, estes eventos serão passados através do feed de alterações do Azure Cosmos DB para o hub de eventos, o Stream Analytics e, em seguida, o Power BI. Recomendamos continuar a executar o DataGenerator para gerar dados significativos de tráfego na web e fornecer um conjunto realista de "Produtos quentes" no site de comércio eletrônico.

Excluir os recursos

Para excluir os recursos que você criou durante este laboratório, navegue até o grupo de recursos no portal do Azure e, em seguida, selecione Excluir grupo de recursos no menu na parte superior da página e siga as instruções fornecidas.

Próximos passos