View a markdown version of this page

Interrogazioni sullo stato della connettività del dispositivo - AWS IoT Core

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Interrogazioni sullo stato della connettività del dispositivo

AWS IoT Fleet Indexing supporta l'interrogazione della connettività dei singoli dispositivi, consentendo di recuperare in modo efficiente lo stato della connettività e i relativi metadati per dispositivi specifici. Questa funzionalità integra le funzionalità di indicizzazione e interrogazione esistenti a livello di flotta.

Come funziona

Il supporto per le query di connettività dei dispositivi può essere utilizzato per il recupero ottimizzato dello stato di connettività di un singolo dispositivo. Questa API fornisce un accesso a bassa latenza e ad alto rendimento alle informazioni di connettività specifiche del dispositivo più recenti. Una volta abilitata l'indicizzazione della connettività, avrai accesso a questa API di query che verrà addebitata come query standard. Per ulteriori informazioni, consulta AWS IoT i prezzi di Device Management

Funzionalità

Grazie al supporto per le richieste di connettività dei dispositivi, puoi:

  1. Interroga lo stato attuale della connettività (connesso o disconnesso) per un determinato dispositivo utilizzando il suothingName.

  2. Recupera metadati di connettività aggiuntivi, tra cui:

    1. Motivo di disconnessione

    2. Timestamp per l'evento di connessione o disconnessione più recente.

    3. Informazioni sulla sessione, inclusa la durata del keep-alive

    4. Informazioni sulla sessione a livello di socket, tra cui indirizzo IP, porta e ID dell'endpoint VPC. Queste informazioni sono disponibili solo quando sono soddisfatte le seguenti condizioni:

      1. È possibile abilitare questa opzione nelle impostazioni di configurazione dell'indicizzazione del parco veicoli.

      2. Hai l'autorizzazione corrispondente nella policy IAM quando richiami l'API.

Nota

L'indicizzazione del parco istanze consente di indicizzare lo stato di connettività di un dispositivo la cui connessione clientId è identica al thingName di un oggetto registrato nel Registro.

Vantaggi

  1. Bassa latenza: riflette lo stato di connettività del dispositivo più recente e offre una bassa latenza per riflettere le modifiche allo stato della connessione da IoT Core. IoT Core determina la disconnessione di un dispositivo non appena riceve una richiesta di disconnessione dal dispositivo o nel caso in cui un dispositivo si disconnetta senza inviare una richiesta di disconnessione. Il core IoT attenderà 1,5 volte il tempo di mantenimento in vita configurato prima che il client venga determinato a essere disconnesso. L'API dello stato della connettività rifletterà queste modifiche in genere entro un secondo dopo che IoT Core avrà determinato la modifica dello stato di connessione di un dispositivo.

  2. Produttività elevata: supporta 350 transazioni al secondo (TPS) per impostazione predefinita e può essere regolata su richiesta.

  3. Conservazione dei dati: archivia i dati degli eventi a tempo indeterminato quando la ConnectivityIndexing modalità Fleet Indexing (FI) è abilitata e l'oggetto non viene eliminato. Se si disattiva l'indicizzazione della connettività, i record non verranno conservati.

Nota

Se l'indicizzazione dello stato della connettività era abilitata prima del lancio di questa API, Fleet Indexing inizia a tracciare le modifiche allo stato della connettività dopo il lancio dell'API e riflette lo stato aggiornato in base a tali modifiche.

Prerequisiti

Per utilizzare il supporto per le richieste di connettività dei dispositivi:

  1. Configura un AWS account

  2. Effettua l'onboarding e registra i dispositivi AWS IoT Core nella tua regione preferita

  3. Abilita l'indicizzazione del parco veicoli con l'indicizzazione della connettività. Facoltativo: Opt-in per ricevere informazioni a livello di socket abilitando l'opzione. includeSocketInformation

Nota

Non è richiesta alcuna configurazione aggiuntiva se l'indicizzazione della connettività è già abilitata.

Per istruzioni dettagliate sulla configurazione, consulta la Guida per gli sviluppatori AWS IoT

Esempio

Comando CLI:

aws iot get-thing-connectivity-data --include-socket-information --thing-name myThingName

Risposta:

{ "thingName": "myThingName", "connected": true, "timestamp": "2024-12-19T10:00:00.000000-08:00", "disconnectReason": "NONE", "sourceIp": "192.0.2.1", "sourcePort": 52123, "targetIp": "198.51.100.1", "targetPort": 8883, "vpcEndpointId": "vpce-1234567890abcdef0", "keepAliveDuration": 60, "cleanSession": true, "clientId": "myThingName" }

Parametri API

  • thingName: il nome del dispositivo registrato nel AWS IoT Registro di sistema. Deve corrispondere a quello clientId utilizzato per connettersi a AWS IoT Core.

  • includeSocketInformation: il includeSocketInformation parametro controlla se le informazioni di rete a livello di socket sono incluse nella risposta API. Se impostata su true, la risposta include i seguenti campi:. sourceIp, sourcePort, targetIp, targetPort, vpcEndpointId Quando non includeSocketInformation è specificato o impostato su false, questi campi socket vengono esclusi dalla risposta. Per impedire a utenti IAM specifici di accedere alle informazioni sui socket, è necessario specificarlo nella loro policy IAM impostando la chiave di includeSocketInformation condizione su false

Campi di risposta

  • thingName: il nome del dispositivo registrato nel AWS IoT Registro di sistema. Deve corrispondere a quello clientId utilizzato per connettersi a AWS IoT Core.

  • connected: il valore booleano true che indica che il dispositivo è attualmente connesso.

  • disconnectReason: motivo della disconnessione. Sarà NONE per un dispositivo connesso e UNKNOWN per un dispositivo che non è mai stato connesso. Per un dispositivo disconnesso, questo indicherà se la disconnessione è stata avviata dal client, dal server, a causa di authentication/authorization problemi o a causa di problemi di rete. Per i codici dei motivi della disconnessione, consulta LifeCycleEvents

  • timestamp: il timestamp che rappresenta l'evento di connessione o disconnessione più recente del dispositivo.

  • clientId: Il clientID del client MQTT.

  • keepAliveDuration: L'intervallo keep-alive in secondi specificato dal client quando ha stabilito la connessione. Questo determina la frequenza con cui il client invia messaggi keep-alive per mantenere la connessione.

  • cleanSession: indica se il client sta utilizzando una sessione pulita.

  • sessionExpiry: la configurazione di scadenza della sessione persistente specificata dal client al momento di stabilire la connessione. Determina per quanto tempo una sessione rimarrà attiva dopo la disconnessione del client.

  • sourceIp: l'indirizzo IP del client che ha avviato la connessione. Viene restituito solo se includeSocketInformation è impostato su true e l'utente è autorizzato a recuperare queste informazioni.

  • sourcePort: il numero di porta utilizzato dal client per la connessione. Viene restituito solo se includeSocketInformation è impostato su true e l'utente è autorizzato a recuperare queste informazioni.

  • targetIp: l'indirizzo IP a cui è stata effettuata la richiesta di connessione. Viene restituito solo se includeSocketInformation è impostato su true e l'utente è autorizzato a recuperare queste informazioni

  • targetPort: il numero di porta dell'endpoint AWS IoT Core a cui il client si è connesso. Viene restituito solo se includeSocketInformation è impostato su true e l'utente è autorizzato a recuperare queste informazioni.

  • vpcEndpointId: l'ID dell'endpoint VPC tramite il quale il client si è connesso, se applicabile. Viene restituito solo se includeSocketInformation è impostato su true e l'utente è autorizzato a recuperare queste informazioni.

Autorizzazioni richieste

Per utilizzare l' GetThingConnectivityData API, è necessaria la seguente autorizzazione IAM

iot:GetThingConnectivityData

Puoi assegnare questa autorizzazione a cose specifiche utilizzando politiche basate sulle risorse. Utilizza la iot:IncludeSocketInformation condizione per implementare un controllo granulare degli accessi sulle informazioni sui socket. L'esempio di policy riportato di seguito illustra uno scenario in cui si nega all'utente l'accesso alle informazioni sui socket. Tieni presente che questo esempio funziona quando è l'unica politica che concede l'accesso all'azione. GetThingConnectivityData

Esempi di politiche di autorizzazione

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:GetThingConnectivityData" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:thing/*"], "Condition": { "Bool": { "iot:IncludeSocketInformation": "false" } } }] }