Exercício: Migrar cargas de trabalho do MongoDB para o Cosmos DB

Concluído

Você trabalha para uma empresa de utilitários que tem sensores de IoT que coletam dados de temperatura. As temperaturas são registradas em um banco de dados do MongoDB, juntamente com um carimbo de data/hora. Cada dispositivo tem uma ID exclusiva. Você executará um aplicativo MongoDB que simula esses dispositivos e armazena os dados no banco de dados. Você também usará um segundo aplicativo que permite que um usuário consulte informações estatísticas sobre cada dispositivo. Depois de migrar o banco de dados do MongoDB para o Cosmos DB, você configurará ambos os aplicativos para se conectar ao Cosmos DB e verificará se eles ainda funcionam corretamente.

Neste exercício, você pegará um banco de dados do MongoDB existente e o migrará para o Cosmos DB. Você usará o Serviço de Migração de Banco de Dados do Azure. Você também verá como reconfigurar aplicativos existentes que usam o banco de dados MongoDB para se conectar ao banco de dados do Cosmos DB.

Importante

O Serviço de Migração de Dados do Azure não tem suporte no ambiente de área restrita gratuito do Azure. Você pode executar estas etapas em sua própria assinatura pessoal ou apenas acompanhar para entender como migrar seu banco de dados.

Criar um banco de dados do MongoDB no Azure

Primeiro, você criará o banco de dados do MongoDB para manter os dados capturados dos dispositivos de temperatura.

Criar um grupo de recursos e uma rede virtual

  1. Usando um navegador da Web, abra uma nova guia e navegue até o portal do Azure.

  2. No portal do Azure, selecione Grupos de recursose selecione +Adicionar.

  3. Na página Criar um grupo de recursos, insira os seguintes detalhes:

    Propriedade Valor
    Subscrição <sua assinatura>
    Grupo de Recursos mongodbrg
    Região Selecione sua localização mais próxima
  4. Selecione Examinar + Criar e Criar. Aguarde até que o grupo de recursos seja criado.

  5. No menu do portal do Azure, selecione + Criar um recurso.

  6. Na página Novo, na caixa Pesquisar no Marketplace, digite Rede Virtual e pressione Enter.

  7. Na página Rede Virtual, selecione Criar.

  8. Na página Criar rede virtual , insira os seguintes detalhes e selecione Avançar: Endereços IP:

    Propriedade Valor
    Grupo de Recursos mongodbrg
    Nome databasevnet
    Região Selecione o mesmo local especificado para o grupo de recursos
  9. Na página endereços IP, defina o espaço de endereço IPv4 para 10.0.0.0/24.

  10. Selecione a sub-rede padrão e selecione Remover sub-rede.

  11. Selecione + Adicionar sub-rede. No painel Adicionar de sub-rede, defina o nome da sub-rede como padrão, defina o intervalo de endereços da Sub-rede como 10.0.0.0/28e selecione Adicionar.

  12. Na página endereços IP, selecione Próximo: Segurança.

  13. Na página Segurança , verifique se a Proteção de Rede do Azure DDoS está definida como Desabilitar e se o Firewall está definido como Desabilitar. Selecione Examinar + criar.

  14. Na página Criar rede virtual, selecione Criar. Aguarde até que a rede virtual seja criada antes de continuar.

Criar um servidor de banco de dados do MongoDB

  1. No menu do portal do Azure, selecione + Criar um recurso.

  2. Na caixa Pesquisar no Marketplace , digite Ubuntu e pressione Enter.

  3. Na página do Marketplace , selecione Ubuntu Server 18.04 LTS.

  4. Na página Ubuntu Server 18.04 LTS , selecione Criar.

  5. Na página Criar uma máquina virtual , insira os seguintes detalhes:

    Propriedade Valor
    Grupo de Recursos mongodbrg
    Nome da máquina virtual mongodbserver
    Região Selecione o mesmo local especificado para o grupo de recursos
    Opções de disponibilidade Nenhuma redundância de infraestrutura necessária
    Imagem Ubuntu Server 18.04 LTS – Gen1
    Instância do Azure Spot Desmarcada
    Tamanho Padrão A1_v2
    Tipo de autenticação Senha
    Nome de usuário azureuser
    Senha Pa55w.rdPa55w.rd
    Confirmar senha Pa55w.rdPa55w.rd
    Portas de entrada públicas Permitir portas selecionadas
    Selecione as portas de entrada SSH (22)
  6. Selecione Próximo: Discos>.

  7. Na página Discos , deixe as configurações em seu padrão e selecione Avançar: Rede >.

  8. Na página Rede , insira os seguintes detalhes:

    Propriedade Valor
    Rede virtual databasevnet
    Sub-rede default (10.0.0.0/28)
    IP público (novo) mongodbserver-ip
    Grupo de segurança de rede da NIC Avançado
    Configurar um grupo de segurança de rede (novo) mongodbserver-nsg
    Redes aceleradas Desmarcada
    Balanceamento de carga Desmarcada
  9. Selecione Revisar + criar >.

  10. Na página de validação, selecione Criar.

  11. Aguarde até que a máquina virtual seja implantada antes de continuar

  12. No menu do portal do Azure, selecione Todos os recursos.

  13. Na página Todos os recursos , selecione mongodbserver-nsg.

  14. Na página mongodbserver-nsg , em Configurações, selecione regras de segurança de entrada.

  15. Na página mongodbserver-nsg – Regras de segurança de entrada , selecione + Adicionar.

  16. No painel Adicionar regra de segurança de entrada, insira os seguintes detalhes:

    Propriedade Valor
    Fonte Qualquer
    Intervalos de portas de origem *
    Destino Qualquer
    Intervalos de portas de destino 8080
    Protocolo Qualquer
    Ação Permitir
    Prioridade 1030
    Nome Mongodb-port
    Descrição Porta que os clientes usam para se conectar ao MongoDB
  17. Selecione Adicionar.

Observação

Você configurará o MongoDB para usar a porta 8080 neste exercício. Você só precisa fazer isso devido a restrições de segurança nesse ambiente. Normalmente, você usaria a porta padrão do MongoDB de 27017.

Instalar o MongoDB

  1. No menu do portal do Azure, selecione Todos os recursos.

  2. Na página Todos os recursos , selecione mongodbserver-ip.

  3. Na página mongodbserver-ip , anote o endereço IP.

  4. Na barra de ferramentas na parte superior da portal do Azure, selecione Cloud Shell.

  5. Se a mensagem Você não tem nenhum armazenamento montado aparecer, selecione Criar armazenamento.

  6. Quando o Cloud Shell for iniciado, na lista suspensa acima da janela Cloud Shell, selecione Bash.

  7. No Cloud Shell, insira o comando a seguir para se conectar à máquina virtual mongodbserver. Substitua <endereço IP> pelo valor do endereço IP mongodbserver-ip:

    ssh azureuser@<ip address>
    
  8. No prompt, digite sim para continuar a conexão.

  9. Insira a senha Pa55w.rdPa55w.rd.

  10. Para recarregar o banco de dados do pacote, insira este comando:

    sudo apt-get update
    
  11. Para instalar o MongoDB, insira este comando:

    sudo apt-get install -y mongodb
    

    A instalação deve continuar com mensagens sobre instalação, preparação e desempacotamento de pacotes. Pode levar alguns minutos para a instalação ser concluída.

Configurar o banco de dados do MongoDB

Por padrão, a instância do Mongo DB é configurada para ser executada sem autenticação. Nesta tarefa, você configurará o MongoDB para vincular à interface de rede local, permitindo aceitar conexões de outros computadores. Você também habilitará a autenticação e criará a conta de usuário necessária para executar a migração. Por fim, você adicionará uma conta que um aplicativo de teste pode usar para consultar o banco de dados.

  1. Para abrir o arquivo de configuração do MongoDB, execute este comando:

    sudo nano /etc/mongodb.conf
    
  2. No arquivo, localize a configuração de bind_ip e defina-a como 0.0.0.0.

  3. Localize a configuração da porta e defina-a como 8080.

  4. Para salvar o arquivo de configuração, pressione Esc e pressione CTRL + X. Pressione y e , em seguida, Enter para salvar o buffer modificado.

  5. Para reiniciar o serviço do MongoDB e aplicar suas alterações, insira este comando:

    sudo service mongodb restart
    
  6. Para se conectar ao serviço do MongoDB, insira este comando:

    mongo --host 127.0.0.1:8080
    
  7. No prompt >, para alternar para o banco de dados de administrador, execute este comando:

    use admin;
    
  8. Para criar um novo usuário nomeado administrador, execute o comando a seguir. Você pode inserir o comando em uma linha ou em várias linhas para obter melhor legibilidade. O comando é executado quando o programa mongo atinge o ponto e vírgula:

    db.createUser(
        {
            user: "administrator",
            pwd: "Pa55w.rd",
            roles: [
                { role: "userAdminAnyDatabase", db: "admin" },
                { role: "clusterMonitor", db:"admin" },
                "readWriteAnyDatabase"
            ]
        }
    );
    
  9. Para sair do mongo programa, insira este comando;

    exit;
    
  10. Para se conectar ao MongoDB com a conta do novo administrador, execute este comando:

    mongo admin -u "administrator" -p "Pa55w.rd" --host 127.0.0.1:8080
    
  11. Para alternar para o banco de dados DeviceData, execute este comando:

    use DeviceData;    
    
  12. Para criar um usuário chamado deviceadmin, que o aplicativo usará para se conectar ao banco de dados, execute este comando:

    db.createUser(
        {
            user: "deviceadmin",
            pwd: "Pa55w.rd",
            roles: [ { role: "readWrite", db: "DeviceData" } ]
        }
    );
    
  13. Para sair do mongo programa, insira este comando;

    exit;
    
  14. Execute o comando a seguir para reiniciar o serviço mongodb. Verifique se o serviço é reiniciado sem mensagens de erro:

    sudo service mongodb restart
    
  15. Execute o seguinte comando para verificar se agora você pode fazer logon no mongodb como o usuário deviceadmin:

    mongo DeviceData -u "deviceadmin" -p "Pa55w.rd" --host 127.0.0.1:8080
    
  16. No prompt >, execute o seguinte comando para sair do shell do mongo:

    exit;
    
  17. No prompt do Bash, execute o seguinte comando para se desconectar do servidor MongoDB e retornar ao Cloud Shell:

    exit
    

Preencher e consultar o banco de dados do MongoDB

Agora você criou um servidor e um banco de dados do MongoDB. A próxima etapa é demonstrar os aplicativos de exemplo que podem preencher e consultar os dados neste banco de dados.

Criar e executar um aplicativo para preencher o banco de dados do MongoDB

  1. No Azure Cloud Shell, execute o seguinte comando para baixar o código de exemplo:

    git clone https://github.com/MicrosoftLearning/DP-060T00A-Migrating-your-Database-to-Cosmos-DB migration-workshop-apps
    
  2. Mova para a pasta migration-workshop-apps/MongoDeviceDataCapture/MongoDeviceCapture :

    cd ~/migration-workshop-apps/MongoDeviceDataCapture/MongoDeviceDataCapture
    
  3. Use o editor de código para examinar o arquivo TemperatureDevice.cs :

    code TemperatureDevice.cs
    

    O código neste arquivo contém uma classe chamada TemperatureDevice que simula um dispositivo de temperatura capturando dados e salvando-os em um banco de dados do MongoDB. Ele usa a biblioteca do MongoDB para o .NET Framework. O construtor TemperatureDevice se conecta ao banco de dados usando as configurações armazenadas no arquivo de configuração do aplicativo. O método RecordTemperatures gera uma leitura e grava-a no banco de dados.

  4. Feche o editor de código e abra o arquivo ThermometerReading.cs :

    code ThermometerReading.cs
    

    Esse arquivo mostra a estrutura dos documentos que o aplicativo armazena no banco de dados. Cada documento contém os seguintes campos:

    • Uma ID de objeto. É o campo "_id" gerado pelo MongoDB para identificar exclusivamente cada documento.
    • Uma ID do dispositivo. Cada dispositivo tem um número com o prefixo "Device".
    • A temperatura registrada pelo dispositivo.
    • A data e a hora em que a temperatura foi registrada.
  5. Feche o editor de código e abra o arquivo App.config :

    code App.config
    

    Esse arquivo contém as configurações para se conectar ao banco de dados do MongoDB.

  6. Defina o valor da chave de endereço para o endereço IP do servidor MongoDB que você registrou anteriormente.

  7. Altere a porta que o aplicativo usa para 8080.

  8. Salve o arquivo e feche o editor usando CTRL + s e, em seguida, CTRL + q.

  9. Execute o seguinte comando para recompilar o aplicativo:

    dotnet build
    

    Isso pode levar cerca de 5 minutos.

  10. Execute o aplicativo:

    dotnet run
    

    O aplicativo simula 100 dispositivos em execução simultaneamente. Permita que o aplicativo seja executado por alguns minutos e pressione Enter para pará-lo.

Criar e executar outro aplicativo para consultar o banco de dados do MongoDB

  1. Mova para a pasta DP160T00A-Migrating-your-Database-to-Cosmos-DB/MongoDeviceDataCapture/DeviceDataQuery:

    cd ~/migration-workshop-apps/MongoDeviceDataCapture/DeviceDataQuery
    

    Essa pasta contém outro aplicativo que você pode usar para analisar os dados capturados por cada dispositivo.

  2. Use o editor de código para examinar o arquivo de Program.cs :

    code Program.cs
    

    O aplicativo se conecta ao banco de dados (usando o método ConnectToDatabase na parte inferior do arquivo) e solicita ao usuário um número de dispositivo. O aplicativo usa a biblioteca do MongoDB para o .NET Framework para criar e executar um pipeline de agregação que calcula as seguintes estatísticas para o dispositivo especificado:

    • O número de leituras registradas.
    • A temperatura média registrada.
    • A leitura mais baixa.
    • A leitura mais alto.
    • A leitura mais recente.
  3. Feche o editor de código e abra o arquivo App.config :

    code App.config
    
  4. Defina o valor da chave de endereço para o endereço IP do servidor MongoDB que você registrou anteriormente.

  5. Altere a porta que o aplicativo usa para 8080.

  6. Salve o arquivo e feche o editor usando CTRL + s e, em seguida, CTRL + q.

  7. Crie e execute o aplicativo:

    dotnet build
    dotnet run
    
  8. No prompt Inserir Número do Dispositivo , insira um valor entre 0 e 99. O aplicativo consultará o banco de dados, calculará as estatísticas e exibirá os resultados. Pressione Q para sair do aplicativo.

Migrar o Banco de Dados do MongoDB para o Cosmos DB

A próxima etapa é pegar o banco de dados do MongoDB e transferi-lo para o Cosmos DB.

Criar uma conta e um banco de dados do Cosmos

  1. Retorne ao portal do Azure.

  2. No menu, selecione + Criar um recurso.

  3. Na página Nova , na caixa Pesquisar no Marketplace , digite *Azure Cosmos DB, finalize e pressione Enter.

  4. Na página Azure Cosmos DB, selecione Criar.

  5. Na página Criar Conta do Azure Cosmos DB , insira as seguintes configurações:

    Propriedade Valor
    Grupo de recursos mongodbrg
    Nome da Conta mongodb*nnn*, onde nnn é um número aleatório selecionado por você
    API (Interface de Programação de Aplicativos) API do Azure Cosmos DB para MongoDB
    Notebooks Desativado
    Localização Especifique o mesmo local usado para o servidor MongoDB e a rede virtual
    Modo de capacidade Capacidade de processamento provisionada
    Aplicar desconto por nível gratuito Apply
    Tipo de conta Não Produção
    Versão 3.6
    Redundância geográfica Desabilitar
    Gravações de várias regiões Desabilitar
    Zonas de disponibilidade Desabilitar
  6. Selecione Examinar + criar.

  7. Na página de validação, selecione Criar e aguarde a implantação da conta do Cosmos DB.

  8. No menu do portal do Azure, selecione Todos os recursos e selecione sua nova conta do Cosmos DB (mongodbnnn).

  9. Na página mongodbnnn , selecione Data Explorer.

  10. No painel Do Data Explorer , selecione Nova Coleção.

  11. No painel Adicionar Coleção , especifique as seguintes configurações:

    Propriedade Valor
    ID do banco de dados Selecione Criar novo e digite DeviceData
    Provisionar a taxa de transferência do banco de dados selecionado
    Rendimento 10000
    ID da coleção Temperaturas
    Capacidade de armazenamento Ilimitado
    Chave de extensão deviceID
    Minha chave de extensão é maior que 100 bytes deixar de-selecionado
    Criar um índice curinga em todos os campos deixar sem seleção
    Repositório analítico Desativado
  12. Selecione OK.

Criar o Serviço de Migração de Banco de Dados

  1. Volte para o portal do Azure.

  2. Clique em Todos os serviços, depois em Assinaturas e, em seguida, na sua assinatura.

  3. Na página da sua assinatura, em Configurações, clique em Provedores de recursos.

  4. Na caixa Filtrar por nome, digite DataMigration e clique em Microsoft.DataMigration.

  5. Se o Microsoft.DataMigration não estiver registrado, clique em Registrar e aguarde o Status mudar para Registrado. Pode ser necessário clicar em Atualizar para ver a alteração do status.

  6. No menu do portal do Azure, selecione + Criar um recurso.

  7. Na página Nova , na caixa Pesquisar no Marketplace , digite o Serviço de Migração de Banco de Dados do Azure e pressione Enter.

  8. Na tela Serviço de Migração de Banco de Dados do Azure, selecione Criar.

  9. Na página Criar Serviço de Migração , insira as seguintes configurações:

    Propriedade Valor
    Grupo de recursos mongodbrg
    Nome do serviço MongoDBMigration
    Localização Selecionar o mesmo local usado anteriormente
    Modo de serviço Azul
    Tipo de preço Padrão: 1 vCores
  10. Selecione Avançar: Rede.

  11. Na página Rede , selecione databasevnet/default e selecione Examinar + criar.

  12. Selecione Criar e aguarde até que o serviço seja implantado antes de continuar. Essa operação pode levar cerca de 10 minutos.

Criar e executar um novo projeto de migração

  1. No menu do portal do Azure, selecione Grupos de recursos.

  2. Na janela Grupos de recursos , selecione mongodbrg.

  3. Na janela mongodbrg, selecione MongoDBMigration.

  4. Na página MongoDBMigration , selecione + Novo Projeto de Migração.

  5. Na página Novo projeto de migração , insira as seguintes configurações:

    Propriedade Valor
    Nome do projeto MigrateTemperatureData
    Tipo do servidor de origem MongoDB
    Tipo de servidor de destino Cosmos DB (MongoDB API)
    Escolher o tipo de atividade Migração de dados offline
  6. Selecione Criar e executar atividade.

  7. Quando o Assistente de Migração for iniciado, na página Detalhes da origem , insira os seguintes detalhes:

    Propriedade Valor
    Modo Modo padrão
    Nome do servidor de origem Especificar o valor do endereço IP mongodbserver-ip que você registrou anteriormente
    Porta do servidor 8080
    Nome do usuário administrador
    Senha Pa55w.rd
    Exigir SSL de-selecionado
  8. Selecione Avançar: Selecione o destino.

  9. Na página Selecionar destino , insira os seguintes detalhes:

    Propriedade Valor
    Modo Selecionar o alvo do Cosmos DB
    Selecionar o nome do banco de dados Cosmos mongodb*nnn*
    Cadeia de conexão Aceitar a cadeia de conexão gerada para sua conta do Cosmos DB
  10. Selecione Avançar: Configuração do banco de dados.

  11. Na página de configuração do banco de dados, insira os seguintes detalhes:

    Propriedade Valor
    Banco de Dados de Origem DeviceData
    Banco de Dados de Destino DeviceData
    Taxa de Transferência (RU/s) 1000
    Limpar coleções Desmarque essa caixa
  12. Selecione Avançar: Configuração da coleção.

  13. Na página Configuração da Coleção, clique na seta para baixo ao lado do banco de dados DeviceData e insira os seguintes detalhes:

    Propriedade Valor
    Nome Temperaturas
    Coleção de destino Temperaturas
    Taxa de Transferência (RU/s) 1000
    Chave de Extensão deviceID
    Único Deixar em branco
  14. Selecione Avançar: Resumo da migração.

  15. Na página Resumo de Migração , no campo Nome da atividade , insira mongodb-migration e selecione Iniciar migração.

  16. Na página do mongodb-migration, selecione Atualizar a cada 30 segundos até que a migração seja concluída. Observe o número de documentos processados.

Verifique se a migração foi bem-sucedida

  1. No menu do portal do Azure, selecione Todos os Recursos.

  2. Na página Todos os recursos , selecione mongodbnnn.

  3. Na página mongodb*nnn , selecione Data Explorer.

  4. No painel do Data Explorer , expanda o banco de dados DeviceData , expanda a coleção Temperatures e selecione Documentos.

  5. No painel Documentos , role pela lista de documentos. Você deve ver uma ID de documento (_id) e a chave de fragmento (/deviceID) para cada documento.

  6. Selecione qualquer documento. Você deve ver os detalhes do documento exibido. Um documento típico tem esta aparência:

    {
        "_id" : ObjectId("5ce8104bf56e8a04a2d0929a"),
        "deviceID" : "Device 83",
        "temperature" : 19.65268837271849,
        "time" : 636943091952553500
    }
    
  7. Na barra de ferramentas no painel Gerenciador de Documentos , selecione Novo Shell.

  8. No painel Shell 1 , no > prompt, insira o seguinte comando e pressione Enter:

    db.Temperatures.count()
    

    Este comando exibe o número de documentos na coleção Temperatures. Ele deve corresponder ao número relatado pelo Assistente de Migração.

  9. Insira o seguinte comando e pressione Enter:

    db.Temperatures.find({deviceID: "Device 99"})
    

    Esse comando busca e exibe os documentos do Dispositivo 99.

Reconfigurar e executar aplicativos existentes para usar o Cosmos DB

A etapa final é reconfigurar seus aplicativos existentes do MongoDB para se conectar ao Cosmos DB e verificar se eles ainda funcionam. Isso exige que você modifique a maneira como seus aplicativos se conectam ao banco de dados, mas a lógica de seus aplicativos deve permanecer inalterada.

  1. No painel mongodbnnn , em Configurações, selecione Cadeia de Conexão.

  2. Na página Cadeia de conexão do mongodbnnn, anote as seguintes configurações:

    • Anfitrião
    • Nome de usuário
    • Senha primária
  3. Retorne à janela do Cloud Shell (reconecte se a sessão tiver o tempo limite expirado) e mova-se para a pasta migration-workshop-apps/MongoDeviceDataCapture/DeviceDataQuery:

    cd ~/migration-workshop-apps/MongoDeviceDataCapture/DeviceDataQuery
    
  4. Abra o arquivo App.config no editor de código:

    code App.config
    
  5. Na seção Configurações para MongoDB do arquivo, comente as configurações existentes.

  6. Remova a marca de comentário das configurações na seção Configurações para API Mongo do Cosmos DB e defina os valores para essas configurações da seguinte maneira:

    Configurações Valor
    Endereço O HOST da página Cadeia de conexão do mongodbnnn
    Porto A PORTA da página Cadeia de conexão do mongodbnnn
    Nome de usuário O NOME DE USUÁRIO da página Cadeia de conexão do mongodbnnn
    Senha A SENHA PRINCIPAL da página Cadeia de Conexão do mongodbnnn

    O arquivo concluído deve ser semelhante a este:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <appSettings>
            <add key="Database" value="DeviceData" />
            <add key="Collection" value="Temperatures" />
    
            <!-- Settings for MongoDB 
            <add key="Address" value="nn.nn.nn.nn" />
            <add key="Port" value="27017" />
            <add key="Username" value="deviceadmin" />
            <add key="Password" value="Pa55w.rd" />
            End of settings for MongoDB -->
    
            <!-- Settings for CosmosDB Mongo API -->
            <add key="Address" value="mongodbnnn.documents.azure.com"/>
            <add key="Port" value="10255"/>
            <add key="Username" value="mongodbnnn"/>
            <add key="Password" value="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=="/>
            <!-- End of settings for CosmosDB Mongo API -->
        </appSettings>
    </configuration>
    
  7. Salve o arquivo e feche o editor de código.

  8. Abra o arquivo Program.cs usando o editor de código:

    code Program.cs
    
  9. Role para baixo até o método ConnectToDatabase .

  10. Comente a linha que define as credenciais para se conectar ao MongoDB e descomente as instruções que especificam as credenciais para se conectar ao Cosmos DB. Seu código deve ficar assim:

    // Connect to the MongoDB database
    MongoClient client = new MongoClient(new MongoClientSettings
    {
        Server = new MongoServerAddress(address, port),
        ServerSelectionTimeout = TimeSpan.FromSeconds(10),
    
        //
        // Credential settings for MongoDB
        //
    
        // Credential = MongoCredential.CreateCredential(database, azureLogin.UserName, azureLogin.SecurePassword),
    
        //
        // Credential settings for CosmosDB Mongo API
        //
    
        UseTls = true,
        Credential = new MongoCredential("SCRAM-SHA-1", new MongoInternalIdentity(database, azureLogin.UserName), new PasswordEvidence(azureLogin.SecurePassword))
    
        // End of Mongo API settings
    });
    

    Essas alterações são necessárias porque o banco de dados original do MongoDB não estava usando uma conexão SSL. O Cosmos DB sempre usa SSL.

  11. Salve o arquivo e feche o editor de código.

  12. Recompile e execute o aplicativo:

    dotnet build
    dotnet run
    
  13. No prompt Inserir Número do Dispositivo , insira um número de dispositivo entre 0 e 99. O aplicativo deve ser executado exatamente como antes, exceto que desta vez ele está usando os dados mantidos no banco de dados do Cosmos DB.

Melhorar o desempenho da consulta no Cosmos DB

O Cosmos DB permite adicionar mais índices para melhorar o desempenho da consulta. Como estamos agregando sobre deviceID, adicionar esse campo como um índice acelerará suas consultas.

  1. Alterne novamente para o portal do Azure.

  2. À esquerda, selecione Data Explorer.

  3. No painel do Data Explorer , expanda o banco de dados DeviceData , expanda a coleção Temperaturas e selecione Configurações.

    Captura de tela mostrando a adição de uma política de indexação do Cosmos DB.

  4. Selecione a política de indexação.

  5. Em _id adicionar um novo índice, insira deviceID para a Definição e selecione Campo Único para o Tipo.

  6. Selecione Salvar para adicionar o novo índice.

  7. Retorne ao Cloud Shell para experimentar sua consulta novamente e observe a resposta aprimorada em seu aplicativo.

  8. Teste o aplicativo com outros números de dispositivo. Insira Q para concluir.

Você migrou com êxito um banco de dados do MongoDB para o Cosmos DB e reconfigurou um aplicativo MongoDB existente para se conectar ao novo banco de dados do Cosmos DB.

Limpe os recursos que você criou

Importante

Se você tiver executado essas etapas em sua assinatura pessoal, poderá excluir os recursos individualmente ou excluir o grupo de recursos para eliminar o conjunto inteiro de recursos. Os recursos mantidos em execução podem gerar custos.

  1. No Cloud Shell, execute o seguinte comando para excluir o grupo de recursos:

    az group delete --name mongodbrg