Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:
IoT Edge 1.5
Importante
IoT Edge 1.5 LTS é a versão suportada. O IoT Edge 1.4 LTS atingiu o fim de vida útil a 12 de novembro de 2024. Se estiveres a usar uma versão anterior, vê Update IoT Edge.
Os dispositivos IoT Edge enviam pedidos HTTPS para comunicar com o Hub IoT. Se o seu dispositivo se ligar a uma rede que utiliza um servidor proxy, configure o runtime do IoT Edge para comunicar através do servidor. Os servidores proxy também podem afetar módulos IoT Edge individuais se fizerem pedidos HTTP ou HTTPS que não sejam encaminhados através do hub IoT Edge.
Este artigo explica os quatro passos para configurar e gerir um dispositivo IoT Edge atrás de um servidor proxy:
Instale o ambiente de execução IoT Edge no seu dispositivo
Os scripts de instalação do IoT Edge retiram pacotes e ficheiros da internet, por isso o dispositivo comunica através do servidor proxy para fazer esses pedidos.
Este passo é um processo único para configurar o dispositivo IoT Edge quando o configura pela primeira vez. Também precisa destas mesmas ligações quando atualiza o runtime do IoT Edge.
Configure o IoT Edge e o runtime do contentor no seu dispositivo
A IoT Edge gere as comunicações com o Hub IoT. O runtime do contentor gere contentores e comunica-se com registros de contentores. Ambos os componentes precisam fazer solicitações da Web através do servidor proxy.
Este passo é um processo único para configurar o dispositivo IoT Edge quando o configura pela primeira vez.
Configura as propriedades do agente IoT Edge no ficheiro de configuração do teu dispositivo
O daemon IoT Edge inicia inicialmente o módulo edgeAgent. Depois, o módulo edgeAgent recupera o manifesto de implementação do Hub IoT e inicia todos os outros módulos. Configure manualmente as variáveis de ambiente do módulo edgeAgent no dispositivo para que o agente IoT Edge faça a ligação inicial ao Hub IoT. Após a conexão inicial, você pode configurar o módulo edgeAgent remotamente.
Este passo é um processo único para configurar o dispositivo IoT Edge quando o configura pela primeira vez.
-
Após configurar e ligar um dispositivo IoT Edge ao Hub IoT através do servidor proxy, mantenha a ligação em todas as futuras implementações de módulos.
Esta etapa é um processo contínuo feito remotamente para que cada novo módulo ou atualização de implantação mantenha a capacidade do dispositivo de se comunicar através do servidor proxy.
Conheça o URL do seu proxy
Antes de iniciar as etapas neste artigo, conheça sua URL de proxy.
As URLs de proxy usam o seguinte formato: protocol://proxy_host:proxy_port.
O protocolo é HTTP ou HTTPS. O daemon Docker pode usar qualquer um dos protocolos dependendo das definições do registo do contentor, mas o daemon IoT Edge e os containers de runtime usam sempre HTTP para se ligar ao proxy.
O proxy_host é o endereço do servidor proxy. Se o servidor proxy exigir autenticação, forneça suas credenciais como parte do host proxy no seguinte formato: user:password@proxy_host.
O proxy_port é a porta de rede onde o proxy responde ao tráfego.
Instale o IoT Edge através de um proxy
Quer o seu dispositivo IoT Edge funcione em Windows ou Linux, aceda aos pacotes de instalação através do servidor proxy. Dependendo do seu sistema operativo, siga os passos para instalar o runtime do IoT Edge através de um servidor proxy.
Dispositivos Linux
Se estiveres a instalar o runtime IoT Edge num dispositivo Linux, configura o gestor de pacotes para usar o teu servidor proxy para aceder ao pacote de instalação. Por exemplo, configure o apt-get para usar um http-proxy. Depois de configurar o gestor de pacotes, siga as instruções em Instalar Azure IoT Edge runtime.
Dispositivos Windows que utilizam IoT Edge para Linux no Windows
Se estiver a instalar o ambiente de execução do IoT Edge usando o IoT Edge para Linux no Windows, o ambiente de execução do IoT Edge é instalado por padrão na sua máquina virtual Linux. Não é necessário instalar ou atualizar quaisquer outros passos.
Configurar IoT Edge e Moby
O IoT Edge utiliza dois daemons a correr no dispositivo IoT Edge. O daemon Moby extrai imagens de contêiner de registros de contêineres. O daemon IoT Edge comunica com o Hub IoT.
Configure tanto os daemons Moby como IoT Edge para usarem o servidor proxy para funcionalidades contínuas do dispositivo. Realize este passo no dispositivo IoT Edge durante a configuração inicial.
Moby daemon
Como o Moby é construído no Docker, consulte a documentação do Docker para configurar o daemon Moby com variáveis de ambiente. A maioria dos registos de contentores, incluindo o DockerHub e Azure Container Registries, suporta pedidos HTTPS, por isso define o parâmetro HTTPS_PROXY. Se você estiver extraindo imagens de um registro que não suporta TLS (Transport Layer Security), defina o parâmetro HTTP_PROXY .
Selecione o artigo que se aplica ao seu sistema operativo de dispositivo IoT Edge:
- Configurar o daemon do Docker no Linux Em dispositivos Linux, o daemon Moby ainda é chamado de Docker.
IoT Edge daemon
O daemon IoT Edge é semelhante ao daemon Moby. Use as etapas a seguir para definir uma variável de ambiente para o serviço, com base no seu sistema operacional.
O daemon IoT Edge usa sempre HTTPS para enviar pedidos para o Hub IoT.
Linux
No terminal, abra um editor para configurar o daemon IoT Edge.
sudo systemctl edit aziot-edged
Insira o seguinte texto, substituindo <proxy URL> pelo endereço e porta do seu servidor proxy. Em seguida, salve e saia.
[Service]
Environment="https_proxy=<proxy URL>"
A partir da versão 1.2, o IoT Edge utiliza o serviço de identidade IoT para gerir o provisionamento de dispositivos com o Hub IoT ou o Hub IoT Device Provisioning Service. Abra um editor no terminal para configurar o daemon do serviço de identidade IoT.
sudo systemctl edit aziot-identityd
Insira o seguinte texto, substituindo <proxy URL> pelo endereço e porta do seu servidor proxy. Em seguida, salve e saia.
[Service]
Environment="https_proxy=<proxy URL>"
Atualize o gerenciador de serviços para pegar as novas configurações.
sudo systemctl daemon-reload
Reinicie os serviços do sistema IoT Edge para aplicar as alterações a ambos os daemons.
sudo iotedge system restart
Verifique se as variáveis de ambiente e a nova configuração estão presentes.
systemctl show --property=Environment aziot-edged
systemctl show --property=Environment aziot-identityd
Windows usando IoT Edge para Linux no âmbito do Windows
Inicie sessão no IoT Edge para Linux na máquina virtual Windows:
Connect-EflowVm
Siga os mesmos passos da secção Linux deste artigo para configurar o daemon IoT Edge.
Configurar o agente IoT Edge
O agente IoT Edge é o primeiro módulo a começar em qualquer dispositivo IoT Edge. Este módulo começa pela primeira vez com base na informação do ficheiro de configuração do IoT Edge. O agente IoT Edge liga-se então ao Hub IoT para recuperar os manifestos de implementação. O manifesto declara quais outros módulos o dispositivo deve implantar.
Esta etapa ocorre uma vez no dispositivo IoT Edge durante a configuração inicial do dispositivo.
Abra o ficheiro de configuração no seu dispositivo IoT Edge:
/etc/aziot/config.toml. Você precisa de privilégios administrativos para acessar o arquivo de configuração. Em sistemas Linux, use osudocomando antes de abrir o arquivo em seu editor de texto preferido.No arquivo de configuração, localize a
[agent]seção , que contém todas as informações de configuração para o módulo edgeAgent usar na inicialização. Verifique se a[agent]seção não tem comentários. Se a seção[agent]estiver faltando, adicione a seção aoconfig.toml. A definição de agente IoT Edge inclui uma subsecção[agent.env]onde podes adicionar variáveis de ambiente.Adicione o parâmetro https_proxy à seção de variáveis de ambiente e defina sua URL de proxy como seu valor.
[agent] name = "edgeAgent" type = "docker" [agent.config] image = "mcr.microsoft.com/azureiotedge-agent:1.5" [agent.env] # RuntimeLogLevel = "debug" # UpstreamProtocol = "AmqpWs" https_proxy = "<proxy URL>"O runtime do IoT Edge utiliza o AMQP por padrão para comunicar com o Hub IoT. Alguns servidores proxy bloqueiam portas AMQP. Se esse for o caso, você também precisará configurar o edgeAgent para usar AMQP sobre WebSocket. Remova o comentário do
UpstreamProtocolparâmetro.[agent.config] image = "mcr.microsoft.com/azureiotedge-agent:1.5" [agent.env] # RuntimeLogLevel = "debug" UpstreamProtocol = "AmqpWs" https_proxy = "<proxy URL>"Salve as alterações e feche o editor. Aplique as alterações.
sudo iotedge config applyVerifique se as configurações de proxy são aplicadas usando
docker inspect edgeAgentna seçãoEnv. Caso contrário, você deve recriar o contêiner.sudo docker rm -f edgeAgentO runtime do IoT Edge recria
edgeAgentem um minuto. Quando oedgeAgentcontêiner estiver sendo executado novamente, use odocker inspect edgeAgentcomando para verificar se as configurações de proxy correspondem ao arquivo de configuração.
Configurar manifestos de implantação
Depois de configurar o seu dispositivo IoT Edge para funcionar com o seu servidor proxy, declare a variável de ambiente HTTPS_PROXY nos manifestos de implementação futuras. Pode editar manifestos de implementação usando o assistente do portal Azure ou editando um ficheiro JSON de manifesto de implementação.
Configure sempre os dois módulos de execução, edgeAgent e edgeHub, para comunicarem através do servidor proxy, de modo a que mantenham uma ligação com o Hub IoT. Se você remover as informações de proxy do módulo edgeAgent, a única maneira de restabelecer a conexão é editar o arquivo de configuração no dispositivo, conforme descrito na seção anterior.
Além dos módulos edgeAgent e edgeHub, outros módulos podem precisar da configuração de proxy. Módulos que acessam recursos do Azure além do Hub IoT, como o armazenamento de BLOBs, devem especificar a variável HTTPS_PROXY no ficheiro de manifesto de implementação.
Este procedimento aplica-se ao longo de toda a vida útil do dispositivo IoT Edge.
portal do Azure
Quando usas o assistente Set modules para criar implementações para IoT Edge dispositivos, cada módulo tem uma secção Variáveis de Ambiente onde podes configurar ligações a servidores proxy.
Para configurar os módulos agente IoT Edge e IoT Edge hub, selecione Runtime Settings no primeiro passo do assistente.
Adicione a variável de ambiente https_proxy às definições de definições de tempo de execução tanto do agente IoT Edge como do módulo IoT Edge hub. Se incluir a variável de ambiente UpstreamProtocol no ficheiro de configuração do seu dispositivo IoT Edge, adicione-a também à definição do módulo de agente IoT Edge.
Todos os outros módulos que você adiciona a um manifesto de implantação seguem o mesmo padrão. Selecione Aplicar para guardar as alterações.
Arquivos de manifesto de implantação JSON
Se criar implementações para dispositivos IoT Edge usando os templates no Visual Studio Code ou criando manualmente ficheiros JSON, pode adicionar as variáveis de ambiente diretamente a cada definição de módulo. Se não os adicionaste no portal do Azure, adiciona-os aqui ao teu ficheiro de manifestos JSON. Substitua <proxy URL> pelo seu valor.
Use o seguinte formato JSON:
"env": {
"https_proxy": {
"value": "<proxy URL>"
}
}
Com as variáveis de ambiente incluídas, a definição do módulo se parece com o seguinte exemplo de edgeHub:
"edgeHub": {
"type": "docker",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-hub:1.5",
"createOptions": "{}"
},
"env": {
"https_proxy": {
"value": "http://proxy.example.com:3128"
}
},
"status": "running",
"restartPolicy": "always"
}
Se incluiu a variável de ambiente UpstreamProtocol no ficheiro config.toml do seu dispositivo IoT Edge, adicione-a também à definição do módulo IoT Edge agent.
"env": {
"https_proxy": {
"value": "<proxy URL>"
},
"UpstreamProtocol": {
"value": "AmqpWs"
}
}
Trabalhando com proxies para inspeção de tráfego
Alguns proxies como o Zscaler podem inspecionar tráfego encriptado por TLS. Durante a inspeção de tráfego TLS, o certificado retornado pelo proxy não é o certificado do servidor de destino, mas é o certificado assinado pelo próprio certificado raiz do proxy. Por padrão, os módulos do IoT Edge (incluindo edgeAgent e edgeHub) não confiam no certificado deste proxy e a negociação TLS falha.
Para corrigir o aperto de mão falhado, configure tanto o sistema operativo como os módulos IoT Edge para confiarem no certificado raiz do proxy, seguindo estes passos.
Configure o certificado de proxy no armazenamento de certificados raiz confiável do seu sistema operacional host. Para obter mais informações sobre como instalar um certificado raiz, consulte Instalar a autoridade de certificação raiz no repositório de certificados do sistema operacional.
Configure o seu dispositivo IoT Edge para comunicar através de um servidor proxy, referenciando o certificado no trust bundle. Para obter mais informações sobre como configurar o pacote de confiança, consulte Gerenciar CA raiz confiável (pacote de confiança).
Para configurar suporte de proxies de inspeção de tráfego para containers não geridos pela IoT Edge, contacte o seu fornecedor de proxy.
Nomes de domínio totalmente qualificados (FQDNs) dos destinos com que o IoT Edge comunica
Se o firewall do seu proxy exigir a adição de todos os FQDNs à sua lista de permissões para conectividade à internet, reveja a lista de Permitir ligações de dispositivos IoT Edge para determinar quais FQDNs adicionar.
Próximos passos
Saiba mais sobre as funções do tempo de execução IoT Edge.
Resolução de erros de instalação e configuração em Questões comuns e suas resoluções para Azure IoT Edge.