Compartilhar via


Implante o acelerador de solução de Monitoramento Remoto localmente - Docker

Este artigo mostra como implantar o acelerador de solução de Monitoramento Remoto no computador local para teste e desenvolvimento. Você aprenderá como implantar os microsserviços nos contêineres locais do Docker. Uma implantação de microsserviços local usa os seguintes serviços de nuvem: Hub IoT, Cosmos DB, Azure Streaming Analytics e Azure Time Series Insights.

Se você quiser executar o acelerador de solução de Monitoramento Remoto em um IDE em seu computador local, consulte Implantar o acelerador de solução de Monitoramento Remoto localmente – Visual Studio.

Pré-requisitos

Para implantar os serviços do Azure usados pelo acelerador de solução de Monitoramento Remoto, você precisará de uma assinatura ativa do Azure.

Se você não tiver uma conta, poderá criar uma conta de avaliação gratuita em apenas alguns minutos. Para obter detalhes, consulte Avaliação gratuita do Azure.

Configuração do computador

Para concluir a implantação local, você precisa ter as seguintes ferramentas instaladas no computador de desenvolvimento local:

  • Git
  • Docker
  • Visual Studio – se você pretende fazer alterações nos microsserviços.
  • Node.js v8 – este software é um pré-requisito para a CLI do PCS que os scripts usam para criar recursos do Azure. Não use o Node.js v10.

Observação

Essas ferramentas estão disponíveis em muitas plataformas, inclusive Windows, Linux e iOS.

Fazer o download do código-fonte

Os repositórios de código-fonte de Monitoramento Remoto incluem o código-fonte e os arquivos de configuração do Docker necessários para executar as imagens do Docker dos microsserviços.

Para clonar e criar uma versão local do repositório, use o ambiente da linha de comando para navegar até uma pasta adequada no computador local. Em seguida, execute um dos seguintes conjuntos de comandos para clonar o repositório do .NET:

Para baixar a versão mais recente das implementações do microsserviço .NET, execute:

git clone --recurse-submodules https://github.com/Azure/azure-iot-pcs-remote-monitoring-dotnet.git

# To retrieve the latest submodules, run the following command:

cd azure-iot-pcs-remote-monitoring-dotnet
git submodule foreach git pull origin master

Observação

Esses comandos baixam o código-fonte para todos os microsserviços, bem como os scripts usados para executar os microsserviços localmente. Embora o código-fonte não seja necessário para executar os microsserviços no Docker, ele é útil se você planeja modificar o acelerador de solução e testar suas alterações localmente no futuro.

Implantar os serviços do Azure

Embora este artigo mostre como executar os microsserviços localmente, eles dependem de serviços do Azure em execução na nuvem. Use o seguinte script a seguir para implantar os serviços do Azure. Os exemplos de script a seguir pressupõem que você estará usando o repositório .NET em um computador Windows. Se estiver trabalhando em outro ambiente, ajuste os caminhos, extensões de arquivo e separadores de caminho adequadamente.

Criar novos recursos do Azure

Se você ainda não criou os recursos do Azure necessários, siga estas etapas:

  1. No ambiente da linha de comando, navegue até a pasta \services\scripts\local\launch em sua cópia clonada do repositório.

  2. Execute os seguintes comandos para instalar as ferramentas da CLI pcs e entrar em sua conta do Azure:

    npm install -g iot-solutions
    pcs login
    
  3. Execute o script start.cmd. O script solicitará as seguintes informações:

    • Um nome de solução.

    • A assinatura do Azure a utilizar.

    • O local do datacenter do Azure para usar.

      O script cria um grupo de recursos no Azure com o nome da solução. Esse grupo de recursos contém os recursos do Azure usados pelo acelerador de solução. Depois que você não precisar mais dos recursos correspondentes, você pode excluir esse grupo de recursos.

      O script também adiciona um conjunto de variáveis de ambiente com um prefixo PCS em seu computador local. Essas variáveis de ambiente fornecem os detalhes para que o Monitoramento Remoto possa ser lido de um recurso de Key Vault do Azure. Esse recurso Key Vault é de onde o Monitoramento Remoto lerá seus valores de configuração.

      Dica

      Quando o script for concluído, ele também salvará as variáveis de ambiente em um arquivo chamado <pasta> inicial\.pcs\<solution name.env>. Você pode usá-las para implantações futuras de acelerador de solução. Observe que todas as variáveis de ambiente definidas em seu computador local substituem valores no arquivo services\scripts\local\.env ao executar docker-compose.

  4. Saia do ambiente de linha de comando.

Usar recursos existentes do Azure

Se você já tiver criado os recursos necessários do Azure, crie as variáveis de ambiente correspondentes no seu computador local. Defina as variáveis de ambiente para o seguinte:

  • PCS_KEYVAULT_NAME – Nome do recurso de Key Vault do Azure
  • PCS_AAD_APPID – A ID do aplicativo AAD
  • PCS_AAD_APPSECRET – O segredo do aplicativo AAD

Os valores de configuração serão lidos deste recurso de Key Vault do Azure. Essas variáveis de ambiente podem ser salvas no <arquivo home folder>\.pcs\<solution name.env> da implantação. Observe que as variáveis de ambiente definidas no computador local substituem valores no arquivo services\scripts\local\.env quando você executa o docker-compose.

Parte da configuração necessária para o microsserviço é armazenada em uma instância de Key Vault que foi criada na implantação inicial. As variáveis correspondentes no keyvault devem ser modificadas conforme necessário.

Executar os microsserviços no Docker

Abra um novo prompt de comando para garantir que tenha acesso às variáveis de ambiente definidas pelo script start.cmd. No Windows, você pode verificar que as variáveis de ambiente são definidas executando o seguinte comando:

set PCS

O comando mostra todas as variáveis de ambiente definidas pelo script start.cmd.

Certifique-se de que o Docker está em execução no computador local.

Observação

O Docker deve executar os contêineres do Linux se está em execução no Windows.

Os microsserviços em execução nos contêineres de Docker locais precisam acessar os serviços de nuvem do Azure. Você pode testar a conectividade de internet do seu ambiente do Docker usando o seguinte comando para executar o ping de um endereço de internet de dentro de um contêiner:

docker run --rm -ti library/alpine ping google.com

Para executar o acelerador de solução, navegue até a pasta services\scripts\local em seu ambiente de linha de comando e execute o seguinte comando:

docker-compose up

Observação

Verifique se você compartilha uma unidade local com o Docker antes de executar docker-compose up.

Na primeira vez que você executar esse comando, o Docker baixa as imagens de microsserviço do hub do Docker para criar os contêineres localmente. Nas execuções seguintes, o Docker executa os contêineres imediatamente.

Dica

Frequentemente, a Microsoft publica novas imagens do Docker com novas funcionalidades. Você pode usar o conjunto de comandos a seguir para limpar os contêineres e imagens correspondentes do Docker antes de efetuar pull dos mais recentes:

docker list
docker rm <list_of_containers>
docker rmi <list_of_images>

Você pode usar um shell separado para exibir os logs do contêiner. Primeiro, encontre a ID de contêiner usando o comando docker ps. Em seguida, use docker logs {container-id} --tail 1000 para exibir as últimas 1000 entradas para o contêiner especificado.

Iniciar o trabalho do Stream Analytics

Execute estas etapas para iniciar o trabalho do Stream Analytics:

  1. Navegue até o Portal do Azure.
  2. Navegue até o Grupo de recursos criado para sua solução. O nome do grupo de recursos é o nome escolhido para sua solução quando você executou o script start.cmd .
  3. Clique no trabalho do Stream Analytics na lista de recursos.
  4. Na página visão geral do trabalho do Stream Analytics, clique no botão Iniciar. Clique em Iniciar para iniciar o trabalho.

Conectar-se ao painel

Para acessar o painel da solução de Monitoramento Remoto, navegue até https://localhost:8080 em seu navegador. Agora você pode usar a IU da Web e os microsserviços de locais.

Limpeza

Para evitar encargos desnecessários, quando terminar o teste, remova os serviços de nuvem de sua assinatura do Azure. Para remover os serviços, navegue até o portal do Azure e exclua o grupo de recursos que o script start.cmd criou.

Use o comando docker-compose down --rmi all para remover as imagens do Docker e liberar espaço no seu computador local. Você também pode excluir a cópia local do repositório de Monitoramento Remoto criada quando você clonou o código-fonte do GitHub.

Próximas etapas

Agora que você implantou a solução de monitoramento remoto, a próxima etapa é explorar os recursos do painel de solução.