Propriedades do agente do IoT Edge e dos gêmeos de módulo do hub do IoT Edge

Aplica-se a:IoT Edge 1.4 checkmark IoT Edge 1.4

Importante

A versão com suporte é a IoT Edge 1.4. Se você estiver em uma versão anterior, confira Atualizar o IoT Edge.

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

Este artigo fornece as propriedades desejadas e as propriedades relatadas dos módulos gêmeos de runtime. Para obter mais informações sobre como implantar módulos em dispositivos do IoT Edge, consulte Saiba como implantar módulos e estabelecer rotas no IoT Edge.

Um módulo gêmeo inclui:

  • Propriedades desejadas. O back-end da solução pode definir as propriedades desejadas e o módulo pode lê-las. O módulo também pode receber notificações de alterações nas propriedades desejadas. As propriedades desejadas são usadas junto com as propriedades relatadas para sincronizar a configuração ou as condições do módulo.

  • Propriedades reportadas. O módulo pode definir as propriedades relatadas e o back-end da solução pode lê-las e consultá-las. As propriedades relatadas são usadas junto com as propriedades desejadas para sincronizar a configuração ou as condições do módulo.

Propriedades desejadas do EdgeAgent

O gêmeo do módulo para o agente do IoT Edge se chama $edgeAgent e coordena as comunicações entre o agente do IoT Edge em execução em um dispositivo e o Hub IoT. As propriedades desejadas são definidas durante a aplicação de um manifesto de implantação em um dispositivo específico como parte de uma implantação de dispositivo único ou em escala.

Propriedade Descrição Necessário
imagePullPolicy Quando puxar a imagem em OnCreate ou Never (Nunca pode ser usado se a imagem já estiver no dispositivo) Sim
restartPolicy Quando o módulo deve ser reiniciado. Os valores possíveis são: Nunca: não reinicie o módulo se não estiver em execução, Sempre: sempre reinicie o módulo se não estiver em execução, On-Unhealthy: reinicie o módulo se não estiver íntegro. Não íntegro é o que o Docker relata com base em uma verificação de integridade, por exemplo, "Não íntegro - o contêiner não está funcionando corretamente", On-Failed: restart if Failed. Sim
runtime.type Tem que ser portuário. Sim
runtime.settings.minDockerVersion Defina essa opção com a versão mínima do Docker necessária para este manifesto de implantação. Sim
runtime.settings.loggingOptions Um JSON em cadeias de caracteres que contém as opções de registro para o contêiner do agente do IoT Edge. Opções de registro em log do Docker Não
runtime.settings.registryCredentials.{registryId}.username O nome de usuário do registro de contêiner. Para registro de contêiner do Azure, o nome de usuário geralmente é o nome do registro. As credenciais do Registro são necessárias para qualquer imagem privada do módulo. Não
runtime.settings.registryCredentials.{registryId}.password A senha para o registro de contêiner. Não
runtime.settings.registryCredentials.{registryId}.address O endereço do registro de contêineres. Para Registro de Contêiner do Azure, o endereço é geralmente {nome do registro}.azurecr.io. Não
schemaVersion 1.0 ou 1.1. A versão 1.1 foi introduzida com o IoT Edge versão 1.0.10 e é a recomendada. Sim
status Status desejado do módulo: Em execução ou Parado. Obrigatório
systemModules.edgeAgent.type Tem que ser portuário. Sim
systemModules.edgeAgent.startupOrder Um valor inteiro para o local que um módulo tem na ordem de inicialização. Um 0 é o primeiro e o inteiro máximo (4294967295) é o último. Se um valor não for fornecido, o padrão será número inteiro máximo. Não
systemModules.edgeAgent.settings.image O URI da imagem do agente do IoT Edge. Atualmente, o agente do IoT Edge não é capaz de se atualizar. Sim
systemModules.edgeAgent.settings.createOptions Um JSON em cadeias de caracteres que contém as opções para a criação do contêiner do agente do IoT Edge. Opções de criação de docker Não
systemModules.edgeAgent.configuration.id A ID da implantação que implantou este módulo. O Hub IoT define essa propriedade quando o manifesto é aplicado usando uma implantação. Não faz parte de um manifesto de implantação.
systemModules.edgeHub.type Tem que ser portuário. Sim
systemModules.edgeHub.status Tem que estar correndo. Sim
systemModules.edgeHub.restartPolicy Tem que ser sempre. Sim
systemModules.edgeHub.startupOrder Um valor inteiro para o local que um módulo ocupa na ordem de inicialização. Um 0 é o primeiro e o inteiro máximo (4294967295) é o último. Se um valor não for fornecido, o padrão será número inteiro máximo. Não
systemModules.edgeHub.settings.image O URI da imagem do hub do IoT Edge. Sim
systemModules.edgeHub.settings.createOptions Um JSON em cadeias de caracteres que contém as opções para a criação do contêiner do hub do IoT Edge. Opções de criação de docker Não
systemModules.edgeHub.configuration.id A ID da implantação que implantou este módulo. O Hub IoT define essa propriedade quando o manifesto é aplicado usando uma implantação. Não faz parte de um manifesto de implantação.
modules.{moduleId}.version Uma cadeia definida pelo usuário que representa a versão desse módulo. Sim
modules.{moduleId}.type Tem que ser portuário. Sim
modules.{moduleId}.status {execução | interrompida} 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 inteiro máximo (4294967295) é o último. Se um valor não for fornecido, o padrão será 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 que devem ser passadas para o módulo. Assume o formato "<name>": {"value": "<value>"}. Não
modules.{moduleId}.settings.image O URI para a imagem do módulo. Sim
modules.{moduleId}.settings.createOptions Um JSON em cadeias de caracteres que contém as opções para a criação do contêiner do módulo. Opções de criação de docker Não
modules.{moduleId}.configuration.id A ID da implantação que implantou este módulo. O Hub IoT define essa propriedade quando o manifesto é aplicado usando uma implantaçã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 relatadas pelo agente do IoT Edge incluem três partes de informação principais:

  1. O status do aplicativo das propriedades desejadas vistas pela última vez;
  2. O status dos módulos em execução no momento no dispositivo, conforme relatado pelo agente do IoT Edge; e
  3. Uma cópia das propriedades desejadas atualmente em execução no dispositivo.

A cópia das propriedades desejadas atuais é útil para saber se o dispositivo aplicou a implantação mais recente ou se ainda está executando um manifesto de implantação anterior.

Observação

As propriedades relatadas do agente do IoT Edge são úteis porque podem ser consultadas com a linguagem de consulta do Hub IoT para investigar o status das implantações em grande escala. Para saber mais sobre como usar as propriedades de agente do IoT Edge para status, confira Noções básicas sobre implantações do IoT Edge para dispositivos únicos ou em escala.

A tabela a seguir não inclui as informações que são copiadas das propriedades desejadas.

Propriedade Descrição
lastDesiredStatus.code Este código de status se refere às últimas propriedades desejadas vistas pelo agente do IoT Edge. Valores permitidos: 200 Êxito, Configuração inválida, Versão do esquema inválida, As propriedades desejadas estão vazias, 417400412500 Falha.
lastDesiredStatus.description A descrição do status em texto.
lastDesiredVersion Este inteiro refere-se à última versão das propriedades desejadas processadas pelo agente do IoT Edge.
runtime.platform.OS Relatório do sistema operacional em execução no dispositivo.
runtime.platform.architecture Relatório da arquitetura da CPU no dispositivo.
schemaVersion Versão do esquema das propriedades relatadas.
systemModules.edgeAgent.runtimeStatus O status relatado do agente do IoT Edge: {executando | não íntegro}.
systemModules.edgeAgent.statusDescription Descrição em texto do status relatado do agente do IoT Edge.
systemModules.edgeAgent.exitCode O código de saída relatado pelo contêiner do agente do IoT Edge se o contêiner for encerrado.
systemModules.edgeAgent.lastStartTimeUtc Hora em que o agente do IoT Edge foi iniciado pela última vez.
systemModules.edgeAgent.lastExitTimeUtc Hora em que o agente do IoT Edge foi encerrado pela última vez.
systemModules.edgeHub.runtimeStatus Status do hub IoT Edge: { execução | interrompida | falhou | recuo | não íntegro }.
systemModules.edgeHub.statusDescription Descrição de texto do status do hub IoT Edge, se não estiver íntegro.
systemModules.edgeHub.exitCode Código de saída relatado pelo contêiner de hub do IoT Edge, se o contêiner for encerrado.
systemModules.edgeHub.lastStartTimeUtc Hora em que hub do IoT Edge foi iniciado pela última vez.
systemModules.edgeHub.lastExitTimeUtc Hora em que o hub do IoT Edge foi encerrado pela última vez.
systemModules.edgeHub.lastRestartTimeUtc Hora em que hub do 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: { execução | interrompida | falhou | backoff | não íntegro }.
modules.{moduleId}.statusDescription Descrição de texto do status do módulo, se não estiver íntegro.
modules.{moduleId}.exitCode O código de saída relatado pelo contêiner do módulo, se o contêiner for encerrado.
Módulos. {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. Exemplo: "version": { "version": "1.2.7", "build": "50979330", "commit": "d3ec971caa0af0fc39d2c1f91aef21e95bd0c03c" }.

Propriedades desejadas do EdgeHub

O gêmeo do módulo para o hub do IoT Edge se chama $edgeHub e coordena as comunicações entre o hub do IoT Edge em execução em um dispositivo e o Hub IoT. As propriedades desejadas são definidas durante a aplicação de um manifesto de implantação em um dispositivo específico como parte de uma implantação de dispositivo único ou em escala.

Propriedade Descrição Necessárias no manifesto de implantação
schemaVersion 1.0 ou 1.1. A versão 1.1 foi introduzida com o IoT Edge versão 1.0.10 e é a recomendada. Sim
routes.{routeName} Uma cadeia de caracteres que representa uma rota do hub do IoT Edge. Para saber mais, consulte Declarar rotas. O elemento routes pode estar presente mas vazio.
storeAndForwardConfiguration.timeToLiveSecs O tempo do dispositivo em segundos que o hub do IoT Edge mantém as mensagens caso se desconecte de pontos de extremidade de roteamento do Hub IoT ou de um módulo local. Este tempo persiste em qualquer desligamento ou reinicialização. Para obter mais informações, confira Funcionalidades offline. Sim

Propriedades relatadas do EdgeHub

Propriedade Descrição
lastDesiredVersion Este inteiro refere-se à última versão das propriedades desejadas processadas pelo hub do IoT Edge.
lastDesiredStatus.code É o código de status que se refere às últimas propriedades desejadas vistas pelo hub do IoT Edge. Valores permitidos: 200 Êxito, 400 Configuração inválida, 500 Falha
lastDesiredStatus.description A descrição do status em texto.
clientes Todos os clientes conectados ao edgeHub com o status e a última hora conectada. Exemplo: "clients": { "device2/SimulatedTemperatureSensor": { "status": "Connected", "lastConnectedTimeUtc": "2022-11-17T21:49:16.4781564Z" } }.
clients.{device or moduleId}.status O status de conectividade do dispositivo ou do módulo. Valores possíveis {conectado | desconectado}. Somente as identidades de módulo podem estar em estado desconectado. Os dispositivos downstream conectados ao hub do IoT Edge aparecem somente quando conectados.
clients.{device or moduleId}.lastConnectTime Última vez em que o dispositivo ou o módulo esteve conectado.
clients.{device or moduleId}.lastDisconnectTime Última vez em que o dispositivo ou módulo se desconectou.
schemaVersion Versão do esquema das propriedades relatadas.
version Versão da imagem. Exemplo: "version": { "version": "1.2.7", "build": "50979330", "commit": "d3ec971caa0af0fc39d2c1f91aef21e95bd0c03c" }.

Próximas etapas

Para saber como utilizar essas propriedades para compilar manifestos de implantação, consulte Entender como os módulos do IoT Edge podem ser utilizados, configurados e reutilizados.