Proprietà dei moduli gemelli "agente di IoT Edge" e "hub di IoT Edge"
Si applica a: IoT Edge 1.5 IoT Edge 1.4
Importante
IoT Edge 1.5 LTS e IoT Edge 1.4 LTS sono versioni supportate. IoT Edge 1.4 LTS raggiungerà il fine vita il 12 novembre 2024. Se si usa una versione precedente, vedere Aggiornare IoT Edge.
L'agente di IoT Edge e l'hub di IoT Edge sono due moduli che costituiscono il runtime di IoT Edge. Per altre informazioni sulle responsabilità di ogni modulo di runtime, vedere Informazioni sul runtime di Azure IoT Edge e sulla relativa architettura.
Questo articolo descrive le proprietà desiderate e quelle segnalate dei moduli gemelli del runtime. Per altre informazioni su come distribuire moduli nei dispositivi IoT Edge, vedere Informazioni su come distribuire moduli e stabilire route in IoT Edge.
Un modulo gemello include:
Proprietà desiderate. Il back-end della soluzione è in grado di impostare le proprietà desiderate e il modulo è in grado di leggerle. Il modulo può anche ricevere notifiche relative alle modifiche apportate alle proprietà desiderate. Le proprietà desiderate vengono usate insieme alle proprietà segnalate per sincronizzare la configurazione o le condizioni del modulo.
Proprietà segnalate. Il modulo è in grado di impostare le proprietà segnalate, mentre il back-end della soluzione è in grado di leggerle ed eseguire query su di esse. Le proprietà segnalate vengono usate insieme alle proprietà desiderate per sincronizzare la configurazione o le condizioni del modulo.
Proprietà desiderate di EdgeAgent
Il dispositivo gemello del modulo per l'agente di IoT Edge è denominato $edgeAgent
e coordina le comunicazioni tra l'agente di IoT Edge in esecuzione su un dispositivo e l'hub IoT. Le proprietà desiderate vengono impostate durante l'applicazione di un manifesto della distribuzione in un dispositivo specifico nell'ambito di una distribuzione di un singolo dispositivo o su larga scala.
Proprietà | Descrizione | Richiesto |
---|---|---|
imagePullPolicy | Quando eseguire il pull dell'immagine in OnCreate o Never (Non è mai possibile usare se l'immagine è già presente nel dispositivo) | Sì |
restartPolicy | Quando il modulo deve essere riavviato. I valori possibili sono: Mai: non riavviare il modulo se non è in esecuzione, Always: riavvia sempre il modulo se non è in esecuzione, On-Unhealthy: restart module if unhealthy. Unhealthy è ciò che Docker segnala in base a un controllo di integrità, ad esempio "Unhealthy - the container is not working correttamente", On-Failed: restart if Failed( Non riuscito). | Sì |
runtime.type | Deve essere docker. | Sì |
runtime.settings.minDockerVersion | Impostata sulla versione minima di Docker richiesta da questo manifesto della distribuzione. | Sì |
runtime.settings.loggingOptions | Un file JSON in formato stringa contenente le opzioni di registrazione per il contenitore dell'agente di IoT Edge. Opzioni di registrazione di Docker | No |
runtime.settings.registryCredentials. {registryId}.username | Nome utente del registro contenitori. Per Registro Azure Container, il nome utente corrisponde in genere al nome del registro. Le credenziali del Registro di sistema sono necessarie per qualsiasi immagine del modulo privato. | No |
runtime.settings.registryCredentials. {registryId}.password | Password del registro contenitori. | No |
runtime.settings.registryCredentials. {registryId}.address | Indirizzo del registro contenitori. Per Registro Azure Container, l'indirizzo è in genere {nome registro}.azurecr.io. | No |
schemaVersion | 1.0 o 1.1. La versione 1.1 è stata introdotta con IoT Edge versione 1.0.10 ed è consigliata. | Sì |
stato | Stato desiderato del modulo: in esecuzione o arrestato. | Richiesto |
systemModules.edgeAgent.type | Deve essere docker. | Sì |
systemModules.edgeAgent.startupOrder | Un valore intero per la posizione in cui un modulo ha nell'ordine di avvio. Un valore 0 è il primo e il numero intero massimo (4294967295) è l'ultimo. Se non viene specificato un valore, il valore predefinito è max integer. | No |
systemModules.edgeAgent.settings.image | URI dell'immagine dell'agente di IoT Edge. Attualmente, l'agente IoT Edge non è in grado di aggiornarsi. | Sì |
systemModules.edgeAgent.settings.createOptions | Un file JSON in formato stringa contenente le opzioni per la creazione del contenitore dell'agente di IoT Edge. Opzioni di creazione di Docker | No |
systemModules.edgeAgent.configuration.id | ID della distribuzione che ha distribuito questo modulo. | L'hub IoT imposta questa proprietà quando il manifesto viene applicato tramite una distribuzione. Non fa parte di un manifesto della distribuzione. |
systemModules.edgeHub.type | Deve essere docker. | Sì |
systemModules.edgeHub.status | Deve essere in esecuzione. | Sì |
systemModules.edgeHub.restartPolicy | Deve essere sempre. | Sì |
systemModules.edgeHub.startupOrder | Valore intero per il cui spot è presente un modulo nell'ordine di avvio. Un valore 0 è il primo e il numero intero massimo (4294967295) è l'ultimo. Se non viene specificato un valore, il valore predefinito è max integer. | No |
systemModules.edgeHub.settings.image | URI dell'immagine dell'hub di IoT Edge. | Sì |
systemModules.edgeHub.settings.createOptions | Un file JSON in formato stringa contenente le opzioni per la creazione del contenitore dell'hub di IoT Edge. Opzioni di creazione di Docker | No |
systemModules.edgeHub.configuration.id | ID della distribuzione che ha distribuito questo modulo. | L'hub IoT imposta questa proprietà quando il manifesto viene applicato tramite una distribuzione. Non fa parte di un manifesto della distribuzione. |
modules.{moduleId}.version | Una stringa definita dall'utente che rappresenta la versione di questo modulo. | Sì |
modules.{moduleId}.type | Deve essere docker. | Sì |
modules.{moduleId}.status | {running | stopped} | Sì |
modules.{moduleId}.restartPolicy | {never | always} | Sì |
modules.{moduleId}.startupOrder | Un valore intero per la posizione in cui un modulo ha nell'ordine di avvio. Un valore 0 è il primo e il numero intero massimo (4294967295) è l'ultimo. Se non viene specificato un valore, il valore predefinito è max integer. | No |
modules.{moduleId}.imagePullPolicy | {on-create | never} | No |
Moduli. {moduleId}.env | Elenco di variabili di ambiente da passare al modulo. Accetta il formato "<name>": {"value": "<value>"} . |
No |
modules.{moduleId}.settings.image | URI dell'immagine del modulo. | Sì |
modules.{moduleId}.settings.createOptions | Un file JSON in formato stringa contenente le opzioni per la creazione del contenitore del modulo. Opzioni di creazione di Docker | No |
modules.{moduleId}.configuration.id | ID della distribuzione che ha distribuito questo modulo. | L'hub IoT imposta questa proprietà quando il manifesto viene applicato tramite una distribuzione. Non fa parte di un manifesto della distribuzione. |
versione | Iterazione corrente con versione, commit e compilazione. | No |
Proprietà segnalate di EdgeAgent
Le proprietà segnalate dell'agente di IoT Edge includono tre tipi principali di informazioni:
- Lo stato dell'applicazione delle proprietà desiderate visualizzate per ultime;
- Lo stato dei moduli attualmente in esecuzione nel dispositivo, come segnalato dall'agente di IoT Edge;
- Una copia delle proprietà desiderate attualmente in esecuzione nel dispositivo.
La copia delle proprietà desiderate correnti è utile per indicare se il dispositivo ha applicato la distribuzione più recente o se è ancora in esecuzione un manifesto della distribuzione precedente.
Nota
Le proprietà segnalate dell'agente di IoT Edge sono utili in quanto possono essere sottoposte a query con il linguaggio di query dell'hub IoT per esaminare lo stato delle distribuzioni su larga scala. Per altre informazioni su come usare le proprietà dell'agente di IoT Edge relative allo stato, vedere Informazioni sulle distribuzioni IoT Edge per singoli dispositivi o su vasta scala.
La tabella seguente non include le informazioni copiate dalle proprietà desiderate.
Proprietà | Descrizione |
---|---|
lastDesiredStatus.code | Questo codice di stato fa riferimento alle ultime proprietà desiderate visualizzate dall'agente di IoT Edge. Valori consentiti: Operazione 200 riuscita, 400 Configurazione non valida, 412 Versione dello schema non valida, 417 Proprietà desiderate sono vuote, 500 Operazione non riuscita. |
lastDesiredStatus.description | Descrizione di testo dello stato. |
lastDesiredVersion | Questo integer si riferisce all'ultima versione delle proprietà desiderate elaborate dall'agente di IoT Edge. |
runtime.platform.OS | Segnalazione del sistema operativo in esecuzione nel dispositivo. |
runtime.platform.architecture | Segnalazione dell'architettura della CPU nel dispositivo. |
schemaVersion | Versione dello schema delle proprietà segnalate. |
systemModules.edgeAgent.runtimeStatus | Stato segnalato dell'agente IoT Edge: {in esecuzione | non integro}. |
systemModules.edgeAgent.statusDescription | Descrizione di testo dello stato segnalato dell'agente di IoT Edge. |
systemModules.edgeAgent.exitCode | Codice di uscita segnalato dal contenitore dell'agente IoT Edge se il contenitore viene chiuso. |
systemModules.edgeAgent.lastStartTimeUtc | Ora dell'ultimo avvio dell'agente IoT Edge. |
systemModules.edgeAgent.lastExitTimeUtc | Ora dell'ultima uscita dell'agente IoT Edge. |
systemModules.edgeHub.runtimeStatus | Stato dell'hub IoT Edge: { running | stopped | failed | backoff | unhealthy }. |
systemModules.edgeHub.statusDescription | Descrizione del testo dello stato dell'hub IoT Edge, se non integro. |
systemModules.edgeHub.exitCode | Codice di uscita segnalato dal contenitore dell'hub IoT Edge, se il contenitore viene chiuso. |
systemModules.edgeHub.lastStartTimeUtc | Ora dell'ultimo avvio dell'hub di IoT Edge. |
systemModules.edgeHub.lastExitTimeUtc | Ora dell'ultima uscita dell'hub IoT Edge. |
systemModules.edgeHub.lastRestartTimeUtc | Ora dell'ultimo riavvio dell'hub di IoT Edge. |
systemModules.edgeHub.restartCount | Numero di tentativi di riavvio del modulo nell'ambito dei criteri di riavvio. |
modules.{moduleId}.runtimeStatus | Stato del modulo: { running | stopped | failed | backoff | unhealthy }. |
modules.{moduleId}.statusDescription | Descrizione del testo dello stato del modulo, se non integro. |
modules.{moduleId}.exitCode | Codice di uscita segnalato dal contenitore del modulo, se il contenitore viene chiuso. |
Moduli. {moduleId}.lastStartTimeUtc | Ora dell'ultimo avvio del modulo. |
modules.{moduleId}.lastExitTimeUtc | Ora dell'ultima uscita del modulo. |
modules.{moduleId}.lastRestartTimeUtc | Ora dell'ultimo riavvio del modulo. |
modules.{moduleId}.restartCount | Numero di tentativi di riavvio del modulo nell'ambito dei criteri di riavvio. |
versione | Versione dell'immagine. Esempio: "version": { "version": "1.2.7", "build": "50979330", "commit": "d3ec971caa0af0fc39d2c1f91aef21e95bd0c03c" }. |
Proprietà desiderate di EdgeHub
Il dispositivo gemello del modulo per l'hub di IoT Edge è denominato $edgeHub
e coordina le comunicazioni tra l'hub di IoT Edge in esecuzione su un dispositivo e l'hub IoT. Le proprietà desiderate vengono impostate durante l'applicazione di un manifesto della distribuzione in un dispositivo specifico nell'ambito di una distribuzione di un singolo dispositivo o su larga scala.
Proprietà | Descrizione | Obbligatoria nel manifesto della distribuzione |
---|---|---|
schemaVersion | 1.0 o 1.1. La versione 1.1 è stata introdotta con IoT Edge versione 1.0.10 ed è consigliata. | Sì |
routes.{routeName} | Stringa che rappresenta una route dell'hub di IoT Edge. Per altre informazioni, vedere Dichiarare le route. | L'elemento routes può essere presente, ma vuoto. |
storeAndForwardConfiguration.timeToLiveSecs | Il tempo del dispositivo in secondi in cui l'hub IoT Edge mantiene i messaggi se disconnessi dagli endpoint di routing, sia hub IoT che da un modulo locale. Questo tempo persiste su eventuali spegnimenti o riavvii. Per altre informazioni, vedere Funzionalità offline. | Sì |
Proprietà segnalate di EdgeHub
Proprietà | Descrizione |
---|---|
lastDesiredVersion | Questo integer si riferisce all'ultima versione delle proprietà desiderate elaborate dall'hub di IoT Edge. |
lastDesiredStatus.code | Il codice di stato che fa riferimento alle ultime proprietà desiderate visualizzate dall'hub di IoT Edge. Valori consentiti: 200 Success, 400 Invalid configuration, 500 Failed |
lastDesiredStatus.description | Descrizione di testo dello stato. |
client | Tutti i client connessi a edgeHub con lo stato e l'ora dell'ultima connessione. Esempio: "clients": { "device2/SimulatedTemperatureSensor": { "status": "Connected", "lastConnectedTimeUtc": "2022-11-17T21:49:16.4781564Z" } }. |
clients.{device or moduleId}.status | Stato di connettività del dispositivo o del modulo. Valori possibili {connected | disconnected}. Solo le identità del modulo possono essere in stato disconnected. I dispositivi downstream che si connettono all'hub di IoT Edge vengono visualizzati solo quando lo stato è connected. |
clients.{device or moduleId}.lastConnectTime | Ultima ora di connessione del dispositivo o del modulo. |
clients.{device or moduleId}.lastDisconnectTime | Ultima ora di disconnessione del dispositivo o del modulo. |
schemaVersion | Versione dello schema delle proprietà segnalate. |
versione | Versione dell'immagine. Esempio: "version": { "version": "1.2.7", "build": "50979330", "commit": "d3ec971caa0af0fc39d2c1f91aef21e95bd0c03c" }. |
Passaggi successivi
Per informazioni su come usare queste proprietà per generare i manifesti di distribuzione, vedere Informazioni su come usare, configurare e riusare i moduli IoT Edge.