Partilhar via


Propriedades dos gémeos do IoT Edge agent e do módulo hub IoT Edge

Aplica-se a:IoT Edge 1.5 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.

O agente IoT Edge e o hub IoT Edge são dois módulos que compõem o runtime do IoT Edge. Para mais informações sobre as responsabilidades de cada módulo de execução, veja compreender o runtime do Azure IoT Edge e a sua arquitetura.

Este artigo fornece as propriedades desejadas e as propriedades relatadas dos gêmeos do módulo de tempo de execução. Para mais informações sobre como implementar módulos em dispositivos IoT Edge, consulte aprenda como implementar módulos e estabelecer rotas em IoT Edge.

Um módulo twin inclui:

  • Propriedades desejadas. O back-end da solução define as propriedades desejadas e o módulo as lê. O módulo também recebe notificações de alterações nas propriedades desejadas. Utilize as propriedades desejadas juntamente com as propriedades reportadas para sincronizar a configuração ou condições dos módulos.

  • Propriedades Relatadas O módulo define as propriedades relatadas e o back-end da solução as lê e consulta. Use as propriedades reportadas juntamente com as propriedades desejadas para sincronizar a configuração ou condições do módulo.

Propriedades desejadas do EdgeAgent

O módulo gémeo para o agente IoT Edge chama-se $edgeAgent. Coordena as comunicações entre o agente IoT Edge a correr num dispositivo e o IoT Hub. Defina as propriedades desejadas quando aplica um manifesto de implementação num dispositivo específico como parte de uma implementação de dispositivo único ou em escala.

Propriedade Descrição Obrigatório
imagePullPolicy Especifica quando extrair a imagem: OnCreate ou Never. Use Nunca se a imagem já estiver no dispositivo. Sim
restartPolicy Quando reiniciar o módulo. Os valores possíveis são: Nunca: não reiniciar o módulo se não estiver a funcionar, Sempre: sempre reiniciar o módulo se não estiver a funcionar, On-Unhealthy: reiniciar o módulo se não estiver saudável, On-Failed: reiniciar se Failed. Nota: Apenas Nunca e Sempre estão atualmente implementados. On-Unhealthy e On-Failed são aceites pelo esquema, mas não iniciam um reinício. Para detalhes, consulte IoT Edge limites e restrições. Sim
runtime.type Deve ser docker. Sim
runtime.settings.minDockerVersion Especifica a versão mínima do Docker exigida por esse manifesto de implantação. Sim
runtime.settings.loggingOptions Especifica um JSON formatado como string com as opções de log para o contentor do agente IoT Edge. Saiba mais sobre as opções de registro do Docker. Não
runtime.settings.registryCredentials.{registryId}.username Especifica o nome de usuário do registro do contêiner. Para o Azure Container Registry, o nome de utilizador é normalmente o nome do registo. As credenciais de registo são necessárias para imagens privadas de módulo. Não
runtime.settings.registryCredentials.{registryId}.password A senha para o registro do contêiner. Não
runtime.settings.registryCredentials.{registryId}.address O endereço do registro de contêiner. Para Azure Container Registry, o endereço é geralmente {registry name}.azurecr.io. Não
schemaVersion Especifica 1.0 ou 1.1. Recomenda-se a versão 1.1, introduzida com a versão 1.0.10 do IoT Edge. Sim
status Status desejado do módulo: Em execução ou Parado. Obrigatório
systemModules.edgeAgent.type Deve ser docker. Sim
systemModules.edgeAgent.startupOrder Especifica um inteiro para a posição do módulo na ordem de inicialização. 0 é o primeiro e o número inteiro máximo (4294967295) é o último. Se não fornecer um valor, o padrão é o número inteiro máximo. Não
systemModules.edgeAgent.settings.image Especifica o URI da imagem do agente IoT Edge. O agente IoT Edge não consegue atualizar-se sozinho. Sim
systemModules.edgeAgent.settings.createOptions Especifica um JSON stringificado com opções para criar o contentor do agente IoT Edge. Saiba mais sobre as opções de criação do Docker. Não
systemModules.edgeAgent.configuration.id A ID da implantação que implantou este módulo. O IoT Hub define esta propriedade quando aplica o manifesto através de uma implementação. Não faz parte de um manifesto de implantação.
systemModules.edgeHub.type Deve ser docker. Sim
systemModules.edgeHub.status Deve estar em execução. Sim
systemModules.edgeHub.restartPolicy Deve ser sempre. Sim
systemModules.edgeHub.startupOrder Um valor inteiro que representa a posição que um módulo ocupa na ordem de inicialização. Um 0 é o primeiro e o número inteiro máximo (4294967295) é o último. Se não fornecer um valor, o padrão é o número inteiro máximo. Não
systemModules.edgeHub.settings.image O URI da imagem do hub IoT Edge. Sim
systemModules.edgeHub.settings.createOptions Um JSON stringificado contendo as opções para a criação do contentor hub IoT Edge. Opções de criação do Docker Não
systemModules.edgeHub.configuration.id A ID da implantação que implantou este módulo. O IoT Hub define esta propriedade quando aplica o manifesto através de uma implementação. Não faz parte de um manifesto de implantação.
modules.{moduleId}.version Uma cadeia de caracteres definida pelo usuário que representa a versão deste módulo. Sim
modules.{moduleId}.type Deve ser docker. Sim
modules.{moduleId}.status A correr | parou Sim
modules.{moduleId}.restartPolicy nunca | Sempre Sim
modules.{moduleId}.startupOrder Um valor inteiro para o local que um módulo tem na ordem de inicialização. Um 0 é o primeiro e o número inteiro máximo (4294967295) é o último. Se não fornecer um valor, o padrão é o número inteiro máximo. Não
modules.{moduleId}.imagePullPolicy on-create | nunca Não
modules.{moduleId}.env Uma lista de variáveis de ambiente a serem passadas para o módulo. Assume o formato "<name>": {"value": "<value>"}. Não
modules.{moduleId}.settings.image O URI da imagem do módulo. Sim
modules.{moduleId}.settings.createOptions Um JSON formatado como string contendo as opções para a criação do container de módulo. Opções de criação do Docker Não
modules.{moduleId}.configuration.id A ID da implantação que implantou este módulo. O IoT Hub define esta propriedade quando aplica o manifesto através de uma implementação. Não faz parte de um manifesto de implantação.
version A iteração atual que tem versão, confirmação e compilação. Não

Propriedades relatadas do EdgeAgent

As propriedades reportadas pelos agentes IoT Edge incluem três informações principais:

  • Estado da aplicação das propriedades desejadas vistas pela última vez,
  • Estado dos módulos atualmente a correr no dispositivo, conforme reportado pelo agente IoT Edge, e
  • Cópia das propriedades desejadas atualmente em execução no dispositivo.

A cópia das propriedades desejadas atualmente ajuda a determinar se o dispositivo aplicou a última implementação ou se ainda está a executar um manifesto de implementação anterior.

Nota

Pode consultar as propriedades relatadas pelo agente do IoT Edge usando a linguagem de consulta do IoT Hub para investigar o estado da implementação a grande escala. Para obter informações sobre como usar as propriedades do agente IoT Edge para obter o estado, veja Compreender implementações IoT Edge para dispositivos individuais ou em escala.

A tabela seguinte não inclui a informação copiada das propriedades desejadas.

Propriedade Descrição
lastDesiredStatus.code Código de estado para as últimas propriedades desejadas vistas pelo agente IoT Edge. Valores permitidos: 200 Êxito, 400 Configuração inválida, 412 Versão inválida do esquema, 417 As propriedades desejadas estão vazias, 500 Falha.
lastDesiredStatus.description Texto de descrição do estado.
lastDesiredVersion Este inteiro refere-se à última versão das propriedades desejadas processadas pelo agente IoT Edge.
runtime.platform.OS Relata o sistema operacional em execução no dispositivo.
runtime.platform.architecture Relata a arquitetura da CPU no dispositivo.
schemaVersion Versão do esquema das propriedades relatadas.
systemModules.edgeAgent.runtimeStatus O estado reportado do agente IoT Edge: { running | unhealthy }.
systemModules.edgeAgent.statusDescription Descrição em texto do estado reportado do agente IoT Edge.
systemModules.edgeAgent.exitCode O código de saída é reportado pelo contentor do agente IoT Edge quando este sai.
systemModules.edgeAgent.lastStartTimeUtc Momento em que o agente IoT Edge foi iniciado pela última vez.
systemModules.edgeAgent.lastExitTimeUtc Hora em que o agente IoT Edge saiu pela última vez.
systemModules.edgeHub.runtimeStatus Estado do hub IoT Edge: { em execução | parado | falhado | recuperação | não saudável }.
systemModules.edgeHub.statusDescription Descrição textual do estado do IoT Edge hub, se estiver não saudável.
systemModules.edgeHub.exitCode Código de saída reportado pelo contentor do hub IoT Edge, caso o contentor saia.
systemModules.edgeHub.lastStartTimeUtc A época em que o hub IoT Edge foi iniciado pela última vez.
systemModules.edgeHub.lastExitTimeUtc Momento em que o hub IoT Edge foi encerrado pela última vez.
systemModules.edgeHub.lastRestartTimeUtc Tempo em que o hub IoT Edge foi reiniciado pela última vez.
systemModules.edgeHub.restartCount Número de vezes que este módulo foi reiniciado como parte da política de reinicialização.
modules.{moduleId}.runtimeStatus Status do módulo: { em execução | parado | falhou | retrocesso | não saudável }.
modules.{moduleId}.statusDescription Descrição em texto do estado do módulo, se estiver com problemas.
modules.{moduleId}.exitCode O código de saída relatado pelo contêiner do módulo, se o contêiner sair.
modules.{moduleId}.lastStartTimeUtc Hora em que o módulo foi iniciado pela última vez.
modules.{moduleId}.lastExitTimeUtc Hora em que o módulo foi encerrado pela última vez.
modules.{moduleId}.lastRestartTimeUtc Hora em que o módulo foi reiniciado pela última vez.
modules.{moduleId}.restartCount Número de vezes que este módulo foi reiniciado como parte da política de reinicialização.
version Versão da imagem. Por exemplo: "version": { "version": "1.2.7", "build": "50979330", "commit": "d3ec971caa0af0fc39d2c1f91aef21e95bd0c03c" }.

Propriedades desejadas do EdgeHub

O módulo gémeo para um hub IoT Edge chama-se $edgeHub. Coordena as comunicações entre o hub IoT Edge a correr num dispositivo e o IoT Hub. Defina as propriedades desejadas quando aplica um manifesto de implementação num dispositivo específico como parte de uma implementação de dispositivo único ou em escala.

Propriedade Descrição Obrigatório no manifesto de implantação
schemaVersion 1.0 ou 1.1. A versão 1.1 foi introduzida com a versão 1.0.10 do IoT Edge e é recomendada. Sim
routes.{routeName} Uma cadeia que representa a rota de um hub IoT Edge. Para obter mais informações, consulte Declarar rotas. O routes elemento pode estar presente, mas vazio.
storeAndForwardConfiguration.timeToLiveSecs O tempo em segundos que o IoT Edge Hub retém mensagens quando desconectado dos endpoints de roteamento, quer se trate do IoT Hub ou de um módulo local. Este tempo persiste durante qualquer desligamento ou reinicialização. Para obter mais informações, consulte Recursos offline. Sim

Propriedades reportadas do EdgeHub

Propriedade Descrição
lastDesiredVersion Este número inteiro refere-se à última versão das propriedades desejadas processada pelo hub IoT Edge.
lastDesiredStatus.code O código de estado refere-se às últimas propriedades desejadas vistas pelo hub IoT Edge. Valores permitidos: 200 Sucesso, 400 Configuração inválida, 500 Falhada.
lastDesiredStatus.description Texto de descrição do estado.
clients Todos os clientes conectados ao edgeHub com o estado e a última hora de conexão. Exemplo: "clients": { "device2/SimulatedTemperatureSensor": { "status": "Connected", "lastConnectedTimeUtc": "2022-11-17T21:49:16.4781564Z" } }.
clients.{device or moduleId}.status O estado de conectividade deste dispositivo ou módulo. Valores possíveis: conectados ou desconectados. Somente identidades de módulo podem estar em estado desconectado. Os dispositivos a jusante que se ligam ao hub IoT Edge só aparecem quando ligados.
clients.{device or moduleId}.lastConnectTime Última vez que o dispositivo ou módulo se conectou.
clients.{device or moduleId}.lastDisconnectTime Última vez que o dispositivo ou módulo foi desligado.
schemaVersion Versão do esquema das propriedades relatadas.
version Versão da imagem. Por exemplo: "version": { "version": "1.2.7", "build": "50979330", "commit": "d3ec971caa0af0fc39d2c1f91aef21e95bd0c03c" }.

Próximos passos

Para informações sobre como usar estas propriedades para construir manifestos de implementação, veja Compreender como módulos IoT Edge podem ser usados, configurados e reutilizados.