Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:
IoT Edge 1.1
Importante
O IoT Edge 1.1 data de término do suporte foi 13 de dezembro de 2022. Confira o Ciclo de Vida do Produto da Microsoft para obter informações sobre o suporte deste produto, serviço, tecnologia ou API. Para obter mais informações sobre como atualizar para a versão mais recente do IoT Edge, consulte Update IoT Edge.
Use o Visual Studio para desenvolver e implantar código em dispositivos Windows que executam o IoT Edge.
Observação
O IoT Edge 1.1 LTS é o último canal de lançamento que dá suporte a contêineres do Windows. A partir da versão 1.2, não há suporte para contêineres do Windows. Considere usar ou mover para o IoT Edge para Linux no Windows, a fim de executá-lo em dispositivos Windows.
Este tutorial explica o que é necessário para desenvolver e implantar seu próprio código em um dispositivo IoT Edge. Este tutorial é um pré-requisito útil para os outros tutoriais, que entram em mais detalhes sobre linguagens de programação específicas ou serviços do Azure.
Este tutorial usa o exemplo de implantação de um módulo C# em um dispositivo Windows. Este exemplo foi escolhido porque é o cenário de desenvolvimento mais comum. Se você estiver interessado em desenvolver em um idioma diferente ou planejar a implantação de serviços do Azure como módulos, este tutorial ainda será útil para saber mais sobre as ferramentas de desenvolvimento. Depois de entender os conceitos de desenvolvimento, você poderá escolher seu idioma preferido ou serviço do Azure para se aprofundar nos detalhes.
Neste tutorial, você aprenderá como:
- Configurar seu computador de desenvolvimento.
- Use as ferramentas do IoT Edge para Visual Studio para criar um novo projeto.
- Criar seu projeto como um contêiner e armazená-lo em um Registro de Contêiner do Azure.
- Implantar seu código em um dispositivo IoT Edge.
Pré-requisitos
Um computador de desenvolvimento:
- Windows 10 com atualização 1809 ou mais recente.
- Você pode usar seu próprio computador ou uma máquina virtual, dependendo de suas preferências de desenvolvimento.
- Verifique se sua máquina de desenvolvimento dá suporte à virtualização aninhada. Essa funcionalidade é necessária para executar um mecanismo de contêiner, que você instalará na próxima seção.
- Instale o Git.
Um dispositivo do Azure IoT Edge no Windows:
- Instalar e gerenciar o Azure IoT Edge com contêineres do Windows.
- Recomendamos que você não execute o IoT Edge em seu computador de desenvolvimento, mas use um dispositivo separado, se possível. Essa distinção entre o computador de desenvolvimento e o dispositivo IoT Edge espelha com mais precisão um verdadeiro cenário de implantação e ajuda a manter os diferentes conceitos em linha reta.
Recursos de nuvem:
- Um hub IoT gratuito ou de camada padrão no Azure.
Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.
Conceitos principais
Este tutorial explica o desenvolvimento de um módulo do IoT Edge. Um módulo do IoT Edgeou, às vezes, apenas módulo, é um contêiner que contém código executável. É possível implantar um ou mais módulos em um dispositivo IoT Edge. Os módulos executam tarefas específicas, como ingestão de dados de sensores, execução de análise de dados ou operações de limpeza de dados ou envio de mensagens para um hub IoT. Para saber mais, confira Understand Azure IoT Edge modules (Noções básicas sobre módulos do Azure IoT Edge).
Ao desenvolver módulos do IoT Edge, é importante entender a diferença entre o computador de desenvolvimento e o dispositivo IoT Edge de destino em que o módulo será eventualmente implantado. O contêiner que você criar para armazenar seu código de módulo deverá corresponder ao SO (sistema operacional) do dispositivo de destino. Para o desenvolvimento de contêineres do Windows, esse conceito é mais simples porque os contêineres do Windows são executados apenas em sistemas operacionais Windows. Mas você pode, por exemplo, usar seu computador de desenvolvimento do Windows para criar módulos para dispositivos Linux IoT Edge. Nesse cenário, você teria que verificar se o computador de desenvolvimento estava executando contêineres do Linux. Ao seguir este tutorial, tenha em mente a diferença entre o sistema operacional da máquina de desenvolvimento e o sistema operacional do contêiner .
Este tutorial tem como destino dispositivos Windows que executam o IoT Edge. Os dispositivos Windows IoT Edge usam contêineres do Windows. É recomendável usar o Visual Studio para desenvolver para dispositivos Windows, portanto, é isso que este tutorial usará. Você também pode usar o Visual Studio Code, embora haja diferenças no suporte entre as duas ferramentas.
A tabela a seguir lista os cenários de desenvolvimento com suporte para contêineres do Windows no Visual Studio Code e no Visual Studio.
| Visual Studio Code | Visual Studio 2017/2019 | |
|---|---|---|
| serviços do Azure | Azure Funções Análise de Fluxo do Azure |
|
| Idiomas | C# (sem suporte para depuração) | C C# |
| Mais informações |
Azure IoT Edge para Visual Studio Code Hub IoT do Azure |
ferramentas do Azure IoT Edge para Visual Studio 2017 Ferramentas do Azure IoT Edge para Visual Studio 2019 |
Instalar o mecanismo de contêiner
Os módulos do IoT Edge são empacotados como contêineres, portanto, você precisa de um mecanismo de contêiner em seu computador de desenvolvimento para criar e gerenciar os contêineres. É recomendável usar o Docker Desktop para desenvolvimento devido a seus muitos recursos e popularidade como um mecanismo de contêiner. Com o Docker Desktop em um computador Windows, você pode alternar entre contêineres do Linux e contêineres do Windows para que você possa desenvolver facilmente módulos para diferentes tipos de dispositivos IoT Edge.
Use a documentação do Docker para instalar em seu computador de desenvolvimento:
instalar o Docker Desktop para Windows
- Quando instala o Docker Desktop para Windows, você é solicitado se deseja usar os contêineres do Linux ou do Windows. Para este tutorial, use contêineres do Windows. Para saber mais, confira Switch between Windows and Linux containers (Alternar entre contêineres do Windows e do Linux).
Configurar o Visual Studio e as ferramentas
As extensões de IoT para Visual Studio ajudam você a desenvolver módulos do IoT Edge. Essas extensões fornecem modelos de projeto, automatizam a criação do manifesto de implantação e permitem que você monitore e gerencie dispositivos do IoT Edge. Nesta seção, você instalará o Visual Studio e a extensão do IoT Edge e, em seguida, configurará sua conta do Azure para gerenciar recursos do Hub IoT de dentro do Visual Studio.
Este tutorial ensina as etapas de desenvolvimento do Visual Studio 2019. Se você estiver usando o Visual Studio 2017 (versão 15.7 ou superior), as etapas serão semelhantes. Se você preferir usar o Visual Studio Code, consulte as instruções em Use o Visual Studio Code para desenvolver e depurar módulos para o Azure IoT Edge.
Prepare o Visual Studio 2019 em seu computador de desenvolvimento.
Se você ainda não tiver o Visual Studio em seu computador de desenvolvimento, instalar o Visual Studio 2019 com as seguintes cargas de trabalho:
- Desenvolvimento do Azure
- Desenvolvimento de aplicativos para desktop com C++
- Desenvolvimento em várias plataformas do .NET Core
Se você já tiver o Visual Studio 2019 em seu computador de desenvolvimento, siga as etapas em Modificar o Visual Studio para adicionar as cargas de trabalho necessárias.
Baixe e instale a extensão Ferramentas do Azure IoT Edge para Visual Studio 2019.
Se você estiver usando o Visual Studio 2017 (versão 15.7 ou mais recente), baixe e instale as ferramentas do Azure IoT Edge para Visual Studio 2017.
Quando suas instalações forem concluídas, abra o Visual Studio 2019 e selecione Continuar sem código.
Selecione Exibição>Cloud Explorer.
Selecione o ícone de perfil no gerenciador de nuvem e entre em sua conta do Azure se você ainda não estiver conectado.
Depois de entrar, suas assinaturas do Azure serão listadas. Expanda a assinatura associada ao seu hub IoT.
Na sua assinatura, expanda Hubs IoT e, em seguida, o seu Hub IoT. Você deve ver uma lista de seus dispositivos IoT e pode usar esse explorer para gerenciá-los.
Criar um registro de contêiner
Neste tutorial, você cria um módulo e cria uma imagem de contêiner dos arquivos. Em seguida, você efetua push dessa imagem para um registro que armazena e gerencia suas imagens. Finalmente, você implanta a sua imagem do registro para ser executada no dispositivo IoT Edge.
Você pode usar qualquer registro compatível com o Docker para manter as imagens de contêiner. Dois serviços de registro populares do Docker são o Registro de Contêiner do Azure e o Hub do Docker. Este tutorial utiliza o Registro de Contêiner do Azure.
Caso ainda não tenha um registro de contêiner, siga estas etapas para criar um novo no Azure:
No portal do Azure, selecione Criar um recurso>Contêineres>Registro de Contêiner.
Forneça os seguintes valores para criar o registro de contêiner:
Campo Valor Subscrição Selecione uma assinatura na lista suspensa. Grupo de recursos Recomendamos que você use o mesmo grupo de recursos para todos os recursos de teste criados durante os guias de início rápido e tutoriais do IoT Edge. Por exemplo, IoTEdgeResources. Nome do registro Forneça um nome exclusivo. Localização Escolha um local perto de você. Código de Referência de Estoque (SKU) Selecione Basic. Selecione Criar.
Selecione o registro de contêiner recém-criado na seção Recursos da home page do portal do Azure para abri-lo.
No painel esquerdo do registro de contêiner, selecione Chaves de acesso no menu localizado em Configurações.
Habilite Usuário administrador com o botão de alternância e exiba o Nome de usuário e a Senha do seu registro de contêiner.
Copie os valores para Servidor de logon, Nome de usuário e Senha e salve-os em um local conveniente. É possível usar esses valores neste tutorial para fornecer acesso ao registro de contêiner.
Crie um novo projeto de módulo
A extensão ferramentas do Azure IoT Edge fornece modelos de projeto para todas as linguagens de módulo do IoT Edge com suporte no Visual Studio. Todos esses modelos têm os arquivos e o código nos quais você precisa implantar um módulo de trabalho para testar o IoT Edge ou oferecem a você um ponto de partida para personalizar o modelo com sua própria lógica de negócios.
Selecione Arquivo>Novo Projeto>...
Na nova janela do projeto, pesquise do IoT Edge e escolha o projeto do Azure IoT Edge (Windows amd64). Clique em Próximo.
Na janela configurar seu novo projeto, renomeie o projeto e a solução para algo descritivo como CSharpTutorialApp. Clique em Criar para criar o projeto.
Na janela Adicionar Módulo, configure seu projeto com os seguintes valores:
Campo Valor Modelo do Visual Studio Selecione módulo C#. Nome do Módulo Aceite o padrão IotEdgeModule1. URL do repositório Um repositório de imagens inclui o nome do registro de contêiner e o nome da imagem de contêiner. Sua imagem de contêiner é preenchida automaticamente a partir do nome do projeto do módulo. Substitua localhost:5000 pelo valor do Servidor de logon do seu Registro de Contêiner do Azure. Você pode recuperar o valor do servidor de logon na página Visão geral do registro de contêiner no portal do Azure.
O repositório de imagem final é semelhante a <nome do registro>.azurecr.io/iotedgemodule1.
Selecione Adicionar para criar o módulo.
Depois que o novo projeto for carregado na janela do Visual Studio, reserve um momento para se familiarizar com os arquivos que ele criou:
- Um projeto do IoT Edge chamado CSharpTutorialApp.
- A pasta Módulos contém ponteiros para os módulos incluídos no projeto. Nesse caso, deve ser apenas IotEdgeModule1.
- O arquivo .env oculto contém as credenciais para o registro de contêiner. Essas credenciais são compartilhadas com seu dispositivo IoT Edge para que ele tenha acesso para baixar as imagens de contêineres.
- O arquivo deployment.template.json é um modelo para ajudá-lo a criar um manifesto de implantação. Um manifesto de implantação é um arquivo que define exatamente quais módulos você deseja implantar em um dispositivo, como eles devem ser configurados e como eles podem se comunicar entre si e com a nuvem.
Dica
Na seção credenciais do Registro, o endereço é preenchido automaticamente a partir das informações fornecidas quando você criou a solução. No entanto, as variáveis que fazem referência ao nome de usuário e senha estão armazenadas no arquivo .env. Isso é para segurança, pois o arquivo .env é ignorado no Git, mas o modelo de implantação não é.
- Um projeto de módulo do IoT Edge chamado IotEdgeModule1.
- O arquivo program.cs contém o código do módulo C# padrão que vem com o modelo de projeto. O módulo padrão recebe dados de uma fonte e os envia para o Hub de IoT.
- O arquivo module.json contém detalhes sobre o módulo, incluindo o repositório de imagem completo, a versão da imagem e qual Dockerfile usar para cada plataforma com suporte.
Definir versão de runtime do IoT Edge
A extensão do IoT Edge usa como padrão a versão estável mais recente do runtime do IoT Edge quando cria seus ativos de implantação.
Os contêineres do Windows só têm suporte na versão de suporte de longo prazo 1.1 ou na versão anterior do 1.0. Para desenvolver módulos para dispositivos usando contêineres do Windows, atualize a versão de runtime do IoT Edge no Visual Studio para corresponder à versão do IoT Edge nesses dispositivos.
No Gerenciador de Soluções, clique com o botão direito do mouse no nome do projeto e selecione Definir versão de runtime do IoT Edge.
Use o menu suspenso para escolher a versão de runtime que os dispositivos IoT Edge estão executando e, em seguida, selecione OK para salvar as alterações.
Gere novamente o manifesto de implantação com a nova versão de runtime. Clique com o botão direito no nome do projeto e selecione Gerar implantação do IoT Edge.
Forneça suas credenciais de Registro para o agente do IoT Edge
O runtime do IoT Edge precisa das credenciais do registro de contêineres para baixar as imagens de contêiner para o dispositivo IoT Edge. A extensão do IoT Edge tenta obter as informações do registro de contêiner a partir do Azure e preenchê-la no modelo de implantação.
Abra o arquivo deployment.template.json na solução do módulo.
Encontre a propriedade registryCredentials nas propriedades desejadas do $edgeAgent. Ele deve ter o endereço de registro preenchido automaticamente a partir das informações fornecidas ao criar o projeto, e então os campos de nome de usuário e senha devem conter os nomes das variáveis. Por exemplo:
"registryCredentials": { "<registry name>": { "username": "$CONTAINER_REGISTRY_USERNAME_<registry name>", "password": "$CONTAINER_REGISTRY_PASSWORD_<registry name>", "address": "<registry name>.azurecr.io" } }Abra o arquivo .env em sua solução de módulo. (Ele está oculto por padrão no Gerenciador de Soluções, portanto, talvez seja necessário selecionar o botão Mostrar Todos os Arquivos para exibi-lo.)
Adicione os valores de nome de usuário e senha que você copiou do registro de contêiner do Azure.
Salve suas alterações no arquivo .env.
Observação
Este tutorial usa as credenciais de logon do administrador do Registro de Contêiner do Azure, que são convenientes para cenários de desenvolvimento e teste. Se você está pronto para cenários de produção, recomendamos uma opção de autenticação com o menor privilégio, como principais de serviço. Para obter mais informações, confira Gerenciar o acesso ao registro de contêiner.
Examinar o código de exemplo
O modelo de solução que você criou inclui código de exemplo para um módulo do IoT Edge. Este módulo de exemplo simplesmente recebe mensagens e as transmite. A funcionalidade de pipeline demonstra um conceito importante no IoT Edge, que é como os módulos comunicam-se uns com os outros.
Cada módulo pode ter várias filas de entrada e de saída declaradas em seu código. O hub do IoT Edge em execução no dispositivo roteia mensagens da saída de um módulo para a entrada de um ou mais módulos. O código específico para declarar entradas e saídas varia entre as linguagens, mas o conceito é o mesmo em todos os módulos. Para saber mais sobre o roteamento entre módulos, confira Declarar rotas.
O código de exemplo C# que vem com o modelo de projeto usa a classe ModuleClient do SDK do Hub IoT para .NET.
No arquivo program.cs, localize o método SetInputMessageHandlerAsync.
O método SetInputMessageHandlerAsync configura uma fila de entrada para receber mensagens de entrada. Examine esse método e veja como ele inicializa uma fila de entrada chamada input1.
Em seguida, localize o método SendEventAsync.
O método SendEventAsync processa mensagens recebidas e configura uma fila de saída para transferi-las. Examine esse método e veja se ele inicializa uma fila de saída chamada output1.
Abra o arquivo deployment.template.json.
Localize a propriedade dos módulos nas propriedades desejadas do $edgeAgent.
Deve haver dois módulos listados aqui. Um deles é o módulo SimulatedTemperatureSensor, que está incluído em todos os modelos por padrão para fornecer dados de temperatura simulados que você pode usar para testar seus módulos. O outro é o módulo IotEdgeModule1 que você criou como parte deste projeto.
Essa propriedade de módulos declara quais módulos devem ser incluídos na implantação para seu dispositivo ou dispositivos.
Encontre as rotas na propriedade de propriedades desejadas do $edgeHub.
Uma das funções do módulo do hub do IoT Edge é rotear mensagens entre todos os módulos em uma implantação. Verifique os valores na propriedade de rotas. Uma rota, IotEdgeModule1ToIoTHub, usa um caractere curinga (*) para incluir qualquer mensagem proveniente de qualquer fila de saída do módulo IotEdgeModule1. Essas mensagens entram em $upstream, que é um nome reservado que indica o Hub IoT. A outra rota, sensorToIotEdgeModule1, recebe mensagens provenientes do módulo SimulatedTemperatureSensor e as encaminha para a fila de entrada input1 do módulo IotEdgeModule1.
Compilar e enviar por push sua solução
Você analisou o código do módulo e o modelo de implantação para entender alguns dos principais conceitos de implantação. Agora, você já está pronto para criar a imagem de contêiner IotEdgeModule1 e enviá-la para o registro de contêineres. Com a extensão de ferramentas de IoT para Visual Studio, essa etapa também gera o manifesto de implantação com base nas informações no arquivo de modelo e nas informações do módulo dos arquivos da solução.
Entrar no Docker
Forneça suas credenciais de registro de contêiner ao Docker em seu computador de desenvolvimento para que ele possa enviar por push sua imagem de contêiner para ser armazenada no registro.
Abra o PowerShell ou um prompt de comando.
Entre no Docker com as credenciais do Registro de Contêiner do Azure que você salvou após a criação do registro.
docker login -u <ACR username> -p <ACR password> <ACR login server>Talvez você receba um aviso de segurança recomendando usar
--password-stdin. Embora essa prática seja recomendada para cenários de produção, ela não serve para este tutorial. Para saber mais, confira a referência de logon do docker.
Compilar e enviar por push
Seu computador de desenvolvimento agora tem acesso ao registro de contêiner, e seus dispositivos do IoT Edge também terão. É hora de transformar o código do projeto em uma imagem de contêiner.
Clique com o botão direito do mouse na pasta de projeto CSharpTutorialApp e selecione Compilar e Enviar Módulos do IoT Edge.
O comando de compilação e push inicia três operações. Primeiro, é criada uma pasta na solução denominada config que contém o manifesto de implantação completo, criado com base nas informações do modelo de implantação e em outros arquivos da solução. Depois, ele executa
docker buildpara montar a imagem de contêiner com base no dockerfile apropriado para sua arquitetura de destino. Por fim, ele executadocker pushpara publicar o repositório de imagens no seu registro de contêineres.Esse processo pode levar vários minutos na primeira vez, mas será mais rápido na próxima vez em que você executar os comandos.
Abra o arquivo deployment.windows-amd64.json na pasta de configuração recém-criada. (A pasta de configuração pode não aparecer no Gerenciador de Soluções no Visual Studio. Se esse for o caso, selecione o ícone Mostrar todos os arquivos na barra de tarefas do Gerenciador de Soluções.)
Encontre o parâmetro da imagem na seção IotEdgeModule1. Observe que a imagem contém o repositório de imagem completo com o nome, a versão e a marca de arquitetura do arquivo module.json.
Abra o arquivo module.json na pasta IotEdgeModule1.
Altere o número de versão da imagem de módulo. (A versão, não a versão do $schema.) Por exemplo, incremente o número de versão do patch para 0.0.2 como se tivéssemos feito uma pequena correção no código do módulo.
Dica
As versões de módulo permitem o controle de versão e que você teste alterações em um pequeno conjunto de dispositivos antes de implantar atualizações em produção. Se você não incrementar a versão do módulo antes de construir e efetuar o push, então você substituirá o repositório no seu registro de contêineres.
Salve suas alterações no arquivo module.json.
Clique com o botão direito do mouse na pasta de projeto CSharpTutorialApp novamente e selecione Compilar e Enviar os módulos do IoT Edge novamente.
Abra o arquivo deployment.windows-amd64.json novamente. Observe que um novo arquivo não foi criado quando você executou o comando build e push novamente. Em vez disso, o mesmo arquivo foi atualizado para refletir as alterações. A imagem IotEdgeModule1 agora aponta para a versão 0.0.2 do contêiner. Essa alteração no manifesto de implantação é como você comunica ao dispositivo IoT Edge que há uma nova versão de um módulo a ser baixada.
Para verificar ainda mais o que o comando de criação e de envio por push fez, acesse o portal do Azure e navegue até o registro de contêiner.
No registro de contêiner, selecione Repositóriosiotedgemodule1. Verifique se ambas as versões da imagem foram enviadas para o repositório.
Solucionar problemas
Se encontrar erros ao criar e fazer o push da sua imagem de módulo, isso geralmente está relacionado à configuração do Docker em seu computador de desenvolvimento. Use as seguintes verificações para examinar sua configuração:
- Você executou o comando
docker loginusando as credenciais que copiou do seu registro de contêiner? Essas credenciais são diferentes daquelas que você usa para entrar no Azure. - Seu repositório de contêiner está correto? Ele contém o nome correto do registro de contêiner e o nome correto do módulo? Abra o arquivo module.json na pasta IotEdgeModule1 para verificar. O valor do repositório deve se assemelhar a <nome do registro>.azurecr.io/iotedgemodule1.
- Se você usou um nome diferente de IotEdgeModule1 para seu módulo, esse nome será consistente em toda a solução?
- Seu computador está executando o mesmo tipo de contêineres que você está criando? Este tutorial é para dispositivos Windows IoT Edge, portanto, seus arquivos do Visual Studio devem ter a extensão windows-amd64 e o Docker Desktop deve estar executando contêineres do Windows.
Implantar módulos no dispositivo
Você verificou que as imagens de contêiner criadas são armazenadas no registro de contêiner, portanto, é hora de implantá-las em um dispositivo. Verifique se seu dispositivo IoT Edge está em funcionamento.
Abra o Cloud Explorer no Visual Studio e expanda os detalhes do hub IoT.
Selecione o nome do dispositivo no qual você deseja implantar. Na lista de Ações , selecione Criar Implantação.
No explorador de arquivos, navegue até a pasta de configuração do projeto e selecione o arquivo deployment.windows-amd64.json. Esse arquivo geralmente está localizado em
C:\Users\<username>\source\repos\CSharpTutorialApp\CSharpTutorialApp\config\deployment.windows-amd64.jsonNão use o arquivo deployment.template.json, que não tem os valores completos de imagem do módulo nele.
Expanda os detalhes do dispositivo IoT Edge no Cloud Explorer para ver os módulos em seu dispositivo.
Use o botão Atualizar para atualizar o status do dispositivo e verificar se os módulos SimulatedTemperatureSensor e IotEdgeModule1 estão implantados em seu dispositivo.
Exibir mensagens do dispositivo
O código IotEdgeModule1 recebe mensagens por meio de sua fila de entrada e as passa pela fila de saída. O manifesto de implantação declarou rotas que passaram mensagens do SimulatedTemperatureSensor para o IotEdgeModule1 e encaminharam mensagens do IotEdgeModule1 para o Hub IoT. As ferramentas do Azure IoT Edge para Visual Studio permitem que você veja mensagens quando elas chegam ao Hub IoT de seus dispositivos individuais.
No Visual Studio Cloud Explorer, selecione o nome do dispositivo IoT Edge no qual você implantou.
No menu Ações do, selecione Iniciar o Monitoramento do Endpoint de Evento Integrado.
Monitore a seção de Saída no Visual Studio para ver as mensagens que chegam ao Hub de IoT.
Pode levar alguns minutos para que ambos os módulos sejam iniciados. O ambiente de execução do IoT Edge precisa receber seu novo manifesto de implantação, baixar as imagens dos módulos do runtime do contêiner e, em seguida, iniciar cada novo módulo.
Exibir alterações no dispositivo
Se desejar ver o que está acontecendo no seu próprio dispositivo, use os comandos nesta seção para inspecionar o runtime do IoT Edge e os módulos em execução em seu dispositivo.
Os comandos nesta seção são para seu dispositivo IoT Edge, não para seu computador de desenvolvimento. Se estiver usando uma máquina virtual para seu dispositivo IoT Edge, conecte-se a ela agora. No Azure, vá para a página de visão geral da máquina virtual e selecione Conectar para acessar a conexão de área de trabalho remota. No dispositivo, abra um comando ou uma janela do PowerShell para executar os comandos iotedge.
Exiba todos os módulos implantados em seu dispositivo e verifique seu status:
iotedge listVocê deverá ver quatro módulos: os dois módulos de runtime do IoT Edge, SimulatedTemperatureSensor e IotEdgeModule1. Todos os quatro devem ser listados como em execução.
Inspecione os logs de um módulo específico:
iotedge logs <module name>Os módulos do IoT Edge diferenciam maiúsculas de minúsculas.
Os logs SimulatedTemperatureSensor e IotEdgeModule1 devem mostrar as mensagens que estão processando. O módulo edgeAgent é responsável por iniciar os outros módulos, portanto, seus logs terão informações sobre como implementar o manifesto de implantação. Se qualquer módulo não estiver listado ou não estiver em execução, os logs do edgeAgent provavelmente terão os erros. O módulo edgeHub é responsável pelas comunicações entre os módulos e o Hub IoT. Se os módulos estiverem em execução, mas as mensagens não chegarem ao hub IoT, os logs do edgeHub provavelmente registrarão os erros.
Limpar os recursos
Se você pretende continuar no próximo artigo recomendado, pode manter os recursos e as configurações já criados e reutilizá-los. Você também pode continuar usando o mesmo dispositivo IoT Edge como um dispositivo de teste.
Caso contrário, é possível excluir as configurações locais e os recursos do Azure usados neste artigo para evitar encargos.
Excluir recursos do Azure
A exclusão de recursos do Azure e dos grupos de recursos é irreversível. Certifique-se de não excluir acidentalmente o grupo de recursos ou os recursos errados. Se você criou o hub IoT em um grupo de recursos existente que contém recursos que deseja manter, exclua apenas o recurso do hub IoT, não o grupo de recursos.
Para excluir os recursos:
Entre no portal do Azure e selecione Grupos de recursos.
Selecione o nome do grupo de recursos que contém os recursos de teste do IoT Edge.
Examine a lista de recursos contidos em seu grupo de recursos. Se você deseja excluir todos eles, selecione Excluir grupo de recursos. Se você quiser excluir apenas alguns deles, clique em cada recurso para excluí-los individualmente.
Próximas etapas
Neste tutorial, você configurou o Visual Studio 2019 em seu computador de desenvolvimento e implantou seu primeiro módulo do IoT Edge a partir dele. Agora que você conhece os conceitos básicos, tente adicionar funcionalidade a um módulo para que ele possa analisar os dados que passam por ele. Escolha seu idioma preferido: